Transmission-remote: 添加 torrent 后获取 torrent ID

Transmission-remote: 添加 torrent 后获取 torrent ID

有没有办法在调用命令时检索新添加的 torrent 传输生成的 ID:

$> transmission-remote -a file.torrent

该命令的返回值$?返回 0 或 1,具体取决于 torrent 是否是有效文件,但我想找到一种方法来获取唯一标识符,以便稍后对 torrent 执行操作(停止、启动、删除等)。

答案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”。

相关内容