正直なところ、私が何をしているのか完全にはわかりませんが、Pirate Bay Scope が Acestream Player で結果を開くようにしようとしています。問題の 1 つは、Acestream が磁気リンクの処理方法を認識していないことです。
以下の元のコードはgvfs-open
、既定のアプリケーションで を開くために使用します。
def on_activate_uri (self, scope, uri):
if uri.startswith("more"):
results = self.scope.props.results_model
page = uri.split('__')[2]
search = uri.split('__')[1]
results.remove(results.get_iter_at_row(results.get_n_rows()-1))
self.update_results_model (search, results, page)
return Unity.ActivationResponse(handled=Unity.HandledType.SHOW_DASH, goto_uri="")
else:
print uri
GLib.spawn_command_line_async('gvfs-open %s' % uri)
return Unity.ActivationResponse(handled=Unity.HandledType.HIDE_DASH, goto_uri='')
次のように1行を変更しました。
GLib.spawn_command_line_async("aria2c -d /path/.torrents --on-download-complete /path/.torrent.sh --bt-metadata-only=true --bt-save-metadata=true '%s'" % uri)
私は aria2c を使用して磁気リンクに接続し、トレント ファイルをダウンロードしています。ファイルがダウンロードされると、aria2c は Acestream でトレント ファイルを開く bash スクリプトを実行します。このプロセスは、コマンド ラインで正常に機能します。私の構文が間違っていると思います。
スコープから torrent を選択すると aria2c が実行され、ポートが開かれることがわかりますが、torrent ファイルは作成されず、スクリプトは実行されません。奇妙なことにgnome-terminal -x
、コマンド ラインの先頭に を追加してデバッグ目的で実行すると、torrent ファイルの作成に成功し、スクリプトが Acestream を一瞬だけ開きます。
どんな助けでも大歓迎です。
ありがとうございました