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í
×
    včera 19:44 | IT novinky

    Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | IT novinky

    Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.

    Ladislav Hagara | Komentářů: 2
    včera 13:33 | IT novinky

    Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Komunita

    RPCS3 (Wikipedie), tj. open source emulátor Sony PlayStation 3, snížil minimální požadavky. Nově jsou podporovány starší grafické karty ATI Radeon řady HD 2000, 3000 a 4000 z let 2007 až 2009. Na PC běží už 75 % všech her pro PlayStation 3. V budoucnu bude RPCS3 fungovat bez firmwaru z PS3. V RPCS3 byl implementován systémový modul cellSysmodule (𝕏).

    Ladislav Hagara | Komentářů: 2
    včera 11:00 | Zajímavý software

    Vyšel open-source nástroj winetop (MIT) — nativní CLI/TUI pro sledování a ukončování Wine, Proton, Lutris, Heroic a Bottles sezení. Seskupuje procesy podle WINEPREFIX / Steam AppId, umí bezpečně zabít jen hru (včetně Steam reaperu) a nabízí i skriptovatelné příkazy (list, kill, orphans, …). Balíčky jsou mimo jiné na crates.io, Copru (dnf copr enable kovariadam/winetop), PPA ppa:kovariadam/winetop a AUR (winetop-bin).

    kovariadam | Komentářů: 0
    včera 02:44 | IT novinky

    Ve spolupráci společností OpenAI a Work Louder byla představena (𝕏) hardwarová klávesnice Codex Micro pro práci s AI agenty. Cena klávesnice je 230 dolarů.

    Ladislav Hagara | Komentářů: 1
    21.7. 20:00 | Nová verze

    Byl vydán Mozilla Firefox 153.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 153 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    21.7. 13:44 | Bezpečnostní upozornění Ladislav Hagara | Komentářů: 11
    21.7. 13:11 | Nová verze

    Byla vydána nová verze 5.44 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 71 vývojářů. Změněno bylo přibližně 270 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 0
    21.7. 12:33 | Pozvánky

    Na 23. září 2026 je do bratislavské Nové Cvernovky naplánovaná jednodenní konference #nobullshit.camp pro tech leadery, DevOps a platform inženýry. Mají tu zaznít upřímné příběhy z praxe o tom, co v produkčních systémech reálně fungovalo, co se pokazilo a co si z toho lidé odnesli. Témata pokrývají tři oblasti – DevOps a platformy (Kubernetes, cloud, provoz systémů), firemní kulturu a leadership. Program běží ve dvou formátech: hlavní

    … více »
    alian | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2207 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 592×
    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: 38 | 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.