0
Petit script d'ajout de lien magnet à Deluge
Même si c'est prévu dans une nouvelle version, il n'est pas posisble de facilement ajouter un lien magnet à Deluge sans lancer une de ses interfaces. J'ai donc décidé d'écrire un petit script bash qui exploite l'API JSON-RPC de Deluge pour ajouter facilement des magnets depuis un terminal.
#!/bin/bash
PASSWORD=""
# Verifier le nombre d'arguments
if [ "$#" != 1 ]; then
echo -e "\033[1;31mMettre le lien magnet en argument.\033[0m"
exit 3
fi
# Connexion
touch cookies.txt
AUTH=$(curl -s -c cookies.txt --compressed -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"method": "auth.login", "params": ["'$PASSWORD'"], "id": 1}' http://localhost:8112/json |sed -n 's/.*"result":
\,.*/\1/p')
if [ "$AUTH" == "true" ]; then
# Ajout du magnet
ADD=$(curl -s -b cookies.txt --compressed -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"method": "core.add_torrent_magnet", "params": ["'$1'", {}], "id": 1}' http://localhost:8112/json |sed -n 's/.*"result":
\,.*/\1/p')
if [ "$ADD" != "null" ]; then
echo -e "\033[1;32mLe magnet $ADD a bien été ajouté\033[0m"
exit 0
else
echo -e "\033[1;31mErreur : lien invalide ?\033[0m"
exit 1
fi
else
echo -e "\033[1;31mErreur d'authentification\033[0m"
exit 2
fi
PASSWORD=""
# Verifier le nombre d'arguments
if [ "$#" != 1 ]; then
echo -e "\033[1;31mMettre le lien magnet en argument.\033[0m"
exit 3
fi
# Connexion
touch cookies.txt
AUTH=$(curl -s -c cookies.txt --compressed -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"method": "auth.login", "params": ["'$PASSWORD'"], "id": 1}' http://localhost:8112/json |sed -n 's/.*"result":

if [ "$AUTH" == "true" ]; then
# Ajout du magnet
ADD=$(curl -s -b cookies.txt --compressed -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"method": "core.add_torrent_magnet", "params": ["'$1'", {}], "id": 1}' http://localhost:8112/json |sed -n 's/.*"result":

if [ "$ADD" != "null" ]; then
echo -e "\033[1;32mLe magnet $ADD a bien été ajouté\033[0m"
exit 0
else
echo -e "\033[1;31mErreur : lien invalide ?\033[0m"
exit 1
fi
else
echo -e "\033[1;31mErreur d'authentification\033[0m"
exit 2
fi
Pensez à modifier la variable PASSWORD en début de script. Rendez le script exécutable et son utilisation est très simple :
$ ./magnet.add.sh "magnet:?xt=urn:btih:95cdb508e6b47b227d3ae1a462ebef4e949f307d&dn=ubuntu-12.04-desktop-amd64.iso&tr=http%3A%2F%2Ftorrent.ubuntu.com%3A6969%2Fannounce&tr=http%3A%2F%2Fipv6.torrent.ubuntu.com%3A6969%2Fannounce"
Je suis sûr que ce script peut être une bonne base pour toutes sortes d'interactions JSON-RPC 😉