- Modifié
Introduction : Les événements avec rtorrent
Si vous avez des questions on pourra y réfléchir dans ce topic
http://mondedie.fr/d/5923/1
Je voudrais dans ce topic attirer votre attention sur la possibilité d'exécuter des commandes en fonction des événements rtorrent de votre utilisateur.
Il vous faut pour cela modifier le fichier /home/user/.rtorrent.rc de votre utilisateur rtorrent
Ensuite il faut ajouter une ligne qui doit respecter une syntaxe bien précise.
system.method.set_key = event.download.<type>,<name>,"<command>"
I) Les événements
Il y a 3 événements que l'on peut retenir
le champs event.download.<type>
event.download.erased => cet événement se déclenche lorsqu'un torrent est supprimé de rtorrent.
event.download.finished => cet événement se déclenche lorsqu'un torrent est terminé dans rtorrent.
event.download.inserted_new => cet événement se déclenche lorsqu'un nouveau torrent est ajouté à rtorrent.
Il y a d'autres événements voir ci-dessus. Attention certains ont des comportements un peu étrange comme event.download.inserted
event.download.closed
event.download.hash_done
event.download.hash_queued
event.download.hash_removed
event.download.inserted
event.download.inserted_session
event.download.opened
event.download.paused
event.download.resumed
II) Les IDs
Le champ <name>, c'est l'id de la commande. Vous pouvez mettre ce que vous voulez.
C'est utile pour réutiliser la commande, pour par exemple créer ses propres commandes avec "system.method.insert"
Exemple sur le wiki archlinux.
IV) La commande à exécuter
Pour la <command>, il faut suivre cette syntaxe :
execute=ma_commande,argument1,argument2,argument3
note: on peut récupérer certaine information du torrent concerné avec les Attributes
cf Voir la liste complète ici
Le wiki a été déplacé suite à la migration sur github https://pyrocore.readthedocs.io/en/latest/
Pour information :
d.get_directory = d.get_directory_base (ex : /home/user/torrents/EBOOKS)
d.get_name = d.get_base_filename (ex : Monfichier.pdf)
d.get_base_path = d.get_directory / d.get_name (ex : /home/user/torrents/EBOOKS/Monfichier.pdf)
Pour les exécuter il faut suivre cette syntaxe $mon.attribut=
Par exemple : si on ajoute cette ligne dans le fichier. rtorrent.rc
system.method.set_key = event.download.finished,mail,"execute=/path/script_send_mail.sh,$d.get_name="
Cette directive va s'exécuter à chaque fois qu'un torrent aura fini d'être téléchargé, le script /path/script_send_mail.sh sera exécuté en même temps avec comme argument le nom du torrent (d.get_name).
Précision importante: toutes les commandes sont exécutés avec l'utilisateur rtorrent. Donc vous ne pourrez pas exécuter des commandes qui requières les droits root.