Rtorrent'de zaten tamamlanmış (yani yeni değil) dosyaları taşı


13

Bir süredir tek bir dizinde rtorrent kullanıyorum. Şimdi farklı dizinler kullanmak ve hatta tamamlanmış indirmeleri başka bir yere taşımak mümkün olduğunu anladım, bu yüzden rtorrent wiki'ye göre .rtorrent.rc'yi aşağıdaki gibi düzenledim:

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

Yeni seller için çalışıyor gibi görünüyor. Ancak dizinleri bölmek için daha önce indirmiş olduğum bir sürü tamamlanmış dosyam var ve onlar için çalışmıyor: Dosyalarını oturum dizininde silersem, rtorrent karmayı kontrol eder, ancak onları taşımaz ve kendim hareket ettirmek rtorrent onları görmez ve yeniden indirmeye çalışır.

Peki rtorrent'e onları taşımasını veya başka bir dizinde olduklarını nasıl söyleyebilirim?

Teşekkürler.

Yanıtlar:


14

Tamam, bunu anladım. Rtorrent içinde Ctrl+ kullanarak bir komut satırı açabilirsiniz X. Oradan pek çok şey yapabilirsiniz (sanırım bu temel rtorrent yönetimi), şeyleri yazdırmak ( print=$variable=örn. print=$d.get_directory=), Komutları yürütmek ( execute=command) veya değişkenleri ayarlamak ( variable=newvalue) gibi.

Bu komut isteminden, bitmiş torrent'i başka bir yere taşıyabilirsiniz, ancak bunun ne gerekli ne de yeterli olduğunu unutmayın (aşağıya bakın). Örneğin, orijinal soruda verilen .rtorrent.rc dosyasındaki örneği kullanarak:

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

Bununla birlikte, bu komut rtorrent'in torrent'i tohumlamaya devam etmesini önleyecektir, bu yüzden yeterli değildir. Tohumlamaya devam etmek için, yine de bu komut isteminden, bu torrent için indirme dizinini yeni konuma ayarlamalısınız:

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

Son olarak, executekomut gerekli değildir: yukarıda açıklandığı gibi yeni dizini ayarladığınız sürece torrent'i istediğiniz şekilde (yani rtorrent dışında) taşıyabilirsiniz.

Bundan sonra torrent'i ([KAPALI] olarak işaretlenmişse) Ctrl+ kullanarak yeniden açmak gerekebilir R.


2
Doğru sıra İLK yeni dizini ayarlayın, sonra taşıyın, btw. Ve yukarıdaki adımların her ikisini de yapan "method.insert" ile steno bir komut ekleyebilirsiniz.
pyroscope

@pyroscope neden ilk dizini "doğru" yapar? Bana öyle geliyor ki mvdizini güncellemeden önce başarılı olup olmadığını görmek için beklemek istiyorsun .
g33kz0r

2
Nevermind, kendi sorumu yanıtladı: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r


0

bash betiği olarak:

düzenlemek, mv -u $old $newbaşarısız olduğunda, tüm komut başarısız olur.
qBitTorrent için rTorrent bırakarak sona erdi.

#!/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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.