転送 - リモート:急流を追加した後に急流IDを取得する

転送 - リモート:急流を追加した後に急流IDを取得する

コマンドを呼び出すときに新しく追加された急流転送で生成されたIDを取得する方法はありますか?

$> transmission-remote -a file.torrent

このコマンドの戻り値は、急流が$?有効なファイルであるかどうかに応じて0または1を返しますが、後で急流の操作(停止、開始、削除など)を実行できる一意の識別子を取得する方法を見つけたいと思います。 )。

ベストアンサー1

私はそれを行う方法が2つしかないと思います。

  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]+)$/' )"

もちろん、これらすべてを1行にまとめることもできます。その行にサーバー/認証オプションを追加する必要があります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」を記録してください。

おすすめ記事