PushOver : soyez notifié quand rTorrent termine un DL

notification 14 juin 2016

Je continue de jouer avec PushOver. Après avoir mis en place un système de notifications pour quelques-unes des applications dont je me sers, je souhaitais aussi le faire pour rTorrent.

Le principe est simple :

 – Créer une “application” sur mon compte PO afin d’obtenir une clé API,

 – Créer un script qui contiendra mes accès PO et qui enverra le message ABCD via l’API PO,

 – Modifier .rtorrent.rc afin que ce script soit exécuté à la fin de chaque DL.

Créer une “application” sur PushOver

 – Cliquez sur Register an Application en bas de votre compte,

 – Donnez-lui le nom que vous voulez, précisez que c’est un script (j’ai toujours pas trouvé l’intérêt, sans doute pour leurs stats), je mets une icône de rTorrent histoire de rendre ça plus sympa en recevant la notification (totalement superflue, comme de recevoir ce genre de notif, on est d’accord ^^),

 – Récupérez votre Token pour cette “application”.

Sélection_001

Créer un script

Même principe que dans le tutoriel PushOver en CLI. Comme tous mes DL de serveurs sont rapatriés chez moi via SyncThing, mon message envoyé par ce script est personnalisé. Libre à vous de le modifier.

#!/bin/bash
# Nom du script .. : rtorrentpo.sh
# Date ........... : 06.2016
# Auteur ......... : Aerya | UpAndClear.org
# Description .... : Notification PushOver suite à DL complet sur rTorrent
# Prerequis ...... : Curl (sudo apt-get install curl)
# Specificites ... : .
# Execution ...... : Voir https://upandclear.org/?p=2097

# Variables ...... : Les definir ici et ne pas modifier la suite du script
# TOKEN .......... : Clé API de votre "application"
# USER ........... : Clé de votre compte PO
# MESSAGE ........ : Contenu du message que vous voulez envoyer, le nom du .torrent est déjà inclus via $1

TOKEN=''
USER=''
MESSAGE='complet et transmis vers SyncThing'

# Script ......... : NE PAS MODIFIER
# 1 .............. : Appel de l'URL avec les variables qui suivent
# 2 .............. : Clé API de votre "application"
# 3 .............. : Clé de votre compte PO
# 4 .............. : Contenu du message, $1 = nom du .torrent
# 5 .............. : URL de l'API PushOver

curl -s \
 --form-string "token=${TOKEN}" \
 --form-string "user=${USER}" \
 --form-string "message=$1 ${MESSAGE}" \
 https://api.pushover.net/1/messages.json

Créez par exemple le fichier rtorrentpo.sh (nano rtorrentpo.sh puis quittez en enregistrant avec les touches ctrl + x) dans votre /home/USER/ et rendez-le ensuite exécutable.

sudo chmod +x rtorrentpo.sh

Modifier .rtorrent.rc

Ce fichier caché dans votre /home/USER/ est le fichier de configuration de rTorrent. Il convient de l’éditer (nano /home/USER/.rtorrent.rc) et d’ajouer à la fin que nous voulons que rTorrent exécute le script rtorrentpo.sh à la fin de chaque téléchargement.

Voici le code à ajouter (modifier selon le nom et le chemin de votre script rtorrentpo.sh)

system.method.set_key=event.download.finished,notificationscript,"execute={bash,/home/USER/rtorrentpo.sh,$d.get_name=}"

Attention, à partir de la version rTorrent/ruTorrent 0.9.8/0.13.8 il faut modifier la ligne par ceci (merci Fana)

method.set_key = event.download.finished,notification,"execute2=/home/USER/rtorrentpo.sh,$d.name="

Ce qui vous rendra un fichier de ce type

scgi_port = 127.0.0.1:9203
encoding_list = UTF-8
port_range = 51829-51829
port_random = no
check_hash = yes
directory = /home/xtr02/torrents/IN/
session = /home/xtr02/.session
encryption = allow_incoming, try_outgoing, enable_retry
schedule = watch_directory,1,1,"load_start=/home/xtr02/torrents/WatchDir/*.torrent"
schedule = untied_directory,5,5,"stop_untied=/home/xtr02/torrents/WatchDir/*.torrent"
schedule = espace_disque_insuffisant,1,30,close_low_diskspace=50000M
use_udp_trackers = yes
dht = off
peer_exchange = no
min_peers = 40
max_peers = 100
min_peers_seed = 10
max_peers_seed = 50
max_uploads = 40
execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php xtr02 &}
# Notification PushOver suite DL complet
system.method.set_key=event.download.finished,notificationscript,"execute={bash,/home/xtr02/rtorrentpo.sh,$d.get_name=}"

Vous recevrez ce type de notification

Sélection_002

Mots clés