전송-원격: 토렌트 추가 후 토렌트 ID 받기

전송-원격: 토렌트 추가 후 토렌트 ID 받기

명령을 호출할 때 새로 추가된 토렌트 전송으로 생성된 ID를 검색하는 방법이 있습니까?

$> transmission-remote -a file.torrent

이 명령의 반환 값은 $?토렌트가 유효한 파일인지 여부에 따라 0 또는 1을 반환하지만 나중에 토렌트에 대한 작업(중지, 시작, 삭제 등)을 수행할 수 있는 고유 식별자를 얻는 방법을 찾고 싶습니다. ).

답변1

나는 그것을 할 수 있는 방법이 두 가지밖에 없다고 생각한다.

  1. 사용 --list전후의 새로운 기능을 확인하세요 . 스크립트로 작동하지만 고통스러운 것 같습니다. 물론 대회에 참가하는 것도 쉽습니다.

  2. 현장을 사용 -t TORRENT -i하고 관찰하십시오 . Id:언뜻 보면 원형처럼 보이지만 TORRENT가 반드시 ID는 아니라는 사실이 밝혀졌습니다. 해시 값일 수 있습니다.

따라서 접근 방식 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
)

입력해야 하는 "HOSTNAME"을 기록해 두세요.

관련 정보