передача-удаленная: получить идентификатор торрента после добавления торрента

Я разобрался с этим. Я опубликую свое решение на случай, если другие столкнутся с той же проблемой. Но, по сути, брандмауэр на моей гостевой машине не имеет соответствующего порта, который в данном случае является портом 80.
Я нашел решение здесь.

3
05.05.2017, 17:09
1 ответ

Я думаю, что есть только два способа сделать это:

  1. Используйте --list до и после и посмотрите, что нового. Выполнимо в сценарии, но звучит болезненно. И конечно склонность к гонкам.

  2. Используйте -t TORRENT -i и посмотрите на поле Id:. На первый взгляд это выглядит круглым, но оказывается, что TORRENT не обязательно должен быть идентификатором. Это может быть хэш.

Итак, с методом 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]+)$/' )"

Конечно, вы можете объединить их все в одну строку. И вам нужно будет добавить параметры сервера/аутентификации в эту строку tramission-remote. (Лично у меня есть скрипт t-r, который делает это, а также добавляет выделение четных и нечетных строк в вывод -l). Это выглядит так:

#!/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
)

Обратите внимание на «ИМЯ ХОСТА», которое вам нужно заполнить.

3
27.01.2020, 21:21

Теги

Похожие вопросы