Una vez finalizada la descarga es fundamental para la filosofía P2P dejar el fichero compartiendo el máximo tiempo posible. Podemos hacer que, de manera automática, se deje de compartir al alcanzar el ratio deseado, y mover el fichero a una carpeta definitiva.

Creación del script de finalización

Una vez obtenido el ratio deseado, podemos hacer que Transmission ejecute un script moviendo el torrent a una carpeta definida para ello y borrándolo de la cola.

Las carpetas deberán tener acceso de lectura y escritura para el usuario Transmission.

sudo nano /usr/local/bin/finalized.sh
#!/bin/sh

MOVEDIR=/PATH/TO/MOVE
BASE_COMMAND="transmission-remote -n USUARIO:PASSWORD"

TORRENT_ID_LIST=$($BASE_COMMAND -l | sed -e '1d;$d;s/^ *//' | cut -d ' ' -f 1)

for TORRENT_ID in $TORRENT_ID_LIST
do
        NAME=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "Name:" | sed 's/^ *//' | cut -d ' ' -f 2-)
        PERCENT_COMPLETE=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "Percent Done:" | sed 's/^ *//' | cut -d ' ' -f 3)
        STATE=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "State:" | sed 's/^ *//' | cut -d ' ' -f 2)
        RATIO=$($BASE_COMMAND -t $TORRENT_ID -i | grep -i "Ratio:" | sed 's/^ *//' | cut -d ' ' -f 2)

        #echo "$NAME:$PERCENT_COMPLETE:$STATE:$RATIO"

        if [ "$PERCENT_COMPLETE" = "100%" ] && ( [ "$STATE" = "Stopped" ] || [ "$STATE" = "Finished" ] ); then
                telegram.sh "Torrent $NAME is completed"
                echo "Torrent $NAME is completed"
                $BASE_COMMAND -t $TORRENT_ID --move $MOVEDIR
                $BASE_COMMAND -t $TORRENT_ID -r
                telegram.sh "Torrent data moved and removed from transmission"
                echo "Torrent data moved and removed from transmission"
        fi
done

Hay que tener en cuenta modificar las dos primeras variables con los datos adecuados.

Integración con Telegram (opcional)

Además he añadido en el script original las siguientes líneas para recibir un mensaje por Telegram avisándome que la descarga ha finalizado. Para ello, necesitarás un bot de Telegram:

telegram.sh "Torrent $NAME is completed"
telegram.sh "Torrent data moved and removed from transmission"

Configuración de permisos

Damos acceso de ejecución:

sudo chmod +x /usr/local/bin/finalized.sh

Configuración de Transmission

Paramos el servicio:

sudo systemctl stop transmission

Editamos el fichero de configuración:

sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json

Y modificamos las siguientes líneas:

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/usr/local/bin/finalized.sh",

Y arrancamos de nuevo:

sudo systemctl start transmission

Ya lo tenemos todo listo. Ahora cuando alcancemos el ratio seleccionado en Transmission, los ficheros se moverán a la carpeta elegida.