Przenieś już ukończone (tzn. Nie nowe) pliki w rtorrent

13

Używam rtorrent przez jakiś czas z jednym katalogiem. Teraz zorientowałem się, że można używać różnych katalogów, a nawet przenosić ukończone pliki do pobrania w innym miejscu, więc zgodnie z wiki rtorrent edytowałem mój plik .rtorrent.rc w następujący sposób:

# Download directory
directory = /Medias/torrents/

# Watching directories
schedule = watch_directory_1,5,60,"load_start=/path/to/dl/dir1/*.torrent,d.set_custom1=/path/to/done/dir1"
schedule = watch_directory_2,5,60,"load_start=/path/to/dl/dir2/*.torrent,d.set_custom1=/path/to/done/dir2"

# On completion, move the torrent to the directory from custom1.
system.method.set_key = event.download.finished,move_complete,"d.set_directory=$d.get_custom1= ;execute=mv,-u,$d.get_base_path=,$d.get_custom1="

Wydaje się, że działa na nowe torrenty. Mam jednak kilka gotowych plików, które już wcześniej pobrałem, aby podzielić katalogi, a dla nich to nie działa: jeśli usunę ich plik w katalogu sesji, rtorrent sprawdzi skrót, ale go nie przeniesie, a jeśli przenieś je sam rtorrent ich nie zobaczy i spróbuje je ponownie pobrać.

Więc jak mogę powiedzieć rtorrentowi, żeby je przenieść lub że znajdują się w innym katalogu?

Dzięki.

Skippy le Grand Gourou
źródło

Odpowiedzi:

14

Ok, właśnie to rozgryzłem. W rtorrent możesz otworzyć wiersz poleceń za pomocą Ctrl+ X. Możesz robić wiele rzeczy stamtąd (myślę, że jest to podstawowe zarządzanie rtorrentem), takich jak drukowanie rzeczy ( print=$variable=np. print=$d.get_directory=), Wykonywanie poleceń ( execute=command) lub ustawianie zmiennych ( variable=newvalue).

Z tego monitu możesz przenieść gotowy torrent w inne miejsce, ALE zauważ, że nie jest on ani konieczny, ani wystarczający (patrz poniżej). Na przykład, korzystając z przykładu z pliku .rtorrent.rc podanego w pierwotnym pytaniu:

execute=mv,-u,$d.get_base_path=,$d.get_custom1=

Jednak to polecenie uniemożliwi rtorrentowi dalsze uruchamianie torrenta, dlatego nie jest wystarczające. Aby kontynuować inicjowanie, powinieneś, nadal z tego wiersza poleceń, ustawić katalog pobierania tego torrenta w nowej lokalizacji:

d.set_directory=/path/to/new/directory/

Wreszcie, executepolecenie nie jest konieczne: możesz przenieść torrent tak, jak chcesz (tj. Poza rtorrent), o ile ustawisz nowy katalog, jak wyjaśniono powyżej.

Następnie może być konieczne ponowne otwarcie torrenta (jeśli jest oznaczony jako [ZAMKNIĘTY]) za pomocą Ctrl+ R.

Skippy le Grand Gourou
źródło
2
Prawidłowa kolejność to PIERWSZE ustaw nowy katalog, a następnie przenieś go, btw. Możesz dodać stenograficzne polecenie poprzez „method.insert”, który wykonuje oba powyższe kroki.
piroskop
@pyroscope dlaczego najpierw ustawiono katalog „poprawny”? Wydaje mi się, że mvprzed aktualizacją katalogu chciałbyś poczekać, aż się powiedzie.
g33kz0r
2
Nevermind, odpowiedziałem na własne pytanie: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r,
0

Jeśli nie masz alergii na dowiązania symboliczne, jednym ze sposobów jest rtmv .

piroskop
źródło
W tym konkretnym przypadku uważam, że moje rozwiązanie jest czystsze, ale w linku znajdują się dość interesujące polecenia. Dzięki.
Skippy le Grand Gourou,
0

jako skrypt bash:

edytuj, gdy się mv -u $old $newnie powiedzie, wtedy całe polecenie się nie powiedzie.
Skończyło się na tym, że opuściłem rTorrent dla qBitTorrent.

#!/bin/bash
#
# move files in rTorrent
# with rtxmlrpc from pyrocore
#
# 1. select all torrents from view $view
# 2. print old d.base_path
# 3. set new d.directory
#    torrent is closed
#    d.base_path is still old d.base_path
# 4. move old files to new dir
# 5. open torrent
#    d.base_path is set to new path
# 6. save output to text file

view='complete'
dest="/home/rtorrent/$view/"

# escape double quotes
dest=$(echo "$dest" | sed 's/"/\\"/g')

rtxmlrpc d.multicall2 '' "$view" \
  'd.base_path=' \
  "d.directory.set=\"$dest\"" \
  "execute=mv,-u,(d.base_path),\"$dest\"" \
  'd.open=' \
| tee rtxmlrpc.$(date +%s).txt
Mila Nautikus
źródło