rtorrent unrar automatiskt?

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: rtorrent unrar automatiskt?

Inlägg av djkmmo »

Konservburk skrev:
djkmmo skrev:Då kommer det en sådan trivial fråga igen då. Menar du så här?

Kod: Markera allt

yes no | unrar x -r "$1/*.rar" "$2" >&- 2>&- &
Som jag förstått det så sluta case-statmentet efter ")" så ovanstående verkar mest logiskt för mig.
Det var precis så där jag menade. Du får ursäkta om jag förvirrade till det hela för dig genom att använda en case-sats istället för en if-sats.
Nej då det är ingen fara, jag kommer väl in på case-satser vad det lider med.

Som sagt, stort tack för hjälpen. Nu skall jag bara testa och ladda ner något med *.rar-filer så att vi ser att det funkar i praktiken.
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: rtorrent unrar automatiskt?

Inlägg av djkmmo »

Ja nu har jag testat, iaf en gång. Naturligtvis glömde jag att missade jag att byta namn på länken "Från Film" så när det skulle packa upp så fanns inte målet "Från_film"...

I vilket fall namnändrade jag och körde unpack_torrent_rar.sh manuellt med det som skulle ha varit $1 och $2 manuellt och allt verkar funka. Jag lade till att unrar skulle köra på nice 15 då jag för tillfället kör torrent på min vanliga stationära dator och inte en separat server.

Klistrar in det som funkat för mig, kanske funkar det även för andra:

~/.rtorrent.rc

Kod: Markera allt

schedule = watch_filmer,5,5,"load_start=/home/djk/torrents/filmer/*.torrent,d.set_directory=/home/djk/nedladdat/film,d.set_custom1=/home/djk/Från_film"
...
on_finished = packa_upp_film,"execute=/home/djk/bin/unpack_torrent_rar.sh,$d.get_base_path=,$d.set_custom1="
unpack_torrent_rar.sh:

Kod: Markera allt

#!/bin/bash
if [ "$2" != "" ]; then
   yes no | nice -n 15 unrar x -r "$1/*.rar" "$2" >&- 2>&- &
fi
Nästa projekt blir att få rtorrent att automatiskt radera alla nedladdade filer vid uppnådd ratio omm det är rar-filer, men det får bli en annan tråd.
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Automatisk unrar med rTorrent.

Inlägg av allwise »

Hejsan!

Jag har använt mig av en tidigare tråd för att försöka få till att rTorrent automatiskt packar upp och flyttar färdiga torrents, men jag får ett felmeddelande "Junk at end of input."
Här är den tidigare tråden: http://ubuntu-se.org/phpBB3/viewtopic.p ... a&start=20

Min rtorrent.rc ser ut så här:

Kod: Markera allt

schedule = watch_filmer,5,5,"load_start=/home/filserver/download/torrents/*.torrent,d.set_custom1=/home/filserver/download/done"
...

Kod: Markera allt

on_finished = move_and_unrar,"execute=mv,-u,$d.get_base_path=,/home/filserver/download/done; d.set_directory=/home/filserver/download/done/; execute=/usr/bin/raraupp,$d.get_base_path=;"
Scriptet raraupp kräver bara en invariabel, mappen som ska raras upp.

Någon som har erfarenhet av rTorrent som kan se vart felet är? Jag har försökt flera gånger med det jag tycker borde fungera, men det känns nästan som gissningar nu när det för 100e gången inte fungerar.

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

Re: Automatisk unrar med rTorrent.

Inlägg av Konservburk »

allwise skrev:jag får ett felmeddelande "Junk at end of input."
Det är skillnad på "; " och " ;" vilket inte du verkar ha uppmärksammat. Varför flyttar du inte in mv-grejen i skriptet istället så att det inte så komplicerat i rtorrents config-fil?

Finns det någon anledning till att du vill ha det här som en egen tråd? Annars slår jag ihop den med den andra tråden.
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: Automatisk unrar med rTorrent.

Inlägg av allwise »

Anledningen att jag lade det som en egen tråd var väl att jag tyckte att det var ett nytt problem, men det är ok att slå ihop dem =)

Men vad är skillnaden mellan " ;" och ";" då? Hur ska jag ändra raden?

Anledningen till att jag inte har mv i scriptet var att jag inte riktigt visste hur jag skulle få in det i scriptet. Men du får gärna hjälpa mig lite på traven om du vill. Mitt raraupp-script ser ut så här:

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 -r "${RAR##*/}"
) done >>"$LOG"
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: Automatisk unrar med rTorrent.

Inlägg av allwise »

Thihoo! Fick till det nu!

Här är koden som gjorde susen:

Kod: Markera allt


on_finished = move_and_unrar,"execute=mv,-u,$d.get_base_path=,/home/filserver/download/done ;d.set_directory=/home/filserver/download/done/ ;execute=/usr/bin/raraupp,$d.get_base_path="

Tack så mycket konservburk! Vet du om man kan göra så att filerna försvinner ur rtorrent och rar-filerna raderas, vid ex en ratio på 2?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Automatisk unrar med rTorrent.

Inlägg av Konservburk »

allwise skrev:Mitt raraupp-script ser ut så här:

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 -r "${RAR##*/}"
) done >>"$LOG"
Om du bara ska packa upp rar-filer när de är färdignerladdade så är skriptet från slutet av den andra tråden bätte att använda eftersom det inte låser rtorrent under själva uppackningen:

Kod: Markera allt

#!/bin/bash
yes no | unrar x -r "$1/*.rar" "$1" >&- 2>&- &
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Automatisk unrar med rTorrent.

Inlägg av Konservburk »

allwise skrev:Vet du om man kan göra så att filerna försvinner ur rtorrent och rar-filerna raderas, vid ex en ratio på 2?
Det kan man nog få till.

EDIT: jag slog ihop trådarna nu.
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Automatisk unrar med rTorrent.

Inlägg av djkmmo »

Konservburk skrev:
allwise skrev:Vet du om man kan göra så att filerna försvinner ur rtorrent och rar-filerna raderas, vid ex en ratio på 2?
Det kan man nog få till.

EDIT: jag slog ihop trådarna nu.
Går det att använda "schedule_remove", eller tar det bara bort *.torrent-filen?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Automatisk unrar med rTorrent.

Inlägg av Konservburk »

djkmmo skrev:Går det att använda "schedule_remove", eller tar det bara bort *.torrent-filen?
Den tar inte ens bort någon .torrent-fil. Det den gör är att ta bort kommandon som lagts till med schedule. Används t.ex. när man inte längre vill att rtorrent kollar i en katalog efter nya torrent-filer.

Kod: Markera allt

schedule_remove = watch_directory
Här ska watch_directory vara det id man gav sitt schemalagda kommando.
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: Automatisk unrar med rTorrent.

Inlägg av allwise »

Konservburk skrev:
allwise skrev:Vet du om man kan göra så att filerna försvinner ur rtorrent och rar-filerna raderas, vid ex en ratio på 2?
Det kan man nog få till.

EDIT: jag slog ihop trådarna nu.
Har du något tips på hur man ska gå till väga och kanske lite enkla kodexempel för en som inte är särskilt haj på hur rtorrent fungerar i det djupa och inte helt i just shellscript? Det skulle uppskattas något kopiöst.

Tack på förhand!
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Automatisk unrar med rTorrent.

Inlägg av djkmmo »

Konservburk skrev:
djkmmo skrev:Går det att använda "schedule_remove", eller tar det bara bort *.torrent-filen?
Den tar inte ens bort någon .torrent-fil. Det den gör är att ta bort kommandon som lagts till med schedule. Används t.ex. när man inte längre vill att rtorrent kollar i en katalog efter nya torrent-filer.

Kod: Markera allt

schedule_remove = watch_directory
Här ska watch_directory vara det id man gav sitt schemalagda kommando.
Det har du rätt i; det gick lite fort där. Men ett schedule(on_erase) borde göra det jag egentligen menade (d.v.s. t.ex. köra ett skript som raderar *.rar-filerna när man tar bort länken i rtorrent)?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Automatisk unrar med rTorrent.

Inlägg av Konservburk »

djkmmo skrev:Det har du rätt i; det gick lite fort där. Men ett schedule(on_erase) borde göra det jag egentligen menade (d.v.s. t.ex. köra ett skript som raderar *.rar-filerna när man tar bort länken i rtorrent)?
Jo, det går ju såklart. Men nu var det frågan om att radera datan vid en viss ratio utan att man manuellt måste ta bort torrenten från rtorrent. Då är en schedule med close_on_ratio betydligt lämpligare.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Automatisk unrar med rTorrent.

Inlägg av Konservburk »

allwise skrev:Vet du om man kan göra så att filerna försvinner ur rtorrent och rar-filerna raderas, vid ex en ratio på 2?
allwise skrev:Har du något tips på hur man ska gå till väga och kanske lite enkla kodexempel för en som inte är särskilt haj på hur rtorrent fungerar i det djupa och inte helt i just shellscript? Det skulle uppskattas något kopiöst.
Så här kan man t.ex. göra med rtorrent 0.8.2 (jag är dock osäker på om syntaxen är samma i 0.7.9, det är mycket möjligt, till och med troligt, att den har ändrats):

Kod: Markera allt

schedule=id,60,60,"close_on_ratio={200,0,200,\"execute={rm,-rf,$d.get_base_path=}\",d.erase=}"
Det som händer är i princip att en gång i minuten så stängs alla torrenter som har en ratio på minst 2. När en torrents stängs på det stättet så körs rm -rf på torrentens base_path (allt som har laddats ner tas bort) och d.erase= raderar den från rtorrent.

Men tänk på att detta inte kontrollerar om torrenten verkligen är uppackad, eller ens innehöll .rar-filer från början. Det är mycket möjligt att du har en ratio på mer än 2 när nerladdningen är klar. Då kommer allting börja packas upp, men innan det ens är i närheten av klart så har rtorrent tagit bort torrenten och raderat datan. Så egentligen vill du nog ha ett skript eller liknande som gör en del rimlighetskontoller innan någonting raderas bara så där.
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: rtorrent unrar automatiskt?

Inlägg av allwise »

Tack!

Hm, mycket bra observation där med att man måste ta hänsyn till att allt är uppackat innan man börjar radera .rar-filerna. Har du någon smart idé på hur man kan lösa detta? Jag funderar på att skriva till en fil i mappen som säger om den är färdig med uppackningen eller liknande, men jag kan inte riktigt komma på någon bra lösning för det hela.

En annan idé jag fick var att istället för att packa upp rar-filerna i samma mapp och sedan flytta allting, var att flytta allt utom rar-filerna först och sedan packa upp rar-filerna till denna mapp dit allt annat flyttades. Lite invecklad förklaring kanske, men hoppas att ni förstår. Vad tror ni fungerar bäst? Eller jag hoppas nästan att det finns någon ännu bättre idé på hur detta kan lösas.

Fick just en tredje idé: Går det kanske att från rtorrent skicka med ratio-variabler till raraupp-scriptet för att bestämma hur mycket som skickats ut och därefter avgöra om man ska: packa upp och radera rar-filerna, bara packa upp eller bara radera rar-filerna?

Och en sista fråga: Går det att se till att det bara kan köras en instans åt gången av ett script, så att om man kör på tredje idén att scriptet först startar när torrenten är klar och sedan 10 sek senare när ration är 2?

Hoppas någon med bättre erfarenhet kan svara på mina frågor =)

Tack på förhand!

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

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

allwise skrev:Hm, mycket bra observation där med att man måste ta hänsyn till att allt är uppackat innan man börjar radera .rar-filerna. Har du någon smart idé på hur man kan lösa detta? Jag funderar på att skriva till en fil i mappen som säger om den är färdig med uppackningen eller liknande, men jag kan inte riktigt komma på någon bra lösning för det hela.
Om du använder en xmlrpc-version av rtorrent så kan du från skriptet styra rtorrent så att den markerar en torrent som uppackad bara om den verkligen är det.
allwise skrev:En annan idé jag fick var att istället för att packa upp rar-filerna i samma mapp och sedan flytta allting, var att flytta allt utom rar-filerna först och sedan packa upp rar-filerna till denna mapp dit allt annat flyttades. Lite invecklad förklaring kanske, men hoppas att ni förstår. Vad tror ni fungerar bäst? Eller jag hoppas nästan att det finns någon ännu bättre idé på hur detta kan lösas.
Det går att packa upp direkt till vilken katalog du vill utan att flytta någonting.
allwise skrev:Fick just en tredje idé: Går det kanske att från rtorrent skicka med ratio-variabler till raraupp-scriptet för att bestämma hur mycket som skickats ut och därefter avgöra om man ska: packa upp och radera rar-filerna, bara packa upp eller bara radera rar-filerna?
Du kan skicka med ration om du vill, $d.get_ratio= heter den.
allwise skrev:Och en sista fråga: Går det att se till att det bara kan köras en instans åt gången av ett script, så att om man kör på tredje idén att scriptet först startar när torrenten är klar och sedan 10 sek senare när ration är 2?
Du skulle kunna göra ett test i början av skriptet så att det avslutar sig självt om det finns ett annat likadant som redan kör. Inte för att jag förstår vad det egentligen skulle vara bra för.
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: rtorrent unrar automatiskt?

Inlägg av allwise »

Här kommer lite psuedokod över hur jag tänker mig scriptet. Tanken är då att rtorrent ska starta detta både vid ratio = 2 och när nedladdningen är klar och samtidigt bifoga ration som en variabel för att kontrollera vad som ska göras.

Kod: Markera allt


if($ratio < 2 ) {
   //Packa upp rarfilerna.
}
else {
   //Packa upp och radera rar-filer. Vid uppackning, skippa filer som redan finns.
}

Om man nu bara tillåter en instans av detta script så kan man ju ha att scriptet startar både när nedladdningen är klar, samt när ration är 2.
Konservburk skrev:
Allwise skrev:Och en sista fråga: Går det att se till att det bara kan köras en instans åt gången av ett script, så att om man kör på tredje idén att scriptet först startar när torrenten är klar och sedan 10 sek senare när ration är 2?
Du skulle kunna göra ett test i början av skriptet så att det avslutar sig självt om det finns ett annat likadant som redan kör. Inte för att jag förstår vad det egentligen skulle vara bra för.
Om man skulle tillåta flera instanser så finns väl risken att scriptet startar både när nedladdningen är klar (och packar upp) och direkt efter blir ration 2 och så startar scriptet igen och packar upp (och raderar filerna sedan). Eller tänker jag fel?

Vad tror ni om idén för detta script? Finns kanske något smartare?

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

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

allwise skrev:Om man nu bara tillåter en instans av detta script så kan man ju ha att scriptet startar både när nedladdningen är klar, samt när ration är 2.
...
Om man skulle tillåta flera instanser så finns väl risken att scriptet startar både när nedladdningen är klar (och packar upp) och direkt efter blir ration 2 och så startar scriptet igen och packar upp (och raderar filerna sedan). Eller tänker jag fel?
Om du bara tillåter en instans av skriptet så får du problem åt andra hållet. Allting är nerladdat och skriptet håller på att packa upp när ration blir 2 och skriptet som ska ta bort filerna inte tillåts att köra. Men du skulle kanske kunna låta det andra skriptet vänta tills det första är klart.
Användarvisningsbild
allwise
Inlägg: 9
Blev medlem: 14 sep 2008, 12:37
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: rtorrent unrar automatiskt?

Inlägg av allwise »

Konservburk skrev:Om du bara tillåter en instans av skriptet så får du problem åt andra hållet. Allting är nerladdat och skriptet håller på att packa upp när ration blir 2 och skriptet som ska ta bort filerna inte tillåts att köra. Men du skulle kanske kunna låta det andra skriptet vänta tills det första är klart.
Ja, det är ju helt sant. Dessutom om två torrents blir klara samtidigt så blir det ju inte så bra. Men hur skulle man göra för att scriptet ska vänta på att föregående script är klart? Har du något kort kodexempel eller liknande så jag kan börja spåna lite?

Och tack för hjälpen hittills!
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rtorrent unrar automatiskt?

Inlägg av Konservburk »

allwise skrev:Men hur skulle man göra för att scriptet ska vänta på att föregående script är klart? Har du något kort kodexempel eller liknande så jag kan börja spåna lite?
Jag har funderat lite på hur man skulle kunna göra, men det är inte helt lätt. Säg att skriptet gör en koll varje minut för att avgöra om det är "ensamt" eller om det går bra att fortsätta. Då har vi genast ett annat problem med att det kan starta ännu ett skript under väntetiden, vilket kommer leda till att båda skripten väntar på varandra i all evinnerlighet. Det räcker inte att minska koll-intervallet, eftersom det ändå alltid finns en risk för att allting fastnar helt.

Det går antigligen att lösa med några logiska kullerbyttor, men om det blir för komplicerat så finns ju risken att man missar något problem som inte är helt uppenbart.

Den enkla och dåliga lösningen är att låta rtorrent låsa sig när ett skript kör så att det inte kan starta något annat skript under tiden. Det blir extra dåligt i det här fallet eftesom uppackning kan ta en bra stund.

Ett annat alternativ är att använda xmlrpc-versionen av rtorrent så att skriptet kan meddela när det är ok att radara filer, dvs när uppackningen är klar. Då löser du på en gång även problemet med hur man hanterar sådant som inte är packat från första början.
Skriv svar

Återgå till "Terminalforum"