transmission-remote: Obtém o ID do torrent depois de adicionar torrent

3

Existe uma maneira de recuperar o ID gerado pela transmissão em um torrent recém-adicionado ao invocar o comando:

$> transmission-remote -a file.torrent

O valor de retorno deste comando $? retorna 0 ou 1, dependendo se o torrent era um arquivo válido, mas eu gostaria de encontrar uma maneira de obter um identificador exclusivo para posteriormente executar operações no torrent (stop, start, remover, etc).

    
por Pierre Roudaut 05.05.2017 / 16:05

1 resposta

3

Acho que há apenas duas maneiras de fazer isso:

  1. Use --list antes e depois e veja o que há de novo. Pode ser feito em um script, mas parece doloroso. E claro, propenso a corridas.

  2. Use -t TORRENT -i e observe o campo Id: . À primeira vista, isso parece circular, mas acontece que o TORRENT não precisa ser um Id. Pode ser um hash.

Então, com o método 2:

hash="$( transmission-show FILE.TORRENT  | perl -n -E 'say $1 if /^\s*Hash: (.+)$/' )"
id="$(transmission-remote -t "$hash" -i | perl -n -E 'say $1 if /^\s*Id: ([0-9]+)$/' )"

Você pode combinar todos em uma linha, é claro. E você terá que adicionar suas opções de servidor / autenticação a essa linha tramission-remote . (Pessoalmente, tenho um script t-r que faz isso e também adiciona destaque de linha ímpar a -l output). Parece assim:

#!/bin/bash

if ! [ -r ~/.transmission-netrc ]; then
    echo Expected to find a ~/.transmission-netrc file with the username
    echo and password.
    exit 1
fi

if [ "xterm" == "$TERM" ]; then
    export TERM=xterm-256color
fi

transmission-remote «HOSTNAME» -N ~/.transmission-netrc "$@" | (
    if [ "-l" == "$1" ]; then
        sed -e "1~2 s|^|'tput setab 149''tput el'|"  -e "2~2 s|^|'tput setab 221''tput el'|"
        tput setab 7
        tput el
    else
        cat
    fi
)

Observe que o "HOSTNAME" você precisa preencher.

    
por 05.05.2017 / 18:21