クリックしたBittorentリンクがリモートシステムで実行されているトランスポートデーモンに自動的に追加されるようにFirefoxを設定するにはどうすればよいですか?
トランスポートデーモンはssh / transmission-remote-controlポートを介して使用できます。
私が選択したシェルスクリプトを使用して急流ファイルを開くようにFirefoxに簡単に指示できます。これにより、Firefoxは急流ファイルをダウンロードしてスクリプトに一時/var/tmp
ファイルパスを提供します。
これはまさに私が望むものではありません。シェルスクリプトを呼び出して(元の)URLを引数として提供するには、Firefoxが必要です。
Firefoxは、シェルスクリプトの終了ステータスが追加設定のゼロ以外の場合でもフィードバックを提供します。
(ここではシェルスクリプトについて言及しましたが、この目的に適した他のスクリプトソリューションがある場合は躊躇しないでください。)
答え1
驚くべきことに、Firefoxは外部プログラムを使用して特定のMIMEタイプ(または特定のファイル拡張子を含む)のURLを直接開く方法を提供しません。
別のユースケースは、ストリーミングのために外部プログラムを呼び出すことです。
そこ偶数です一部古い抜け穴レポート~のためFirefoxブラウザ(10年前にさかのぼります)。開発者はこれらの一般的な問題を認めているようですが、オープンな態度を維持し、時には主なアーキテクチャの問題に言及します。他のブラウザ(Opera / Internet-Explorerなど)は、外部プログラムでURLを開く機能をサポートしています。いくつかのコメントでは、この問題を解決するために他のプラグインについて言及していますが、すべて停止しているか機能していないようです。
私は次の解決策を思いついた。
パート 1: プラグイン
FirefoxプラグインのインストールURLリレー。これにより、外部プログラムで開くURLパターンを設定できます。
パート2:シェルスクリプト
次のシェルスクリプトを使用します。
#!/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にスペース/シェルメタ文字が表示されるのを防ぐために使用されます。ただし、Firefoxは合理的であり、これらの文字を含まない可能性があります。
パート3:URLリレーの設定
\.torrent$
スクリプトの場所を含むURLパターンなどを実行可能ファイルとパラメータとして使用します%URL%
。
補足説明
プラグインURL Relayはエラー終了ステータスに関するフィードバックを提供していないようです。したがって、at now
エラーが発生したときに電子メールを送信するように上記のスクリプトをラップできます。