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()
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()
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()
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()
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
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