Un répertoire «watch» ou «watchdir» est un répertoire où l'on entrepose des fichiers .torrent, qui sont alors automatiquement chargés dans notre client bittorrent sans intervention particulière de notre part.
C'est un confort d'usage, d'autant que les fichiers torrents qui attérissent dans le watchdir peuvent eux-mêmes provenir d'autres logiciels (flexget…) qui automatisent la récupération des fichiers .torrent pouvant provenir de diverses sources.
Doc externe :
On voit qu'il y a plusieurs approches.
Ajoutons un schedule
(= une tâche planifiée) à notre fichier rtorrent.rc.
# planifier une tâche nommée 'watch_directory_1': # 1) se déclenche 5 secondes après le démarrage de rtorrent # 2) se déclenche toutes les 10 secondes après cela # 3) Lorsque déclenché, essaie de charger (et démarrer) les nouveaux fichiers *.torrent situés dans le répertoire ~/téléchargements/watch/ # 4) ??? # NOTE: si vous ne souhaitez pas démarrer automatiquement le torrent, changez 'load.start' par 'load.normal' schedule = watch_directory_1, 5, 10, "load.start=~/téléchargements/watch/*.torrent,d.directory.set=~/téléchargements/complete/"
On peut ajouter d'autres lignes schedule, pour surveiller d'autres répertoires.
# planifier une tâche nommée 'watch_directory_2': # 1) se déclenche 10 secondes après le démarrage de rtorrent # 2) se déclenche toutes les 10 secondes après cela # 3) Lorsque déclenché, essaie de charger (et démarrer) les nouveaux fichiers *.torrent situés dans le répertoire ~/téléchargements/watch_musique/ # 4) ??? schedule = watch_directory_2, 10, 10, "load.start=~/téléchargements/watch_musique/*.torrent,d.directory.set=~/téléchargements/musique/"
J'aimerais pouvoir écrire :
4) Ajuste le répertoire de destination dans lequel seront déplacés les fichiers une fois le téléchargement terminé.
Ce qui me laisse dubitatif ici, c'est que :
mv
.Voir aussi : http://superuser.com/questions/410507/move-already-i-e-not-new-completed-files-in-rtorrent
Sembleraient qu'ils aient voulu simplifier la chose dans les versions récentes de rtorrent.
Si vous utilisez ruTorrent, celui-ci dispose d'un plugin autotools, qui gère à la fois les répertoires watch et le déplacement des fichiers, ainsi que leur étiquettage (label).
On peut utiliser pyrotorque, avec l'instruction job.treewatch
.
Suivez la documentation officielle. Elle est cependant un peu incomplète.
Pour bien comprendre, afin de faire fonctionner le tout, on a besoin de plusieurs briques :
Il faut donc créer les répertoires watch, et indiquer son chemin dans torque.ini.
1) Dans notre rtorrent.rc, on doit s'assurer qu'il y a une ligne :
# EVENT: Call bash completion handlers method.set_key = event.download.finished, bash_handlers, "d.save_full_session= ; execute=~/bin/_event.download.finished,$d.hash=,$d.name=,$d.base_path="
2) Le code ci-dessus montre qu'on a besoin d'un fichier ~/bin/_event.download.finished
. Vous devez le copier à la main, Pyroscope le fournit.
3) Pyrotorque ne tourne que si le fichier ~/.pyroscope/run/pyrotorque
existe.
touch ~/.pyroscope/run/pyrotorque
rtorrent va appeller le script _event.download.finished
en fournissant quelques arguments, dont le hash du torrent qui vient d'être completé.
Hélas, le fichier _event.download.finished
fourni par pyroscope est incomplet. Il ne fait qu'appeller d'autres scripts dont le nom correspond à ~/bin/_event.download.finished-*.sh
.
On va donc créer un fichier ~/bin/_event.download.finished-mv.sh
avec ce contenu (basé sur cette doc) :
#!/bin/bash # Remplacez "rtorrentuser" par le nom de l'utilisateur qui possède les outils pyroscope RTBIN="/home/rtorrentuser/bin" function rt_create_targetdir() { targetdir=$($RTBIN/rtcontrol "hash=$1" -qo custom_targetdir) mkdir -p "$targetdir" } function rt_mv_then_restart() { $RTBIN/rtcontrol "hash=$1" --stop $RTBIN/rtcontrol "hash=$1" --exec "directory.set={{item.custom_targetdir}}" -o custom_targetdir --yes $RTBIN/rtcontrol "hash=$1" --spawn "mv {{item.path}} {{item.custom_targetdir}}" -o custom_targetdir sleep 1 $RTBIN/rtcontrol "hash=$1" --start } rt_create_targetdir "$1" rt_mv_then_restart "$1"
Que fait ce script ?
D'abord, il créé le répertoire de destination. Ce n'est pas nécessaire si vous en avez un nombre défini que vous pouvez créer à la main.
Dans la seconde fonction, il met en arrêt le téléchargement. Ensuite, il indique à rtorrent que les fichiers du téléchargement sont situés ailleurs (dans le targetdir qu'on a écrit dans torque.ini).
Puis il déplace le fichier, et redémarre le téléchargement qui sera donc en seed, tout en ayant ses fichiers situés à leur emplacement final.
On pourrait aussi utiliser rtmv
pour laisser les fichiers dans /work/. Et puisque le fichier dans /work/ existerait toujours en tant que lien symbolique, il n'est pas utile de signaler à rtorrent que son emplacement a changé.
N'oubliez pas de rendre exécutables les fichiers _event.download.finished* :
chmod +x ~/bin/_event.download.finished*