rtorrent unrar automatiskt?

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

tjo!

Det är så att jag är i dagarna och håller på att plocka ihop en server o ja tänkte köra rtorrent på den...

det som jag undrar över är följande:

Kan man göra så att när en torrent med .rar filer i automatiskt packas upp när torrenten är klar?
Med nåt script i rtorrent.rc eller något kanske?

Jag vet inte hur man skriver script o sådant själv alls så, brukar sno andras exempel som jag ser fungerar bra så all hjälp är välkommen.
Om det ens går vill säga:)
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

Ja, det går. Du kan anväda on_finished i ~/.rtorrent.rc för att göra precis vad du vill precis när en nerladdning blivit klar.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

aha.. hade missat den delen.

då borde man alltså kunna göra en on_finished = move_complete,"execute=unrar x *.rar" i rtorrent.rc?

ifall det bara är en .rar fil och sen en massa r0 blahabla filer så borde väl det kommandot fungera?
Förutsatt att filerna ligger i en egen katalog också då?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

ScrotzaN skrev:då borde man alltså kunna göra en on_finished = move_complete,"execute=unrar x *.rar" i rtorrent.rc?
NEJ! För det första så tror jag inte att rtorrent expanderar *.rar alls. Det där kommer därför inte att funka om rar-filen heter något annat än just "*.rar" (vilket den helt säkert gör). För det andra måste du nog använda kommatecken mellan de olika argumenten i sället för mellanrum. Sedan finns det ju även rar-arkiv där du ska packa upp *.part1.rar, eller *.part01.rar eller *.part001.rar eller *.part0001.rar osv. Då funkar det inte med bara *.rar rakt av.

Min tanke var att du skulle göra typ så här:

Kod: Markera allt

on_finished = unpack_rar,"execute=/path/to/unpack_rar.sh,$d.get_base_path="
DVS du startar ett skript /path/to/unpack_rar.sh som ordnar eventuell uppackningen. Med $d.get_base_path= anger du att $1 i skriptet ska vara katalogen där det skulle kunna finnas ett rar-arkiv som du vill packa upp.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

hmm, du råkar inte ha eller veta vart det finns ett unpack_rar.sh script som passar till detta ändamål?:)

O ja förstår inte riktigt hur jag ska definiera $d.get_base_path= ?
Ska det vara något som unpack rar scriptet fixar eller?

:-[ :-[ :-[ :-[
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

ScrotzaN skrev:hmm, du råkar inte ha eller veta vart det finns ett unpack_rar.sh script som passar till detta ändamål?:)
Nej, men det är inte svårt att skriva ett eget.
ScrotzaN skrev:O ja förstår inte riktigt hur jag ska definiera $d.get_base_path= ?
Ska det vara något som unpack rar scriptet fixar eller?
Nej! $d.get_base_path= är en variabel som i ~/.rtorrent.rc automatiskt ersätts med sökvägen till det som laddas ner. Tanken var att du ska skicka med den sökvägen till unpack_rar.sh så att det skriptet vet var uppackningen ska ske. Den hamnar i variabeln "$1" i själva skripet.

Det första skriptet måste göra är att hitta rar-filer som ligger i just den sökvägen:

Kod: Markera allt

find "$1" -iregex '.*\.rar'
Men det där funkar inte om det finns rar-filer som heter *.part002.rar osv. Skriptet måste ta bort dem från sökningen:

Kod: Markera allt

find "$1" -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]*[2-9]\.rar'
Sedan ska det bara vara att loopa över alla rar-filer som hittades och i tur och ordning gå till deras respektive kataloger och packa upp dem:

Kod: Markera allt

find "$1" -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]*[2-9]\.rar' \
| while read RAR
do (
   cd "${RAR%/*}"
   unrar x "${RAR##*/}"
) done
Men eftersom du vill köra skripet från rtorrent så är det dumt om det kommer en massa utdata på fel ställe. Det är bättre att dumpa allt i /dev/null, eller i en logg-fil:

Kod: Markera allt

#!/bin/sh
LOG="/dev/null"

find "$1" -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]*[2-9]\.rar' \
| while read RAR
do (
   cd "${RAR%/*}"
   unrar x "${RAR##*/}"
) done >>"$LOG"
Gör skriptet körbart, peka på det från ~/rtorrent.rc som jag visade innan, och hoppas på att det fungerar (Har inte testat detta själv).
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

Aha, jag börjar förstå nu tror jag, tack för att du tar dig tid:)

så om jag förstått det rätt

så i rtorrent.rc så gör jag bara:

Kod: Markera allt

on_finished = unpack_rar,"execute=/path/to/unpack_rar.sh,$d.get_base_path="
Sedan så skapar jag en fil som heter unpack_rar.sh
klistrar in:

Kod: Markera allt

#!/bin/sh
LOG="/dev/null"

find "$1" -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]*[2-9]\.rar' \
| while read RAR
do (
   cd "${RAR%/*}"
   unrar x "${RAR##*/}"
) done >>"$LOG"
Sätter den sen som körbar med typ chmod +ax unpack_rar.sh

path/to/ ändrar jag naturligtvis till stället där scriptet ligger?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

Precis så var det tänkt ja. Men inga garantier att det funkar, jag har inte testat det själv.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

Ok, men tack ändå:)

ska testa sen såfort jag får igång servern min:)

Mycket uppskattat.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

Förresten, finns det någon speciell anledning till att '.*\.part[0-9]*[2-9]\.rar' \ ser ut just så och inte '.*\.part[0-9]*[0-9]\.rar' \

Kan det inte bli krångel om en fil heter t.ex. part011.rar eller dyl då så den tar den också separat?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

ScrotzaN skrev:Förresten, finns det någon speciell anledning till att '.*\.part[0-9]*[2-9]\.rar' \ ser ut just så och inte '.*\.part[0-9]*[0-9]\.rar' \

Kan det inte bli krångel om en fil heter t.ex. part011.rar eller dyl då så den tar den också separat?
Kom just på att den där biten inte funkar som det var tänkt. Borde typ vara:

find . -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]+.rar' -or -iregex '.*\.part0*1\.rar'

DVS allar *.rar som inte har något "part" innan sig, samt alla *.part01.rar, med godtyckligt antal nollor.

Kod: Markera allt

#!/bin/sh
LOG="/dev/null"

find "$1" -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]+.rar' \
   -or -iregex '.*\.part0*1\.rar' \
| while read RAR
do (
   cd "${RAR%/*}"
   unrar x "${RAR##*/}"
) done >>"$LOG"
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

Ok, tack o bock:)

Ifall det inte skulle fungera o ja inte lyckas lösa det själv så postar jag väl igen:)
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

ScrotzaN skrev:Ifall det inte skulle fungera o ja inte lyckas lösa det själv så postar jag väl igen:)
Du kan ju posta även om det funkar så att andra som hittar hit senare också får veta just att det funkar.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

Tjo!

har inte stat scriptet ännu men jag har kommit men jag märkte att när man laddar ner rar filer som innehåller part så heter oftast första delen part001 eller part01 går det att bara modifiera scriptet på detta vis:

Kod: Markera allt

#!/bin/sh
LOG="/dev/null"

find "$1" -iregex '.*\.rar' '.*\part01.rar' '.*\part001.rar' -and -not -iregex '.*\.part[0-9]+.rar' \
   -or -iregex '.*\.part0*1\.rar' \
| while read RAR
do (
   cd "${RAR%/*}"
   unrar x "${RAR##*/}"
) done >>"$LOG"
Eller måste man lägga till -and emellan dom eller dyl?
Sen ifall det inte finns några .rar filer alls struntar den i att göra något då eller får man något felmeddelande då?:)

Tack på förhand!
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

Du ska inte behöva lägga till part01.rar och part001.rar separat. Tanken är att de ska komma med ändå.

Kod: Markera allt

find "$1"  -iregex '.*\.rar' -and -not -iregex '.*\.part[0-9]+.rar' -or -iregex '.*\.part0*1\.rar'
Om vi börjar med -iregex '.*\.rar' ... den hittar allar filer som slutar på .rar, även part#-varianterna. Med -and -not -iregex '.*\.part[0-9]+.rar' plockar du sedan bort alla rar-filer som har en part#-del precis innan .rar, även part001.rar osv. Slutligen lägger du till alla part1.rar, part01.rar, part001.rar, part0001.rar, osv med -or -iregex '.*\.part0*1\.rar', vilket i slutändan borde ge dig precis vad du vill ha.

Om find inte hittar några rar-filer över huvud taget så händer ingenting alls eftersom skriptet aldrig kommer in i while-loopen då.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

aha!

då var det tänkt på redan:)

ja så går det om man inte kan läsa script ordentligt:)

Ska testa det imorgon.

jag har förresten gjort då att den flyttar filerna automatiskt när den är klar och även till olika ställen beroende på i vilken watch mapp jag lägger dom, men rar-delen borde väl inte påverkas av den väl?

som jag förstått det så sätter den $d.get_base_path= till något unikt för varje fil o ifall on_finished rar delen ligger efter on_finished move delen så borde väl det fungera?

Ska testa imorgon annars om inte annat.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

ScrotzaN skrev:som jag förstått det så sätter den $d.get_base_path= till något unikt för varje fil o ifall on_finished rar delen ligger efter on_finished move delen så borde väl det fungera?
$d.get_base_path= är det ställe där det du laddar ner hamnar. Jag är osäker på om du kan ha fler on_finished efter varandra eller om den senare helt enkelt definerar om den tidigare. I så fall är det bara att slänga in även move-biten i det lösa scriptet så ordnar även det sig.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

menar du att man ska lägga in move-biten i unpack_rar.sh ?

går det bara att kopiera den raden från rtorrent.rc rakt av o sätta i den filen eller?

EDIT: såhär ser min on_finished rad ut nu:

Kod: Markera allt

on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,$d.get_custom1= ;d.set_directory=$d.get_custom1="
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

Det kanske går jättebra med två on_finished, jag vet inte. Men om det inte funkar så är det första du ska göra att ta bort den ena av dem och se om det är det som är fel. Exakt hur du ska fixa den biten isf är ett senare problem som vi kan ta då. Men du kan inte bara flytta in hela move_complete-raden in i skriptet. Den måste anpassas lite först.
ScrotzaN
Inlägg: 130
Blev medlem: 18 dec 2007, 20:09
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Sverige
Kontakt:

Re: rtorrent unrar automatiskt?

Inlägg av ScrotzaN »

Ok, är på jobbet nu så ja kan inte testa några modifikationer nu.
men jag hann testa med 2 st on_finished innan ja gick hemifrån o det fungerade inte iallafall.

Så antingen måste man lägga till rar saken på den tidigare on_finished (om det går?)
Eller så får man baka in allting i unrar scriptet.
Skriv svar

Återgå till "Terminalforum"