0

正直なところ、私が何をしているのか完全にはわかりませんが、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 を一瞬だけ開きます。

どんな助けでも大歓迎です。

ありがとうございました

4

1 に答える 1