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".
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=}"
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=}"
Si vous avez une erreur, il se peut que votre version de rtorrent ne supporte pas "system.method.set_key", dans ce cas, il faut utiliser :
method.set_key
Vous recevrez ce type de notification
EDIT (XataZ) : ajout d'une annotation en cas d'erreur avec "system.method.set_key".
* Où j'indiquais que PushOver est utilisable 7 jours gratuitement et ensuite c'est de 5$/
à vie par application (si 2 smartphones, 10$). Mais PushBullet, dans sa version pro (qui correspond à mes besoins) est à 4$/
mois.