Bittorrent

transmission-remote: 添加種子後獲取種子ID

  • May 5, 2017

有沒有辦法在呼叫命令時檢索在新添加的 torrent 上傳輸生成的 ID:

$> transmission-remote -a file.torrent

此命令的返回值$?根據 torrent 是否為有效文件返回 0 或 1,但我想找到一種方法來獲取唯一標識符,以便以後對 torrent 執行操作(停止、啟動、刪除等)。

我認為只有兩種方法可以做到:

  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»。

引用自:https://unix.stackexchange.com/questions/363233