abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 05:55 | Zajímavý projekt

V pátek byl představen projekt postmarketOS (GitHub). Cílem tohoto projektu je open source operační systém pro chytré telefony vycházející z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Operační systém postmarketOS by měl podporovat 10letý životní cyklus chytrých telefonů.

Ladislav Hagara | Komentářů: 24
včera 23:44 | Nová verze

Byla vydána verze 0.4.5 svobodného operačního systému ReactOS. Z novinek lze zdůraznit podporu kancelářského balíku Microsoft Office 2010. Podrobnosti v ChangeLogu.

Ladislav Hagara | Komentářů: 7
včera 23:11 | Komunita

Linphone 4.0 pro desktop přichází. Vývojáři tohoto multiplatformního open source VoIP a SIP klienta postupně představují nové vlastnosti. Verze 4.0 bude postavena na Qt [reddit].

Ladislav Hagara | Komentářů: 0
27.5. 22:22 | Komunita

Dle plánu byl měl Debian 9 s kódovým názvem Stretch vyjít v sobotu 17. června. Po celém světě se začínají plánovat Release Parties. Oznámeno bylo vydání čtvrté RC (release candidate) verze instalátoru pro Debian 9 Stretch.

Ladislav Hagara | Komentářů: 5
26.5. 22:22 | Komunita

V Norimberku probíhá do neděle 28. května openSUSE Conference 2017. Na programu je celá řada zajímavých přednášek. Sledovat je lze online. K dispozici jsou také videozáznamy (YouTube) již proběhnuvších přednášek. Dění lze sledovat na Twitteru.

Ladislav Hagara | Komentářů: 0
26.5. 11:33 | IT novinky

Red Hat kupuje společnost Codenvy stojící za stejnojmenným webovým (cloudovým) integrovaným vývojovým prostředím (WIDE) postaveném na Eclipse Che.

Ladislav Hagara | Komentářů: 0
26.5. 08:55 | Nová verze

V listopadu 2014 byl představen fork Debianu bez systemd pojmenovaný Devuan. Po dva a půl roce jeho vývojáři oznámili vydání první stabilní verze 1.0. Jedná se o verzi s dlouhodobou podporou (LTS) a její kódové jméno je Jessie, podle planetky s katalogovým číslem 10 464.

Ladislav Hagara | Komentářů: 16
25.5. 20:22 | Zajímavý článek

Nadace Raspberry Pi vydala již osmapadesáté číslo (pdf) stostránkového anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a druhé číslo (pdf) časopisu Hello World primárně určeného pro učitele informatiky a výpočetní techniky.

Ladislav Hagara | Komentářů: 0
25.5. 19:55 | Humor

Portál Stack Overflow informuje na svém blogu, že pomohl ukončit editor Vim už více než milionu vývojářů. V loňském roce například hledal odpověď na otázku Jak ukončit editor Vim v průměru 1 z 20 000 návštěvníků.

Ladislav Hagara | Komentářů: 17
25.5. 19:22 | Nová verze

Po pěti měsících od vydání verze 3.5.0 byla vydána nová stabilní verze 3.6.0, tj. první z nové řady 3.6, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie). Z novinek lze zmínit například podporu dvou nových 64bitových platforem little-endian POWER machines (ppc64le) a IBM z Systems (s390x) nebo nové balíčky Rust 1.17.0, Cargo 0.18.0, GHC 8.0.2 a Julia 0.5.2.

Ladislav Hagara | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (32%)
 (1%)
 (8%)
 (44%)
 (8%)
Celkem 636 hlasů
 Komentářů: 62, poslední 19.5. 01:57
    Rozcestník

    Dotaz: Přejmenování seriálů

    15.3.2011 22:05 xhombre | skóre: 10 | blog: xhombre
    Přejmenování seriálů
    Přečteno: 374×
    Občas si stáhnu nějaký seriál. Problém je v tom, že dost často nesedí názvy mezi epizodami nebo titulky. Ale většinou se v názvu souboru vyskytuje řetězec SXXEYY (XX číslo série, YY číslo epizody) tak jsem si napsal malý script v Ruby. Funuje, ale kdyby ho někdo shlédl a hodil do komentářů připomínky byl bych vděčný.

    #!/usr/bin/ruby1.9.1
    
    if ARGV[0] == nil
      puts "Jako argument zadejte adresar se serialem"
      puts "Nazev adresare bude pouzit pri prejmenovani souboru"
      exit
    else
      cesta = ARGV[0]
    end
    
    if !(test ?d, "#{cesta}") then                                       #kontrola zda je argument skutecne dostupny adesar
      puts "#{cesta} - neni dostupny adresar"
      exit 
    end
    
    list = `ls #{cesta}`     #ziskani seznamu souboru v adresari
    
    if cesta =~ /\/$/		#odstraneni / pokud je pritomno
      cesta_clon = cesta.chop	#pri pouziti cesta.chop! je string freeze
      cesta = cesta_clon		#zjistit proc
    end
     
    
    if cesta =~ /\/(\S+)$/		#ziskani jmena adresare
      adresar = ($1)
    end
    
    list.each_line {
      |line|
    
      if line =~ /((S|s)\d+(E|e)\d+)/   #zjisteni serie a epizody pokud nazev neobsahuj SXXEYY nic se nedela
        epizoda = $1
        epizoda.upcase!
     
        line =~ /([^.]+)$/                         #pripona souboru
        typ = $1
       
        puvodni = cesta+"/"+line      #cesta k puvodnimu souboru
        puvodni.chomp!
        
        finalni = cesta+"/"+adresar+"_"+epizoda+"."+typ   #cesta k novemu souboru
        finalni.chomp!  
    
        `mv "#{puvodni}" "#{finalni}"`   #konecne prejmenovani souboru
      end
    }
    

    Řešení dotazu:


    Odpovědi

    15.3.2011 23:12 xhombre | skóre: 10 | blog: xhombre
    Rozbalit Rozbalit vše Re: Přejmenování seriálů
    Takže hned jsem tam našel chybku v regexpu u získání jména adresáře. Takže opravená verze.
    
    #!/usr/bin/ruby1.9.1
    
    if ARGV[0] == nil
      puts "Jako argument zadejte adresar se serialem"
      puts "Nazev adresare bude pouzit pri prejmenovani souboru"
      exit
    else
      cesta = ARGV[0]
    end
    
    if !(test ?d, "#{cesta}") then                                       #kontrola zda je argument skutecne dostupny adesar
      puts "#{cesta} - neni dostupny adresar"
      exit 
    end
    
    list = `ls #{cesta}`     #ziskani seznamu souboru v adresari
    
    if cesta =~ /\/$/		#odstraneni / pokud je pritomno
      cesta_clon = cesta.chop	#pri pouziti cesta.chop! je string freeze
      cesta = cesta_clon		#zjistit proc
    end
     
    
    if cesta =~ /([^\/]+)$/		# OPRAVA ziskani jmena adresare
      adresar = ($1)
    end
    
    list.each_line {
      |line|
    
      if line =~ /((S|s)\d+(E|e)\d+)/   #zjisteni serie a epizody pokud nazev neobsahuj SXXEYY nic se nedela
        epizoda = $1
        epizoda.upcase!
     
        line =~ /([^.]+)$/                         #pripona souboru
        typ = $1
       
        puvodni = cesta+"/"+line      #cesta k puvodnimu souboru
        puvodni.chomp!
        
        finalni = cesta+"/"+adresar+"_"+epizoda+"."+typ   #cesta k novemu souboru
        finalni.chomp!  
    
        `mv "#{puvodni}" "#{finalni}"`   #konecne prejmenovani souboru
      end
    }
    
    wamba avatar 16.3.2011 07:22 wamba | skóre: 37 | blog: wamba
    Rozbalit Rozbalit vše Re: Přejmenování seriálů
    Asi by se to dalo "vylepšit" pomocí tříd File a Dir.
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    20.3.2011 14:16 xhombre | skóre: 10 | blog: xhombre
    Rozbalit Rozbalit vše Re: Přejmenování seriálů
    Přepsáním s použitím tříd File a Dir se celý script zpřehlednil, ubylo regexpů, a zkrátil. Takže dík.
    #!/usr/bin/ruby1.9.1
    
    if ARGV[0] == nil
      puts "Jako argument zadejte adresar se serialem"
      puts "Nazev adresare bude pouzit pri prejmenovani souboru"
      exit
    elsif !(File.directory?("#{ARGV[0]}")) then		#zjisteni zda je zadany
      puts "#{ARGV[0]} - neni dostupny adresar"		#argument skutecne adresar
      exit 
    end
    
    Dir.chdir("#{ARGV[0]}")					#zmena pracovniho adresare
    
    jmeno_adresare = File.basename("#{ARGV[0]}")		#jmeno pracovniho adresare, pouzije se jako cast jmena souboru
    
    Dir.foreach(".") {					#prochazeni seznamu souboru v danem adresari
      |soubor|
    
      if soubor =~ /((S|s)\d+(E|e)\d+)/ then		#zjisteni zda nazev souboru obsahuje SxxEyy
        epizoda = $1					#ziskani cisla serie a epizody
        epizoda.upcase!					#prevod na velka pismena
     
        typ = File.extname("#{soubor}")			#ziskani pripony (typu) souboru
       
        novy_soubor = jmeno_adresare+"_"+epizoda+typ	#vytvoreni noveho jmena souboru
            
        File.rename("#{soubor}", "#{novy_soubor}")		#prejmenovani souboru
        puts "#{soubor} >> #{novy_soubor}"
      end 
    }
    Řešení 1× (xhombre (tazatel))
    28.3.2011 22:09 xhombre | skóre: 10 | blog: xhombre
    Rozbalit Rozbalit vše Re: Přejmenování seriálů
    Takže asi poslední verze skriptu. Už to umí co potřebuji a chci. Je bezpečnější na používání. Pokud by jste to náhodou používali dejte mi vědět. Vše na vlastní nebezpečí :-)
    #!/usr/bin/env ruby1.9.1
    #coding=utf-8
    
    require "getoptlong"
    
    adresar = "."						#nastavení implicitních hodnot proměných
    zaklad_jmena = nil
    test = 0
    
    help = "-h, --help napoveda
    -d, --drawer jmeno adresare se serialem, bude pouzito jako soucast nazvu souboru
    -n, --name jmeno pro prejmenovani, nadrazeno jmenu adresare
    -r, --regexp regexp pro vyhledavani serie a epizody 
    -v, --regexp_version \n\t1 - pro format sAAeBB
    \t2 - pro format AAxBB
    -t, --test pro zapnuti testovacího modu, soubory se neprejmenovavaji"
    
    regexp = /[S|s](\d+)[E|e](\d+)/ 
    
    parser = GetoptLong.new					#parsovani prikazoveho radku
    parser.set_options(
      ["-h", "--help", GetoptLong::NO_ARGUMENT],
      ["-d", "--drawer", GetoptLong::OPTIONAL_ARGUMENT],
      ["-v", "--regexp_version", GetoptLong::OPTIONAL_ARGUMENT],
      ["-n", "--name", GetoptLong::OPTIONAL_ARGUMENT],
      ["-r", "--regexp", GetoptLong::OPTIONAL_ARGUMENT],
      ["-t", "--test", GetoptLong::OPTIONAL_ARGUMENT])
    
    parser.each_option {
      |opt, arg|
      case opt
        when "-h"						#kdyz je argument -h
          puts help						#vypsat help
          exit						#a skoncit
        when "-d"
          adresar = arg					#prirazeni argumentu adresare
        when "-r"
          regexp = Regexp.compile("#{arg}")			#prirazeni regexpu
        when "-v"
          case arg
            when "1"					#nastavení variant -v
              regexp = /[S|s](\d+)[E|e](\d+)/
            when "2"
              regexp = /(\d+)[x|X](\d+)/
          end
        when "-n"						#nastavení základu jména
          zaklad_jmena = arg 
        when "-t"
          test = 1      
      end
    }
    
    if !(File.directory?("#{adresar}")) then		#zjisteni zda je zadany argument skutecne adresar
      puts "#{adresar} - neni dostupny adresar"		#kdyz ne tak vypsat info
      exit							#a konec
    end
    
    Dir.chdir("#{adresar}")					#zmena pracovniho adresare
    puts "Pracovní adresář - "+Dir.pwd()			#vypsani adresare
    
    if zaklad_jmena == nil then				#když není zadán argument jména
      zaklad_jmena = File.basename(Dir.pwd())		#použije se název adresáře
    end
    
    puts "Základ jména - "+zaklad_jmena			#a vypíše se na výstup
    
    Dir.foreach(".") {					#prochazeni seznamu souboru v danem adresari
      |soubor|
    
      if soubor =~ regexp then				#zjisteni zda nazev souboru obsahuje pozadovany regexp
        serie = $1						#ziskani cisla serie a epizody
        epizoda = $2
    
        if serie.size < 2 then				#když je velikost řetězce menší jak 2
          serie = "0"+serie					#přidá se před něj 0
        end
    
        if epizoda.size < 2 then 
          epizoda = "0"+epizoda
        end
    
        typ = File.extname("#{soubor}")			#ziskani pripony (typu) souboru
       
        novy_soubor = zaklad_jmena+"_"+"s"+serie+"e"+epizoda+typ		#vytvoreni noveho jmena souboru
    
        if soubor == novy_soubor then			#když název původního souboru a nového je stejný 
          next						#přeskočíme na další soubor
        end
    
        i = 0
        loop do
          if File.exist?("#{novy_soubor}") then		#když nový název souboru koliduje s již existujícim souborem
            i = i + 1
            novy_soubor = zaklad_jmena+"_"+"s"+serie+"e"+epizoda+"("+i.to_s+")"+typ	#pozměníme ho přidáním (i)
          else						#jinak
            break						#pokračujeme dál
          end
        end
    
        puts "#{soubor} >> #{novy_soubor}"
        
        if test == 0 then					#když se netestuje
          File.rename("#{soubor}", "#{novy_soubor}")	#přejmenovat soubor
        else
          puts "Testovací provoz - nedochází k přejmenování"	#jinak jen vypsat hlášku
        end
      end 
    }
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.