Example #1
0
def menu(item):
    logger.info("pelisalacarta.channels.descargas menu")

    # Opciones disponibles para el menu
    op = ["Descargar", "Eliminar de la lista", "Reiniciar descarga"]

    opciones = []

    # Opciones para el menu
    if item.downloadStatus == 0:  # Sin descargar
        opciones.append(op[0])  # Descargar
        opciones.append(op[1])  # Eliminar de la lista

    if item.downloadStatus == 1:  # descarga parcial
        opciones.append(op[0])  # Descargar
        opciones.append(op[2])  # Reiniciar descarga
        opciones.append(op[1])  # Eliminar de la lista

    if item.downloadStatus == 2:  # descarga completada
        opciones.append(op[1])  # Eliminar de la lista
        opciones.append(op[2])  # Reiniciar descarga

    if item.downloadStatus == 3:  # descarga con error
        opciones.append(op[2])  # Reiniciar descarga
        opciones.append(op[1])  # Eliminar de la lista

    # Mostramos el dialogo
    seleccion = platformtools.dialog_select("Elige una opción", opciones)

    # -1 es cancelar
    if seleccion == -1: return

    logger.info("pelisalacarta.channels.descargas menu opcion=%s" %
                (opciones[seleccion]))
    # Opcion Eliminar
    if opciones[seleccion] == op[1]:
        filetools.remove(item.path)

    # Opcion inicaiar descarga
    if opciones[seleccion] == op[0]:
        start_download(item)

    # Reiniciar descarga
    if opciones[seleccion] == op[2]:
        if filetools.isfile(
                os.path.join(config.get_setting("downloadpath"),
                             item.downloadFilename)):
            filetools.remove(
                os.path.join(config.get_setting("downloadpath"),
                             item.downloadFilename))
        JSONItem = Item().fromjson(filetools.read(item.path))
        JSONItem.downloadStatus = 0
        JSONItem.downloadComplete = 0
        JSONItem.downloadProgress = 0
        JSONItem.downloadUrl = ""
        filetools.write(item.path, JSONItem.tojson())

    platformtools.itemlist_refresh()
Example #2
0
def menu(item):
    logger.info("pelisalacarta.channels.descargas menu")

    # Opciones disponibles para el menu
    op = ["Descargar", "Eliminar de la lista", "Reiniciar descarga"]

    opciones = []

    # Opciones para el menu
    if item.downloadStatus == 0:  # Sin descargar
        opciones.append(op[0])  # Descargar
        opciones.append(op[1])  # Eliminar de la lista

    if item.downloadStatus == 1:  # descarga parcial
        opciones.append(op[0])  # Descargar
        opciones.append(op[2])  # Reiniciar descarga
        opciones.append(op[1])  # Eliminar de la lista

    if item.downloadStatus == 2:  # descarga completada
        opciones.append(op[1])  # Eliminar de la lista
        opciones.append(op[2])  # Reiniciar descarga

    if item.downloadStatus == 3:  # descarga con error
        opciones.append(op[2])  # Reiniciar descarga
        opciones.append(op[1])  # Eliminar de la lista

    # Mostramos el dialogo
    seleccion = platformtools.dialog_select("Elige una opción", opciones)

    # -1 es cancelar
    if seleccion == -1: return

    logger.info("pelisalacarta.channels.descargas menu opcion=%s" % (opciones[seleccion]))
    # Opcion Eliminar
    if opciones[seleccion] == op[1]:
        filetools.remove(item.path)

    # Opcion inicaiar descarga
    if opciones[seleccion] == op[0]:
        start_download(item)

    # Reiniciar descarga
    if opciones[seleccion] == op[2]:
        if filetools.isfile(os.path.join(config.get_setting("downloadpath"), item.downloadFilename)):
            filetools.remove(os.path.join(config.get_setting("downloadpath"), item.downloadFilename))
        JSONItem = Item().fromjson(filetools.read(item.path))
        JSONItem.downloadStatus = 0
        JSONItem.downloadComplete = 0
        JSONItem.downloadProgress = 0
        JSONItem.downloadUrl = ""
        filetools.write(item.path, JSONItem.tojson())

    platformtools.itemlist_refresh()
Example #3
0
def restart_error(item):
    logger.info("pelisalacarta.channels.descargas restart_error")
    for fichero in sorted(filetools.listdir(item.url)):
        if fichero.endswith(".json"):
            download_item = Item().fromjson(filetools.read(os.path.join(item.url, fichero)))
            serie_name = "%s [%s]" % (download_item.contentSerieName, download_item.contentChannel)
            if not item.serie_name or item.serie_name == serie_name:
              if download_item.downloadStatus == 3:
                  if filetools.isfile(os.path.join(config.get_setting("downloadpath"), download_item.downloadFilename)):
                      filetools.remove(os.path.join(config.get_setting("downloadpath"), download_item.downloadFilename))
                  download_item.downloadStatus = 0
                  download_item.downloadComplete = 0
                  download_item.downloadProgress = 0
                  download_item.downloadUrl = ""
                  filetools.write(os.path.join(item.url, fichero), download_item.tojson())

    platformtools.itemlist_refresh()
Example #4
0
def restart_error(item):
    logger.info("pelisalacarta.channels.descargas restart_error")
    for fichero in sorted(filetools.listdir(item.url)):
        if fichero.endswith(".json"):
            download_item = Item().fromjson(
                filetools.read(os.path.join(item.url, fichero)))
            serie_name = "%s [%s]" % (download_item.contentSerieName,
                                      download_item.contentChannel)
            if not item.serie_name or item.serie_name == serie_name:
                if download_item.downloadStatus == 3:
                    if filetools.isfile(
                            os.path.join(config.get_setting("downloadpath"),
                                         download_item.downloadFilename)):
                        filetools.remove(
                            os.path.join(config.get_setting("downloadpath"),
                                         download_item.downloadFilename))
                    download_item.downloadStatus = 0
                    download_item.downloadComplete = 0
                    download_item.downloadProgress = 0
                    download_item.downloadUrl = ""
                    filetools.write(os.path.join(item.url, fichero),
                                    download_item.tojson())

    platformtools.itemlist_refresh()
Example #5
0
def mainlist(item):
    logger.info("pelisalacarta.channels.descargas mainlist")
    
    itemlist = []
    status_color = {0: "orange", 1: "orange", 2: "green", 3: "red"}
    item.url = config.get_setting("downloadlistpath")
    
    series = {}

    for file in sorted(filetools.listdir(item.url)):
        file = os.path.join(item.url, file)

        # Saltamos los archivos que no sean .json
        if not file.endswith(".json"): continue

        i = Item().fromjson(filetools.read(file))
        i.path = file
        i.thumbnail = i.contentThumbnail
        
        #item.serie_name significa que estamos desntro de una serie
        if not item.serie_name:
          # Series
          if i.contentType == "episode":
              serie_name = "%s [%s]" % (i.contentSerieName, i.contentChannel)
              if not serie_name in series:
                title = serie_name
                series = {serie_name: {"downloadProgress": [i.downloadProgress], "downloadStatus": [i.downloadStatus]}}
                i.title=title
                i.contentSeason = ""
                i.contntEpisodeNumber = ""
                i.action = "mainlist"
                i.serie_name = serie_name
                itemlist.append(i)
              else:
                series[serie_name]["downloadProgress"].append(i.downloadProgress)
                series[serie_name]["downloadStatus"].append(i.downloadStatus)


          # Peliculas
          elif i.contentType == "movie":
              i.title = "[COLOR %s][%i%%][/COLOR] %s" % (status_color[i.downloadStatus], i.downloadProgress, i.contentTitle)
              itemlist.append(i)
        else:
            if i.contentType == "episode":
              serie_name = "%s [%s]" % (i.contentSerieName, i.contentChannel)
              if serie_name == item.serie_name:
                i.title = "[COLOR %s][%i%%][/COLOR] %s" % (status_color[i.downloadStatus], i.downloadProgress, i.contentTitle)
                itemlist.append(i)  
    
    for i in itemlist:
      if i.title in series:
        if any(series[i.title]["downloadStatus"]) == 3:
          downloadStatus = 3
        elif all(series[i.title]["downloadStatus"]) == 2:
          downloadStatus = 2
        else:
          downloadStatus = 1
          
        downloadProgress = sum(series[i.title]["downloadProgress"]) / len(series[i.title]["downloadProgress"])
        
        i.title = "[COLOR %s][%i%%][/COLOR] %s [%s]" % (status_color[downloadStatus], downloadProgress, i.contentSerieName, i.contentChannel)
        i.downloadStatus = downloadStatus
                    
    estados = [i.downloadStatus for i in itemlist]
    

    # Si hay alguno completado
    if 2 in estados:
        itemlist.insert(0, Item(channel=item.channel, action="clean_ready", title="Eliminar descargas completadas",
                                url=config.get_setting("downloadlistpath"), serie_name = item.serie_name))

    # Si hay alguno con error
    if 3 in estados:
        itemlist.insert(0, Item(channel=item.channel, action="restart_error", title="Reiniciar descargas con error",
                                url=config.get_setting("downloadlistpath"), serie_name = item.serie_name))

    # Si hay alguno pendiente
    if 1 in estados or 0 in estados:
        itemlist.insert(0, Item(channel=item.channel, action="download_all", title="Descargar todo",
                                url=config.get_setting("downloadlistpath"), serie_name = item.serie_name))

    if len(itemlist):
        itemlist.insert(0, Item(channel=item.channel, action="clean_all", title="Eliminar todo",
                                url=config.get_setting("downloadlistpath"), serie_name = item.serie_name))

    return itemlist
Example #6
0
def mainlist(item):
    logger.info("pelisalacarta.channels.descargas mainlist")

    itemlist = []
    status_color = {0: "orange", 1: "orange", 2: "green", 3: "red"}
    item.url = config.get_setting("downloadlistpath")

    series = {}

    for file in sorted(filetools.listdir(item.url)):
        file = os.path.join(item.url, file)

        # Saltamos los archivos que no sean .json
        if not file.endswith(".json"): continue

        i = Item().fromjson(filetools.read(file))
        i.path = file
        i.thumbnail = i.contentThumbnail

        #item.serie_name significa que estamos desntro de una serie
        if not item.serie_name:
            # Series
            if i.contentType == "episode":
                serie_name = "%s [%s]" % (i.contentSerieName, i.contentChannel)
                if not serie_name in series:
                    title = serie_name
                    series = {
                        serie_name: {
                            "downloadProgress": [i.downloadProgress],
                            "downloadStatus": [i.downloadStatus]
                        }
                    }
                    i.title = title
                    i.contentSeason = ""
                    i.contntEpisodeNumber = ""
                    i.action = "mainlist"
                    i.serie_name = serie_name
                    itemlist.append(i)
                else:
                    series[serie_name]["downloadProgress"].append(
                        i.downloadProgress)
                    series[serie_name]["downloadStatus"].append(
                        i.downloadStatus)

            # Peliculas
            elif i.contentType == "movie":
                i.title = "[COLOR %s][%i%%][/COLOR] %s" % (status_color[
                    i.downloadStatus], i.downloadProgress, i.contentTitle)
                itemlist.append(i)
        else:
            if i.contentType == "episode":
                serie_name = "%s [%s]" % (i.contentSerieName, i.contentChannel)
                if serie_name == item.serie_name:
                    i.title = "[COLOR %s][%i%%][/COLOR] %s" % (status_color[
                        i.downloadStatus], i.downloadProgress, i.contentTitle)
                    itemlist.append(i)

    for i in itemlist:
        if i.title in series:
            if any(series[i.title]["downloadStatus"]) == 3:
                downloadStatus = 3
            elif all(series[i.title]["downloadStatus"]) == 2:
                downloadStatus = 2
            else:
                downloadStatus = 1

            downloadProgress = sum(series[i.title]["downloadProgress"]) / len(
                series[i.title]["downloadProgress"])

            i.title = "[COLOR %s][%i%%][/COLOR] %s [%s]" % (
                status_color[downloadStatus], downloadProgress,
                i.contentSerieName, i.contentChannel)
            i.downloadStatus = downloadStatus

    estados = [i.downloadStatus for i in itemlist]

    # Si hay alguno completado
    if 2 in estados:
        itemlist.insert(
            0,
            Item(channel=item.channel,
                 action="clean_ready",
                 title="Eliminar descargas completadas",
                 url=config.get_setting("downloadlistpath"),
                 serie_name=item.serie_name))

    # Si hay alguno con error
    if 3 in estados:
        itemlist.insert(
            0,
            Item(channel=item.channel,
                 action="restart_error",
                 title="Reiniciar descargas con error",
                 url=config.get_setting("downloadlistpath"),
                 serie_name=item.serie_name))

    # Si hay alguno pendiente
    if 1 in estados or 0 in estados:
        itemlist.insert(
            0,
            Item(channel=item.channel,
                 action="download_all",
                 title="Descargar todo",
                 url=config.get_setting("downloadlistpath"),
                 serie_name=item.serie_name))

    if len(itemlist):
        itemlist.insert(
            0,
            Item(channel=item.channel,
                 action="clean_all",
                 title="Eliminar todo",
                 url=config.get_setting("downloadlistpath"),
                 serie_name=item.serie_name))

    return itemlist