Exemple #1
0
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 ''
Exemple #2
0
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
Exemple #3
0
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