def stream_torrent(file_index): """ Stream a videofile from torrent @param file_index: @return: """ torrent_data = jsonrq.get_last_added_torrent() if file_index >= len(torrent_data['files']) or file_index < 0: raise IndexError('File index {0} is out of range!'.format(file_index)) progress_dialog = xbmcgui.DialogProgress() progress_dialog.create(string(32014)) jsonrq.buffer_file(file_index) while not (progress_dialog.iscanceled() or jsonrq.check_buffering_complete()): torrent_info = jsonrq.get_torrent_info(torrent_data['info_hash']) progress_dialog.update(jsonrq.get_buffer_percent(), string(32018).format(torrent_info['total_download']), string(32019).format(torrent_info['dl_speed']), string(32020).format(torrent_info['num_seeds'])) time.sleep(1.0) if not progress_dialog.iscanceled(): progress_dialog.close() return media_url + quote(torrent_data['files'][file_index][0].replace('\\', '/').encode('utf-8')) else: jsonrq.abort_buffering() return ''
def add_torrent(torrent): """ Add torrent for downloading @param torrent: @return: """ jsonrq.add_torrent(torrent) progress_dialog = xbmcgui.DialogProgress() progress_dialog.create(string(32015)) progress_dialog.update(0, string(32016)) while not (progress_dialog.iscanceled() or jsonrq.check_torrent_added()): time.sleep(1.0) if not progress_dialog.iscanceled(): progress_dialog.close() return jsonrq.get_last_added_torrent() else: return None
def add_torrent(torrent, paused=True): """ Add torrent for downloading :param torrent: :return: """ jsonrq.add_torrent(torrent, paused) progress_dialog = xbmcgui.DialogProgress() progress_dialog.create(_('Adding torrent')) progress_dialog.update(0, _('This may take some time.')) while not (progress_dialog.iscanceled() or jsonrq.check_torrent_added()): xbmc.sleep(1000) if not progress_dialog.iscanceled(): progress_dialog.close() return jsonrq.get_last_added_torrent() else: return None