在 Firefox 中配置 add-to-transmission-daemon-action?

在 Firefox 中配置 add-to-transmission-daemon-action?

如何配置 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以便在错误情况下发送电子邮件。

相关内容