web-dev-qa-db-ja.com

海賊湾スコープが結果を開く方法を変更する

正直なところ、自分が何をしているのか完全にはわかりませんが、Pirate BayScopeにAcestreamPlayerで結果を公開させようとしています。 Acestreamの問題の1つは、磁気リンクの処理方法を知りません。

元のコードは次のとおりです。

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 ~/.torrents --on-download-complete ~/.torrent.sh --bt-metadata-only=true --bt-save-metadata=true \'%s\'' % uri)

Aria2cを使用して磁気リンクに接続し、トレントファイルをダウンロードしています。ファイルがダウンロードされると、aria2cはbashスクリプトを実行して、Acestreamでトレントファイルを開きます。このプロセスは、コマンドラインで正常に機能します。構文が間違っていると思います。

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

ありがとうございました

1

最終的には、Popenを使用して実行したい各コマンドを詳しく説明することで機能し、最終的な実装は次のようになります。

    else:
        print uri
        subprocess.Popen('rm /path/.torrents/*', Shell=True)
        subprocess.Popen('gnome-terminal -x aria2c --allow-overwrite=true -d /path/.torrents --bt-metadata-only=true --bt-save-metadata=true \'%s\'' % uri, Shell=True).wait()
        torrent = subprocess.check_output('ls /path/.torrents/*', Shell=True).strip()
        GLib.spawn_command_line_async('acestreamplayer %s' % torrent)
        return Unity.ActivationResponse(handled=Unity.HandledType.HIDE_DASH, goto_uri='')

今、私はただ大人のヒットを解析する必要があります。やっぱりファミリーエンターテインメントシステム用です。

1