如何配置 Firefox,以便将单击的 Bittorent 链接自动添加到在远程计算机上运行的传输守护进程?
传输守护进程可通过 ssh/transmission-remote-control 端口使用。
我可以轻松地指示 Firefox 使用我选择的 shell 脚本打开 torrent 文件,然后 Firefox 将 torrent 文件下载到/var/tmp
并提供脚本的临时文件路径。
这并不完全是我想要的 - 我需要 Firefox 来调用 shell 脚本并提供(原始)URL 作为参数。
如果 shell 脚本的退出状态不等于 0,Firefox 甚至会提供反馈,这是一个额外的设置。
(我在这里提到了 shell 脚本,但如果其他脚本解决方案更适合此目的,请不要犹豫)
答案1
非常令人惊讶的是,Firefox 不提供直接使用外部程序打开某些 mime 类型(或包含某些文件扩展名)的 URL 的方法。
另一个用例是调用外部程序进行流式传输。
那里是偶数一些老的漏洞报告为了火狐浏览器(可以追溯到十年前)。开发人员似乎承认了这个普遍问题,但他们仍然持开放态度——有时会提到主要的架构问题。其他浏览器(例如 Opera/Internet-Explorer)支持这种使用外部程序打开 URL 的功能。一些评论提到了不同的插件来解决这个问题 - 但它们似乎都已停止/无法工作。
我想出了以下解决方案:
第 1 部分:插件
安装火狐插件网址中继。这样您就可以配置使用外部程序打开的 URL 模式。
第 2 部分:shell 脚本
使用这样的 shell 脚本:
#!/usr/bin/bash
set -e
set -u
# for testing
set -x
if [ $# -lt 1 ] ; then
cat <<EOF
call: $0 TORRENT_URL_1 TORRENT_URL_2 ...
Adds torrent URLs to a remote transmission daemon.
EOF
exit 1
fi
function quote()
{
for i in "$@"; do
echo --add "'"$i"'"
done
}
HOST=example.org
AUTH="--auth juser:geheim"
ADDR=transmissiond.example.org:5432
TRANSMISSION_REMOTE=transmission-remote
ssh $HOST $TRANSMISSION_REMOTE $ADDR $AUTH `quote "$@"` # "'$1'"
引用方案用于防止 URL 中出现空格/shell 元字符,尽管 Firefox 可能很理智,不会包含这些字符。
第 3 部分:配置 URL 中继
使用诸如\.torrent$
URL 模式之类的内容,将脚本位置作为可执行文件并作为%URL%
参数。
补充笔记
插件 URL Relay 似乎没有提供有关错误退出状态的反馈。因此,可以将上述脚本包装起来,at now
以便在错误情况下发送电子邮件。