Bittorrent
transmission-remote: 添加種子後獲取種子ID
有沒有辦法在呼叫命令時檢索在新添加的 torrent 上傳輸生成的 ID:
$> transmission-remote -a file.torrent
此命令的返回值
$?
根據 torrent 是否為有效文件返回 0 或 1,但我想找到一種方法來獲取唯一標識符,以便以後對 torrent 執行操作(停止、啟動、刪除等)。
我認為只有兩種方法可以做到:
- 使用
--list
前後,看看有什麼新的。在腳本中可行,但聽起來很痛苦。當然也容易參加比賽。- 使用
-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»。