Перемістити вже (тобто не нові) готові файли в rtorrent


13

Я деякий час використовую rtorrent з одним каталогом. Тепер я зрозумів, що можна використовувати різні каталоги та навіть переміщувати завершені завантаження в інше місце, тому згідно з вікі-файлами rtorrent я редагував свій .rtorrent.rc так:

# 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="

Здається, це працює для нових торентів. Однак у мене є купа готових файлів, які я вже завантажив, щоб розділити каталоги, і для них це не працює: якщо я видалю їх файл у каталозі сеансів, rtorrent перевірить хеш, але не перемістить їх, і якщо я перемістити їх самостійно rtorrent не побачить їх і спробує повторно завантажити їх.

Тож як я можу сказати rtorrent або перемістити їх, або що вони знаходяться в іншому каталозі?

Спасибі.

Відповіді:


14

Гаразд, щойно зрозумів це. У межах rtorrent можна відкрити командний рядок за допомогою Ctrl+ X. Ви можете робити багато речей звідти (я думаю, це основне управління rtorrent), наприклад, друкувати речі ( print=$variable=наприклад, print=$d.get_directory=), виконувати команди ( execute=command) або встановлювати змінні ( variable=newvalue).

З цього підказки ви можете перемістити готовий торрент в інше місце, Але зауважте, що це не потрібно і не достатньо (див. Нижче). Наприклад, використовуючи приклад з файлу .rtorrent.rc, наведений у вихідному запитанні:

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

Однак ця команда не дозволить rtorrent продовжувати засідати торрент, тому його недостатньо. Щоб продовжити висівання, вам слід, все-таки з цієї командної лінії, встановити каталог завантажень для цього торрента на нове місце:

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

Нарешті, executeкоманда не потрібна: ви можете переміщати торрент так, як вам хочеться (тобто поза rtorrent), поки ви встановите новий каталог, як пояснено вище.

Після цього може знадобитися повторно відкрити торрент (якщо він позначений як [ЗАКРИТО]) за допомогою Ctrl+ R.


2
Правильним порядком є ​​ПЕРШИЙ встановити новий каталог, потім перемістити його, btw. І ви можете додати скорочену команду за допомогою "method.insert", яка виконує обидві дії.
піроскоп

@pyroscope Чому каталог задається спочатку "правильним"? Мені здається, ви хочете зачекати, щоб побачити, чи mvуспішно ваш файл , перш ніж оновити каталог.
g33kz0r

2
Nevermind, відповів на моє власне запитання: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r

0

Якщо у вас немає алергії на символьні посилання, одним із способів є rtmv .


У цьому конкретному випадку я вважаю своє рішення чистішим, але у вашому посиланні є досить цікаві команди. Спасибі.
Skippy le Grand Gourou

0

як сценарій bash:

редагувати, коли mv -u $old $newне вдається, то вся команда виходить з ладу.
Я закінчив залишати rTorrent для 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.