Memindahkan file yang sudah selesai (yaitu bukan baru) di rtorrent

13

Saya telah menggunakan rtorrent untuk sementara waktu dengan satu direktori. Sekarang saya menemukan kemungkinan untuk menggunakan direktori yang berbeda dan bahkan untuk memindahkan unduhan yang telah selesai di tempat lain, jadi menurut wiki rtorrent saya mengedit .rtorrent.rc saya sebagai berikut:

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

Tampaknya bekerja untuk torrent baru. Namun saya memiliki banyak file yang telah selesai saya unduh sebelumnya untuk membagi direktori, dan bagi mereka itu tidak berfungsi: jika saya menghapus file mereka di direktori sesi, rtorrent akan memeriksa hash tetapi tidak akan memindahkannya, dan jika saya memindahkannya sendiri rtorrent tidak akan melihatnya dan akan mencoba mengunduh ulang mereka.

Jadi bagaimana saya bisa memberi tahu rtorrent untuk memindahkan mereka atau mereka berada di direktori lain?

Terima kasih.

Skippy le Grand Gourou
sumber

Jawaban:

14

Ok, baru tahu ini. Di dalam rtorrent Anda dapat membuka baris perintah menggunakan Ctrl+ X. Anda dapat melakukan banyak hal dari sana (saya kira ini adalah manajemen dasar rtorrent), seperti mencetak hal-hal ( print=$variable=, misalnya print=$d.get_directory=), menjalankan perintah ( execute=command), atau mengatur variabel ( variable=newvalue).

Dari prompt ini Anda dapat memindahkan torrent yang sudah selesai di tempat lain, TAPI perhatikan bahwa itu tidak perlu atau tidak cukup (lihat di bawah). Misalnya, menggunakan contoh dari file .rtorrent.rc yang diberikan dalam pertanyaan asli:

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

Namun, perintah ini akan mencegah rtorrent melanjutkan seed torrent, itulah sebabnya tidak cukup. Untuk melanjutkan penyemaian, Anda harus, masih dari command prompt ini, mengatur direktori unduhan untuk torrent ini ke lokasi baru:

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

Akhirnya, executeperintah tidak diperlukan: Anda dapat memindahkan torrent seperti yang Anda inginkan (yaitu di luar rtorrent), selama Anda mengatur direktori baru seperti yang dijelaskan di atas.

Setelah itu mungkin perlu untuk membuka kembali torrent (jika ditandai sebagai [DITUTUP]) menggunakan Ctrl+ R.

Skippy le Grand Gourou
sumber
2
Urutan yang benar adalah PERTAMA mengatur direktori baru, lalu memindahkannya, btw. Dan Anda dapat menambahkan perintah steno melalui "method.insert", yang melakukan kedua langkah di atas.
pyroscope
@pyroscope mengapa mengatur direktori terlebih dahulu "benar"? Sepertinya saya ingin menunggu untuk melihat apakah Anda mvberhasil sebelum memperbarui direktori.
g33kz0r
2
Nevermind, jawab pertanyaan saya sendiri: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r
0

Jika Anda tidak alergi dengan symlink, salah satu caranya adalah rtmv .

pyroscope
sumber
Untuk kasus khusus ini saya menemukan solusi saya lebih bersih, tetapi ada perintah yang cukup menarik di tautan Anda. Terima kasih.
Skippy le Grand Gourou
0

sebagai skrip bash:

edit, ketika mv -u $old $newgagal, maka seluruh perintah gagal.
Saya akhirnya meninggalkan rTorrent untuk 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
sumber