Você pode usar os gatilhos e as capacidades de script do rtorrent.
Eu não fiz exatamente o que você está pedindo, mas coisas parecidas. Por exemplo. Eu tenho uma sessão em execução com as seguintes entradas em 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="
(quebras de linha adicionadas para maior clareza).
Isso move os downloads concluídos para um caminho $d.get_custom1
que é definido quando os downloads são iniciados (ignore $d.get_custom2
- usado para um propósito diferente, mas eu o mantenho como um exemplo).
Como você pode ver, os scripts externos são executados e seus valores de retorno são capturados pelo rtorrent. Por ter scripts externos que acompanham o que você baixou (por exemplo, escrever hash ou nome de arquivo para um arquivo de log / banco de dados para downloads concluídos) e verificar novos downloads contra essa lista ( grep
ou utilitário DB) e agir sobre isso, você pode conseguir o que você quer.
Um resumo completo das habilidades de script do rtorrent é muito abrangente - veja os recursos manuais e on-line. Eu não estou dizendo que é auto-evidente ou fácil - certamente não - mas é possível :-).