老实说,我并不完全知道我在做什么,但我正试图让 Pirate Bay Scope 用 Acestream Player 打开它的结果。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='')
我修改了一行,所以它是:
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 连接到磁力链接并下载 torrent 文件,一旦下载了文件,aria2c 就会运行一个 bash 脚本,该脚本使用 Acestream 打开 torrent 文件。此过程在命令行上运行良好。我猜我的语法是错误的。
我可以说从范围中选择 torrent 运行 aria2c 并打开端口,但没有创建 torrent 文件,也没有执行我的脚本。奇怪的是,当我添加gnome-terminal -x
到命令行的前面时,为了观察它运行以进行调试,它成功地创建了 torrent 文件,并且我的脚本打开了 Acestream 一瞬间。
任何帮助是极大的赞赏。
谢谢