コード例 #1
0
ファイル: download_and_play.py プロジェクト: Reunion90/raiz
def download_and_play(url, file_name, download_path):
    # Lanza thread
    logger.info("Active threads " + str(threading.active_count()))
    logger.info("" + repr(threading.enumerate()))
    logger.info("Starting download thread...")
    download_thread = DownloadThread(url, file_name, download_path)
    download_thread.start()
    logger.info("Download thread started")
    logger.info("Active threads " + str(threading.active_count()))
    logger.info("" + repr(threading.enumerate()))

    # Espera
    logger.info("Waiting...")

    while True:
        cancelled = False
        dialog = xbmcgui.DialogProgress()
        dialog.create(config.get_localized_string(60200), config.get_localized_string(60312))
        dialog.update(0)

        while not cancelled and download_thread.isAlive():
            dialog.update(download_thread.get_progress(), config.get_localized_string(60313),
                          "Velocidad: " + str(int(download_thread.get_speed() / 1024)) + " KB/s " + str(
                              download_thread.get_actual_size()) + "MB de " + str(
                              download_thread.get_total_size()) + "MB",
                          "Tiempo restante: " + str(downloadtools.sec_to_hms(download_thread.get_remaining_time())))
            xbmc.sleep(1000)

            if dialog.iscanceled():
                cancelled = True
                break

        dialog.close()

        logger.info("End of waiting")

        # Lanza el reproductor
        player = CustomPlayer()
        player.set_download_thread(download_thread)
        player.PlayStream(download_thread.get_file_name())

        # Fin de reproducción
        logger.info("Fin de reproducción")

        if player.is_stopped():
            logger.info("Terminado por el usuario")
            break
        else:
            if not download_thread.isAlive():
                logger.info("La descarga ha terminado")
                break
            else:
                logger.info("Continua la descarga")

    # Cuando el reproductor acaba, si continúa descargando lo para ahora
    logger.info("Download thread alive=" + str(download_thread.isAlive()))
    if download_thread.isAlive():
        logger.info("Killing download thread")
        download_thread.force_stop()
コード例 #2
0
def download_and_play(url, file_name, download_path):
    # Start thread
    logger.info("Active threads " + str(threading.active_count()))
    logger.info("" + repr(threading.enumerate()))
    logger.info("Starting download thread...")
    download_thread = DownloadThread(url, file_name, download_path)
    download_thread.start()
    logger.info("Download thread started")
    logger.info("Active threads " + str(threading.active_count()))
    logger.info("" + repr(threading.enumerate()))

    # Wait
    logger.info("Waiting...")

    while True:
        cancelled = False
        dialog = xbmcgui.DialogProgress()
        dialog.create(config.get_localized_string(60200), config.get_localized_string(60312))
        dialog.update(0)

        while not cancelled and download_thread.is_alive():
            dialog.update(download_thread.get_progress(), config.get_localized_string(60313) + '\n' +
                          config.get_localized_string(60314) + str(int(old_div(download_thread.get_speed(), 1024))) + " KB/s " + str(
                              download_thread.get_actual_size()) + config.get_localized_string(60316) + str( download_thread.get_total_size()) + "MB",
                          config.get_localized_string(60202) % (str(downloadtools.sec_to_hms(download_thread.get_remaining_time()))))
            xbmc.sleep(1000)

            if dialog.iscanceled():
                cancelled = True
                break

        dialog.close()

        logger.info("End of waiting")

        # Launch the player
        player = CustomPlayer()
        player.set_download_thread(download_thread)
        player.PlayStream(download_thread.get_file_name())

        # End of playback
        logger.info("End of playback")

        if player.is_stopped():
            logger.info("Terminated by user")
            break
        else:
            if not download_thread.is_alive():
                logger.info("Download has finished")
                break
            else:
                logger.info("Continua la descarga")

    # When the player finishes, if you continue downloading it for now
    logger.info("Download thread alive=" + str(download_thread.is_alive()))
    if download_thread.is_alive():
        logger.info("Killing download thread")
        download_thread.force_stop()
コード例 #3
0
def download_and_play(url,file_name,download_path):
    # Lanza thread
    logger.info("[download_and_play.py] Active threads "+str(threading.active_count()))
    logger.info("[download_and_play.py] "+repr(threading.enumerate()))
    logger.info("[download_and_play.py] Starting download thread...")
    download_thread = DownloadThread(url,file_name,download_path)
    download_thread.start()
    logger.info("[download_and_play.py] Download thread started")
    logger.info("[download_and_play.py] Active threads "+str(threading.active_count()))
    logger.info("[download_and_play.py] "+repr(threading.enumerate()))

    # Espera
    logger.info("[download_and_play.py] Waiting...")

    while True:
        cancelled=False
        dialog = xbmcgui.DialogProgress()
        dialog.create('Descargando...', 'Cierra esta ventana para empezar la reproducción')
        dialog.update(0)

        while not cancelled and download_thread.is_alive():
            dialog.update( download_thread.get_progress() , "Cancela esta ventana para empezar la reproducción", "Velocidad: "+str(int(download_thread.get_speed()/1024))+" KB/s "+str(download_thread.get_actual_size())+"MB de "+str(download_thread.get_total_size())+"MB" , "Tiempo restante: "+str( downloadtools.sec_to_hms(download_thread.get_remaining_time())) )
            xbmc.sleep(1000)

            if dialog.iscanceled():
                cancelled=True
                break

        dialog.close()

        logger.info("[download_and_play.py] End of waiting")

        # Lanza el reproductor
        player = CustomPlayer()
        player.set_download_thread(download_thread)
        player.PlayStream( download_thread.get_file_name() )

        # Fin de reproducción
        logger.info("[download_and_play.py] Fin de reproducción")

        if player.is_stopped():
            logger.info("[download_and_play.py] Terminado por el usuario")
            break
        else:
            if not download_thread.is_alive():
                logger.info("[download_and_play.py] La descarga ha terminado")
                break
            else:
                logger.info("[download_and_play.py] Continua la descarga")

    # Cuando el reproductor acaba, si continúa descargando lo para ahora
    logger.info("[download_and_play.py] Download thread alive="+str(download_thread.is_alive()))
    if download_thread.is_alive():
        logger.info("[download_and_play.py] Killing download thread")
        download_thread.force_stop()
コード例 #4
0
def download_and_play(url, file_name, download_path):
    # Lanza thread
    logger.info("[download_and_play.py] Active threads " +
                str(threading.active_count()))
    logger.info("[download_and_play.py] " + repr(threading.enumerate()))
    logger.info("[download_and_play.py] Starting download thread...")
    download_thread = DownloadThread(url, file_name, download_path)
    download_thread.start()
    logger.info("[download_and_play.py] Download thread started")
    logger.info("[download_and_play.py] Active threads " +
                str(threading.active_count()))
    logger.info("[download_and_play.py] " + repr(threading.enumerate()))

    # Espera
    logger.info("[download_and_play.py] Waiting...")

    while True:
        cancelled = False
        dialog = xbmcgui.DialogProgress()
        dialog.create('Caricamento in corso..,',
                      'Chiudi la finestra per avviare la riproduzione')
        dialog.update(0)

        while not cancelled and download_thread.is_alive():
            dialog.update(
                download_thread.get_progress(),
                "Annulla questa finestra per avviare la riproduzione",
                "Velocità: " + str(int(download_thread.get_speed() / 1024)) +
                " KB/s " + str(download_thread.get_actual_size()) + "MB de " +
                str(download_thread.get_total_size()) + "MB",
                "Tempo rimanente: " + str(
                    downloadtools.sec_to_hms(
                        download_thread.get_remaining_time())))
            xbmc.sleep(1000)

            if dialog.iscanceled():
                cancelled = True
                break

        dialog.close()

        logger.info("[download_and_play.py] End of waiting")

        # Lanza el reproductor
        player = CustomPlayer()
        player.set_download_thread(download_thread)
        player.PlayStream(download_thread.get_file_name())

        # Fin de reproducción
        logger.info("[download_and_play.py] Fin de reproducción")

        if player.is_stopped():
            logger.info("[download_and_play.py] Terminado por el usuario")
            break
        else:
            if not download_thread.is_alive():
                logger.info("[download_and_play.py] La descarga ha terminado")
                break
            else:
                logger.info("[download_and_play.py] Continua la descarga")

    # Cuando el reproductor acaba, si continúa descargando lo para ahora
    logger.info("[download_and_play.py] Download thread alive=" +
                str(download_thread.is_alive()))
    if download_thread.is_alive():
        logger.info("[download_and_play.py] Killing download thread")
        download_thread.force_stop()
コード例 #5
0
def download_and_play(url, file_name, download_path, show_dialog=True):
    # Lanza thread
    logger.info("[download_and_play.py] Active threads " +
                str(threading.active_count()))
    logger.info("[download_and_play.py] " + repr(threading.enumerate()))
    logger.info("[download_and_play.py] Starting download thread...")
    download_thread = DownloadThread(url, file_name, download_path)
    download_thread.start()
    logger.info("[download_and_play.py] Download thread started")
    logger.info("[download_and_play.py] Active threads " +
                str(threading.active_count()))
    logger.info("[download_and_play.py] " + repr(threading.enumerate()))

    # Espera
    logger.info("[download_and_play.py] Waiting...")

    while True:
        cancelled = False

        if show_dialog:
            dialog = xbmcgui.DialogProgress()
            dialog.create('Descargando...',
                          'Cierra esta ventana para empezar la reproducción')
            dialog.update(0)

            while not cancelled and download_thread.is_alive():
                dialog.update(
                    download_thread.get_progress(),
                    "Cancela esta ventana para empezar la reproducción",
                    "Velocidad: " +
                    str(int(download_thread.get_speed() / 1024)) + " KB/s " +
                    str(download_thread.get_actual_size()) + "MB de " +
                    str(download_thread.get_total_size()) + "MB",
                    "Tiempo restante: " + str(
                        downloadtools.sec_to_hms(
                            download_thread.get_remaining_time())))
                xbmc.sleep(1000)

                if dialog.iscanceled():
                    cancelled = True
                    break

            dialog.close()
        else:
            xbmc.executebuiltin((
                u'XBMC.Notification("Iniciando", "Iniciando descarga en segundo plano...", 300)'
            ))
            xbmc.sleep(3000)

        logger.info("[download_and_play.py] End of waiting")

        # Lanza el reproductor
        player = CustomPlayer()
        player.set_download_thread(download_thread)
        player.PlayStream(download_thread.get_file_name())

        # Fin de reproducción
        logger.info("[download_and_play.py] Fin de reproducción")

        if player.is_stopped():
            logger.info("[download_and_play.py] Terminado por el usuario")
            break
        else:
            if not download_thread.is_alive():
                logger.info("[download_and_play.py] La descarga ha terminado")
                break
            else:
                logger.info("[download_and_play.py] Continua la descarga")

    # Cuando el reproductor acaba, si continúa descargando lo para ahora
    logger.info("[download_and_play.py] Download thread alive=" +
                str(download_thread.is_alive()))
    if download_thread.is_alive():
        logger.info("[download_and_play.py] Killing download thread")
        download_thread.force_stop()