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

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 😉