Я честно не полностью знаю то, что я делаю, но я пытаюсь заставить Объем Pirate Bay открыть свои результаты с Плеером Acestream. Одна из проблем, которые не знает быть Acestream, как обработать магнитные ссылки.
Исходный код:
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 ~/.torrents --on-download-complete ~/.torrent.sh --bt-metadata-only=true --bt-save-metadata=true \'%s\'' % uri)
Я использую aria2c, чтобы соединиться с магнитной ссылкой и загрузить файл потока, и после того как файл был загружен, aria2c запускает скрипт удара, который открывает файл потока с Acestream. Этот процесс хорошо работает на командной строке. Я предполагаю, что мой синтаксис является неправильным.
Любая справка значительно ценится.
Спасибо
Наконец-то это сработало, изложив каждую команду, которую я хотел запустить с помощью 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='')
Теперь мне просто нужно разобрать взрослые хиты. В конце концов, это для семейной развлекательной системы.