Вы можете использовать триггеры и скриптовые возможности rtorrent.
Я не сделал именно то, что вы просите для себя, но похожие вещи. Например, у меня запущен сеанс со следующими записями в rtorrent.rc
:
schedule = watch_directory_1,10,10, "load_start=/path/to/watch/folder/*.torrent, d.set_custom1=$execute_capture={/path/to/external/script}, d.set_custom2=1" 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= ; execute=/path/to/another/external/script, $d.get_name=, $d.get_custom1=, $d.get_custom2="
(разрывы строк добавлены для ясности).
Это перемещает завершенные загрузки в путь, $d.get_custom1
который задается при запуске загрузки (игнорировать $d.get_custom2
- используется для другой цели, но я держу это в качестве примера).
Как видите, внешние скрипты выполняются и их возвращаемые значения перехватываются rtorrent. Имея внешние сценарии, которые отслеживают то, что вы загрузили (например, записывают хэш или имя файла в файл журнала / базу данных для завершенных загрузок), проверяют новые загрузки по этому списку ( grep
или утилите БД) и действуют на основе этого, вы можете добиться того, что ты хочешь.
Полный набор возможностей сценариев rtorrent слишком исчерпывающий - см. Руководство и онлайн-ресурсы. Я не говорю, что это очевидно или просто - конечно, нет - но это возможно :-).