Merge pull request #329 from thedoctor66/master

Added translation with Italian language
This commit is contained in:
Alfa
2018-07-04 14:25:46 -05:00
committed by GitHub
27 changed files with 19914 additions and 1940 deletions
+20 -20
View File
@@ -10,14 +10,14 @@
"settings": [ "settings": [
{ {
"type": "label", "type": "label",
"label": "Ubicacion de archivos", "label": "@70229",
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "library_add", "id": "library_add",
"type": "bool", "type": "bool",
"label": " - Añadir descargas completadas a la videoteca", "label": "@70230",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
@@ -25,7 +25,7 @@
{ {
"id": "library_move", "id": "library_move",
"type": "bool", "type": "bool",
"label": " - Mover el archivo descargado a la videoteca", "label": "@70231",
"default": true, "default": true,
"enabled": "eq(-1,true)", "enabled": "eq(-1,true)",
"visible": true "visible": true
@@ -33,21 +33,21 @@
{ {
"id": "browser", "id": "browser",
"type": "bool", "type": "bool",
"label": " - Visualizar archivos descargados desde descargas", "label": "@70232",
"default": false, "default": false,
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"type": "label", "type": "label",
"label": "Descarga", "label": "@70243",
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "block_size", "id": "block_size",
"type": "list", "type": "list",
"label": " - Tamaño por bloque", "label": "@70233",
"lvalues": [ "lvalues": [
"128 KB", "128 KB",
"256 KB", "256 KB",
@@ -62,7 +62,7 @@
{ {
"id": "part_size", "id": "part_size",
"type": "list", "type": "list",
"label": " - Tamaño por parte", "label": "@70234",
"lvalues": [ "lvalues": [
"1 MB", "1 MB",
"2 MB", "2 MB",
@@ -78,7 +78,7 @@
{ {
"id": "max_connections", "id": "max_connections",
"type": "list", "type": "list",
"label": " - Numero máximo de conexiones simultaneas", "label": "@70235",
"lvalues": [ "lvalues": [
"1", "1",
"2", "2",
@@ -98,7 +98,7 @@
{ {
"id": "max_buffer", "id": "max_buffer",
"type": "list", "type": "list",
"label": " - Numero máximo de partes en memoria", "label": "@70236",
"lvalues": [ "lvalues": [
"0", "0",
"2", "2",
@@ -118,17 +118,17 @@
}, },
{ {
"type": "label", "type": "label",
"label": "Elección del servidor", "label": "@70237",
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "server_reorder", "id": "server_reorder",
"type": "list", "type": "list",
"label": " - Orden de servidores", "label": "@70238",
"lvalues": [ "lvalues": [
"Mantener", "@70244",
"Reordenar" "@70245"
], ],
"default": 1, "default": 1,
"enabled": true, "enabled": true,
@@ -137,7 +137,7 @@
{ {
"id": "language", "id": "language",
"type": "list", "type": "list",
"label": " - Idioma preferido", "label": "@70246",
"lvalues": [ "lvalues": [
"Esp, Lat, Sub, Eng, Vose", "Esp, Lat, Sub, Eng, Vose",
"Esp, Sub, Lat, Eng, Vose", "Esp, Sub, Lat, Eng, Vose",
@@ -145,29 +145,29 @@
"Vose, Eng, Sub, Esp, Lat" "Vose, Eng, Sub, Esp, Lat"
], ],
"default": 0, "default": 0,
"enabled": "eq(-1,'Reordenar')", "enabled": "eq(-1,@70245])",
"visible": true "visible": true
}, },
{ {
"id": "quality", "id": "quality",
"type": "list", "type": "list",
"label": " - Calidad preferida", "label": "@70240",
"lvalues": [ "lvalues": [
"La mas alta", "@70241",
"HD 1080", "HD 1080",
"HD 720", "HD 720",
"SD" "SD"
], ],
"default": 0, "default": 0,
"enabled": "eq(-2,'Reordenar')", "enabled": "eq(-2,@70245])",
"visible": true "visible": true
}, },
{ {
"id": "server_speed", "id": "server_speed",
"type": "bool", "type": "bool",
"label": " - Elegir los servidores mas rapidos", "label": "@70242",
"default": true, "default": true,
"enabled": "eq(-3,'Reordenar')", "enabled": "eq(-3,@70245])",
"visible": true "visible": true
} }
] ]
+31 -31
View File
@@ -89,40 +89,40 @@ def mainlist(item):
# Si hay alguno completado # Si hay alguno completado
if 2 in estados: if 2 in estados:
itemlist.insert(0, Item(channel=item.channel, action="clean_ready", title="Eliminar descargas completadas", itemlist.insert(0, Item(channel=item.channel, action="clean_ready", title=config.get_localized_string(70218),
contentType=item.contentType, contentChannel=item.contentChannel, contentType=item.contentType, contentChannel=item.contentChannel,
contentSerieName=item.contentSerieName, text_color="sandybrown")) contentSerieName=item.contentSerieName, text_color="sandybrown"))
# Si hay alguno con error # Si hay alguno con error
if 3 in estados: if 3 in estados:
itemlist.insert(0, Item(channel=item.channel, action="restart_error", title="Reiniciar descargas con error", itemlist.insert(0, Item(channel=item.channel, action="restart_error", title=config.get_localized_string(70219),
contentType=item.contentType, contentChannel=item.contentChannel, contentType=item.contentType, contentChannel=item.contentChannel,
contentSerieName=item.contentSerieName, text_color="orange")) contentSerieName=item.contentSerieName, text_color="orange"))
# Si hay alguno pendiente # Si hay alguno pendiente
if 1 in estados or 0 in estados: if 1 in estados or 0 in estados:
itemlist.insert(0, Item(channel=item.channel, action="download_all", title="Descargar todo", itemlist.insert(0, Item(channel=item.channel, action="download_all", title=config.get_localized_string(70220),
contentType=item.contentType, contentChannel=item.contentChannel, contentType=item.contentType, contentChannel=item.contentChannel,
contentSerieName=item.contentSerieName, text_color="green")) contentSerieName=item.contentSerieName, text_color="green"))
if len(itemlist): if len(itemlist):
itemlist.insert(0, Item(channel=item.channel, action="clean_all", title="Eliminar todo", itemlist.insert(0, Item(channel=item.channel, action="clean_all", title=config.get_localized_string(70221),
contentType=item.contentType, contentChannel=item.contentChannel, contentType=item.contentType, contentChannel=item.contentChannel,
contentSerieName=item.contentSerieName, text_color="red")) contentSerieName=item.contentSerieName, text_color="red"))
if not item.contentType == "tvshow" and config.get_setting("browser", "downloads") == True: if not item.contentType == "tvshow" and config.get_setting("browser", "downloads") == True:
itemlist.insert(0, Item(channel=item.channel, action="browser", title="Ver archivos descargados", itemlist.insert(0, Item(channel=item.channel, action="browser", title=config.get_localized_string(70222),
url=DOWNLOAD_PATH, text_color="yellow")) url=DOWNLOAD_PATH, text_color="yellow"))
if not item.contentType == "tvshow": if not item.contentType == "tvshow":
itemlist.insert(0, Item(channel=item.channel, action="settings", title="Configuración descargas...", itemlist.insert(0, Item(channel=item.channel, action="settings", title=config.get_localized_string(70223),
text_color="blue")) text_color="blue"))
return itemlist return itemlist
def settings(item): def settings(item):
ret = platformtools.show_channel_settings(caption="configuración -- Descargas") ret = platformtools.show_channel_settings(caption=config.get_localized_string(70224))
platformtools.itemlist_refresh() platformtools.itemlist_refresh()
return ret return ret
@@ -211,7 +211,7 @@ def menu(item):
else: else:
servidor = "Auto" servidor = "Auto"
# Opciones disponibles para el menu # Opciones disponibles para el menu
op = ["Descargar", "Eliminar de la lista", "Reiniciar descarga y eliminar datos", op = [config.get_localized_string(70225), config.get_localized_string(70226), config.get_localized_string(70227),
"Modificar servidor: %s" % (servidor.capitalize())] "Modificar servidor: %s" % (servidor.capitalize())]
opciones = [] opciones = []
@@ -237,7 +237,7 @@ def menu(item):
opciones.append(op[1]) # Eliminar de la lista opciones.append(op[1]) # Eliminar de la lista
# Mostramos el dialogo # Mostramos el dialogo
seleccion = platformtools.dialog_select("Elige una opción", opciones) seleccion = platformtools.dialog_select(config.get_localized_string(30163), opciones)
# -1 es cancelar # -1 es cancelar
if seleccion == -1: return if seleccion == -1: return
@@ -289,12 +289,12 @@ def move_to_libray(item):
if config.get_setting("library_add", "downloads") == True: if config.get_setting("library_add", "downloads") == True:
if filetools.isfile(final_path): if filetools.isfile(final_path):
if item.contentType == "movie" and item.infoLabels["tmdb_id"]: if item.contentType == "movie" and item.infoLabels["tmdb_id"]:
library_item = Item(title="Descargado: %s" % item.downloadFilename, channel="downloads", library_item = Item(title=config.get_localized_string(70228) % item.downloadFilename, channel="downloads",
action="findvideos", infoLabels=item.infoLabels, url=final_path) action="findvideos", infoLabels=item.infoLabels, url=final_path)
videolibrarytools.save_movie(library_item) videolibrarytools.save_movie(library_item)
elif item.contentType == "episode" and item.infoLabels["tmdb_id"]: elif item.contentType == "episode" and item.infoLabels["tmdb_id"]:
library_item = Item(title="Descargado: %s" % item.downloadFilename, channel="downloads", library_item = Item(title=config.get_localized_string(70228) % item.downloadFilename, channel="downloads",
action="findvideos", infoLabels=item.infoLabels, url=final_path) action="findvideos", infoLabels=item.infoLabels, url=final_path)
tvshow = Item(channel="downloads", contentType="tvshow", tvshow = Item(channel="downloads", contentType="tvshow",
infoLabels={"tmdb_id": item.infoLabels["tmdb_id"]}) infoLabels={"tmdb_id": item.infoLabels["tmdb_id"]})
@@ -474,7 +474,7 @@ def download_from_url(url, item):
block_size=2 ** (17 + int(config.get_setting("block_size", "downloads"))), block_size=2 ** (17 + int(config.get_setting("block_size", "downloads"))),
part_size=2 ** (20 + int(config.get_setting("part_size", "downloads"))), part_size=2 ** (20 + int(config.get_setting("part_size", "downloads"))),
max_buffer=2 * int(config.get_setting("max_buffer", "downloads"))) max_buffer=2 * int(config.get_setting("max_buffer", "downloads")))
d.start_dialog("Descargas") d.start_dialog(config.get_localized_string(60332))
# Descarga detenida. Obtenemos el estado: # Descarga detenida. Obtenemos el estado:
# Se ha producido un error en la descarga # Se ha producido un error en la descarga
@@ -511,11 +511,11 @@ def download_from_server(item):
logger.info(item.tostring()) logger.info(item.tostring())
unsupported_servers = ["torrent"] unsupported_servers = ["torrent"]
progreso = platformtools.dialog_progress("Descargas", "Probando con: %s" % item.server) progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70178) % item.server)
channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel]) channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel])
if hasattr(channel, "play") and not item.play_menu: if hasattr(channel, "play") and not item.play_menu:
progreso.update(50, "Probando con: %s" % item.server, "Conectando con %s..." % item.contentChannel) progreso.update(50, config.get_localized_string(70178) % item.server, config.get_localized_string(60003) % item.contentChannel)
try: try:
itemlist = getattr(channel, "play")(item.clone(channel=item.contentChannel, action=item.contentAction)) itemlist = getattr(channel, "play")(item.clone(channel=item.contentChannel, action=item.contentAction))
except: except:
@@ -578,10 +578,10 @@ def download_from_best_server(item):
result = {"downloadStatus": STATUS_CODES.error} result = {"downloadStatus": STATUS_CODES.error}
progreso = platformtools.dialog_progress("Descargas", "Obteniendo lista de servidores disponibles...") progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70179))
channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel]) channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel])
progreso.update(50, "Obteniendo lista de servidores disponibles:", "Conectando con %s..." % item.contentChannel) progreso.update(50, config.get_localized_string(70184), config.get_localized_string(70180) % item.contentChannel)
if hasattr(channel, item.contentAction): if hasattr(channel, item.contentAction):
play_items = getattr(channel, item.contentAction)( play_items = getattr(channel, item.contentAction)(
@@ -591,8 +591,8 @@ def download_from_best_server(item):
play_items = filter(lambda x: x.action == "play" and not "trailer" in x.title.lower(), play_items) play_items = filter(lambda x: x.action == "play" and not "trailer" in x.title.lower(), play_items)
progreso.update(100, "Obteniendo lista de servidores disponibles", "Servidores disponibles: %s" % len(play_items), progreso.update(100, config.get_localized_string(70183), config.get_localized_string(70181) % len(play_items),
"Identificando servidores...") config.get_localized_string(70182))
if config.get_setting("server_reorder", "downloads") == 1: if config.get_setting("server_reorder", "downloads") == 1:
play_items.sort(key=sort_method) play_items.sort(key=sort_method)
@@ -625,9 +625,9 @@ def select_server(item):
logger.info( logger.info(
"contentAction: %s | contentChannel: %s | url: %s" % (item.contentAction, item.contentChannel, item.url)) "contentAction: %s | contentChannel: %s | url: %s" % (item.contentAction, item.contentChannel, item.url))
progreso = platformtools.dialog_progress("Descargas", "Obteniendo lista de servidores disponibles...") progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70179))
channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel]) channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel])
progreso.update(50, "Obteniendo lista de servidores disponibles:", "Conectando con %s..." % item.contentChannel) progreso.update(50, config.get_localized_string(70184), config.get_localized_string(70180) % item.contentChannel)
if hasattr(channel, item.contentAction): if hasattr(channel, item.contentAction):
play_items = getattr(channel, item.contentAction)( play_items = getattr(channel, item.contentAction)(
@@ -637,14 +637,14 @@ def select_server(item):
play_items = filter(lambda x: x.action == "play" and not "trailer" in x.title.lower(), play_items) play_items = filter(lambda x: x.action == "play" and not "trailer" in x.title.lower(), play_items)
progreso.update(100, "Obteniendo lista de servidores disponibles", "Servidores disponibles: %s" % len(play_items), progreso.update(100, config.get_localized_string(70183), config.get_localized_string(70181) % len(play_items),
"Identificando servidores...") config.get_localized_string(70182))
for x, i in enumerate(play_items): for x, i in enumerate(play_items):
if not i.server and hasattr(channel, "play"): if not i.server and hasattr(channel, "play"):
play_items[x] = getattr(channel, "play")(i) play_items[x] = getattr(channel, "play")(i)
seleccion = platformtools.dialog_select("Selecciona el servidor", ["Auto"] + [s.title for s in play_items]) seleccion = platformtools.dialog_select(config.get_localized_string(70192), ["Auto"] + [s.title for s in play_items])
if seleccion > 1: if seleccion > 1:
update_json(item.path, { update_json(item.path, {
"downloadServer": {"url": play_items[seleccion - 1].url, "server": play_items[seleccion - 1].server}}) "downloadServer": {"url": play_items[seleccion - 1].url, "server": play_items[seleccion - 1].server}})
@@ -795,7 +795,7 @@ def save_download_video(item):
write_json(item) write_json(item)
if not platformtools.dialog_yesno(config.get_localized_string(30101), "¿Iniciar la descarga ahora?"): if not platformtools.dialog_yesno(config.get_localized_string(30101), config.get_localized_string(70189)):
platformtools.dialog_ok(config.get_localized_string(30101), item.contentTitle, platformtools.dialog_ok(config.get_localized_string(30101), item.contentTitle,
config.get_localized_string(30109)) config.get_localized_string(30109))
else: else:
@@ -806,7 +806,7 @@ def save_download_movie(item):
logger.info("contentAction: %s | contentChannel: %s | contentTitle: %s" % ( logger.info("contentAction: %s | contentChannel: %s | contentTitle: %s" % (
item.contentAction, item.contentChannel, item.contentTitle)) item.contentAction, item.contentChannel, item.contentTitle))
progreso = platformtools.dialog_progress("Descargas", "Obteniendo datos de la pelicula") progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70191))
set_movie_title(item) set_movie_title(item)
@@ -815,7 +815,7 @@ def save_download_movie(item):
progreso.close() progreso.close()
return save_download_video(item) return save_download_video(item)
progreso.update(0, "Añadiendo pelicula...") progreso.update(0, config.get_localized_string(60062))
item.downloadFilename = filetools.validate_path("%s [%s]" % (item.contentTitle.strip(), item.contentChannel)) item.downloadFilename = filetools.validate_path("%s [%s]" % (item.contentTitle.strip(), item.contentChannel))
@@ -823,7 +823,7 @@ def save_download_movie(item):
progreso.close() progreso.close()
if not platformtools.dialog_yesno(config.get_localized_string(30101), "¿Iniciar la descarga ahora?"): if not platformtools.dialog_yesno(config.get_localized_string(30101), config.get_localized_string(70189)):
platformtools.dialog_ok(config.get_localized_string(30101), item.contentTitle, platformtools.dialog_ok(config.get_localized_string(30101), item.contentTitle,
config.get_localized_string(30109)) config.get_localized_string(30109))
else: else:
@@ -834,17 +834,17 @@ def save_download_tvshow(item):
logger.info("contentAction: %s | contentChannel: %s | contentType: %s | contentSerieName: %s" % ( logger.info("contentAction: %s | contentChannel: %s | contentType: %s | contentSerieName: %s" % (
item.contentAction, item.contentChannel, item.contentType, item.contentSerieName)) item.contentAction, item.contentChannel, item.contentType, item.contentSerieName))
progreso = platformtools.dialog_progress("Descargas", "Obteniendo datos de la serie") progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70188))
scraper.find_and_set_infoLabels(item) scraper.find_and_set_infoLabels(item)
item.downloadFilename = filetools.validate_path("%s [%s]" % (item.contentSerieName, item.contentChannel)) item.downloadFilename = filetools.validate_path("%s [%s]" % (item.contentSerieName, item.contentChannel))
progreso.update(0, "Obteniendo episodios...", "conectando con %s..." % item.contentChannel) progreso.update(0, config.get_localized_string(70186), config.get_localized_string(70187) % item.contentChannel)
episodes = get_episodes(item) episodes = get_episodes(item)
progreso.update(0, "Añadiendo capitulos...", " ") progreso.update(0, config.get_localized_string(70190), " ")
for x, i in enumerate(episodes): for x, i in enumerate(episodes):
progreso.update(x * 100 / len(episodes), progreso.update(x * 100 / len(episodes),
@@ -852,7 +852,7 @@ def save_download_tvshow(item):
write_json(i) write_json(i)
progreso.close() progreso.close()
if not platformtools.dialog_yesno(config.get_localized_string(30101), "¿Iniciar la descarga ahora?"): if not platformtools.dialog_yesno(config.get_localized_string(30101), config.get_localized_string(70189)):
platformtools.dialog_ok(config.get_localized_string(30101), platformtools.dialog_ok(config.get_localized_string(30101),
str(len(episodes)) + " capitulos de: " + item.contentSerieName, str(len(episodes)) + " capitulos de: " + item.contentSerieName,
config.get_localized_string(30109)) config.get_localized_string(30109))
+37 -37
View File
@@ -54,8 +54,8 @@ def start(item, recomendaciones=[], from_window=False):
global SearchWindows global SearchWindows
SearchWindows = list() SearchWindows = list()
dialog = platformtools.dialog_progress("Cargando nuevos datos", dialog = platformtools.dialog_progress(config.get_localized_string(60469),
"Buscandoen Tmdb.......") config.get_localized_string(60470))
principal_window = main(item=item, recomendaciones=recomendaciones, dialog=dialog, from_window=from_window) principal_window = main(item=item, recomendaciones=recomendaciones, dialog=dialog, from_window=from_window)
try: try:
@@ -101,7 +101,7 @@ class main(xbmcgui.WindowDialog):
self.item.infoLabels.pop("episode", None) self.item.infoLabels.pop("episode", None)
if not self.item.infoLabels["year"]: if not self.item.infoLabels["year"]:
self.dialog.close() self.dialog.close()
platformtools.dialog_notification("Sin resultados. Falta información del año del video", "No hay info de la %s solicitada" % tipo) platformtools.dialog_notification(config.get_localized_string(60471), config.get_localized_string(60472) % tipo)
global mainWindow global mainWindow
self.close() self.close()
del mainWindow del mainWindow
@@ -113,7 +113,7 @@ class main(xbmcgui.WindowDialog):
if not self.infoLabels["tmdb_id"]: if not self.infoLabels["tmdb_id"]:
self.dialog.close() self.dialog.close()
platformtools.dialog_notification("Sin resultados", "No hay info de la %s solicitada" % tipo) platformtools.dialog_notification(config.get_localized_string(60473), config.get_localized_string(60474) % tipo)
global mainWindow global mainWindow
self.close() self.close()
del mainWindow del mainWindow
@@ -133,30 +133,30 @@ class main(xbmcgui.WindowDialog):
rating = "[COLOR crimson][B]%s[/B][/COLOR]" % self.infoLabels["rating"] rating = "[COLOR crimson][B]%s[/B][/COLOR]" % self.infoLabels["rating"]
self.dialog.update(40, self.dialog.update(40,
'Registrando filmaffinity.......') config.get_localized_string(60475))
rating_fa, plot_fa = get_filmaf(self.item, self.infoLabels) rating_fa, plot_fa = get_filmaf(self.item, self.infoLabels)
if not self.infoLabels.get("plot") and plot_fa: if not self.infoLabels.get("plot") and plot_fa:
self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % plot_fa self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % plot_fa
elif not self.infoLabels["plot"]: elif not self.infoLabels["plot"]:
self.infoLabels["plot"] = "[COLOR yellow][B]Esta pelicula no tiene informacion...[/B][/COLOR]" self.infoLabels["plot"] = config.get_localized_string(60476)
else: else:
self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % self.infoLabels.get("plot") self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % self.infoLabels.get("plot")
self.dialog.update(60, 'Indagando recomendaciones.......') self.dialog.update(60, config.get_localized_string(60477))
thread1 = Thread(target=get_recomendations, args=[self.item, self.infoLabels, self.recomendaciones]) thread1 = Thread(target=get_recomendations, args=[self.item, self.infoLabels, self.recomendaciones])
thread1.setDaemon(True) thread1.setDaemon(True)
thread1.start() thread1.start()
if self.infoLabels.get("status") == "Ended" and tipo == "serie": if self.infoLabels.get("status") == "Ended" and tipo == "serie":
status = "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]" status = config.get_localized_string(60478)
elif self.infoLabels.get("status") and tipo == "serie": elif self.infoLabels.get("status") and tipo == "serie":
status = "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]" status = config.get_localized_string(60479)
else: else:
status = "[COLOR aquamarine][B]%s[/B][/COLOR]" status = "[COLOR aquamarine][B]%s[/B][/COLOR]"
if self.infoLabels.get("tagline") and tipo == "serie": if self.infoLabels.get("tagline") and tipo == "serie":
self.infoLabels["tagline"] = status % "(" + self.infoLabels["tagline"] + ")" self.infoLabels["tagline"] = status % "(" + self.infoLabels["tagline"] + ")"
elif not self.infoLabels.get("tagline") and tipo == "serie": elif not self.infoLabels.get("tagline") and tipo == "serie":
self.infoLabels["tagline"] = status % "(Temporadas: %s)" % self.infoLabels.get("number_of_seasons", self.infoLabels["tagline"] = status % config.get_localized_string(60480) % self.infoLabels.get("number_of_seasons",
"---") "---")
else: else:
self.infoLabels["tagline"] = status % self.infoLabels.get("tagline", "") self.infoLabels["tagline"] = status % self.infoLabels.get("tagline", "")
@@ -184,7 +184,7 @@ class main(xbmcgui.WindowDialog):
if self.item.contentType != "movie": if self.item.contentType != "movie":
self.dialog.update(60, self.dialog.update(60,
'Recopilando imágenes en FANART.TV') config.get_localized_string(60481))
try: try:
###Busca música serie ###Busca música serie
titulo = re.sub('\[.*?\]', '', titulo) titulo = re.sub('\[.*?\]', '', titulo)
@@ -210,9 +210,9 @@ class main(xbmcgui.WindowDialog):
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
if xbmc.Player().isPlaying(): if xbmc.Player().isPlaying():
self.dialog.update(80, 'Afinado instrumentos en Vtunes') self.dialog.update(80, config.get_localized_string(60482))
else: else:
self.dialog.update(80, 'Recopilando imágenes en FANART.TV') self.dialog.update(80, config.get_localized_string(60483))
while thread2.isAlive(): while thread2.isAlive():
xbmc.sleep(100) xbmc.sleep(100)
@@ -337,7 +337,7 @@ class main(xbmcgui.WindowDialog):
[('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',), [('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',),
('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)]) ('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)])
self.duration.setText( self.duration.setText(
"[COLOR mediumturquoise][B]Duración: %s minutos[/B][/COLOR]" % self.infoLabels["duration"]) config.get_localized_string(70252) % self.infoLabels["duration"])
self.addControl(self.rating) self.addControl(self.rating)
if set_animation: if set_animation:
self.rating.setAnimations( self.rating.setAnimations(
@@ -741,8 +741,8 @@ class main(xbmcgui.WindowDialog):
else: else:
for boton, peli, id, poster2 in self.idps: for boton, peli, id, poster2 in self.idps:
if control == boton: if control == boton:
dialog = platformtools.dialog_progress("Cargando nueva info", dialog = platformtools.dialog_progress(config.get_localized_string(60486),
"Buscando en Tmdb.......") config.get_localized_string(60487))
tipo = self.item.contentType tipo = self.item.contentType
if tipo != "movie": if tipo != "movie":
tipo = "tv" tipo = "tv"
@@ -834,7 +834,7 @@ class related(xbmcgui.WindowDialog):
[('conditional', 'effect=slide delay=6000 start=2000 time=800 condition=true',), [('conditional', 'effect=slide delay=6000 start=2000 time=800 condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)])
self.info = "[COLOR lemonchiffon]%s[/COLOR]" % self.infoLabels.get("plot", "Sin información...") self.info = "[COLOR lemonchiffon]%s[/COLOR]" % self.infoLabels.get("plot", config.get_localized_string(60488))
self.info_peli = xbmcgui.ControlTextBox(455, 120, 750, 234) self.info_peli = xbmcgui.ControlTextBox(455, 120, 750, 234)
self.addControl(self.info_peli) self.addControl(self.info_peli)
@@ -923,7 +923,7 @@ class related(xbmcgui.WindowDialog):
self.paist_peli = xbmcgui.ControlTextBox(210, 435, 400, 60, self.fonts["12"]) self.paist_peli = xbmcgui.ControlTextBox(210, 435, 400, 60, self.fonts["12"])
self.addControl(self.paist_peli) self.addControl(self.paist_peli)
self.paist_peli.setText("[COLOR limegreen][B]País: [/B][/COLOR]") self.paist_peli.setText(config.get_localized_string(60490))
if set_animation: if set_animation:
self.paist_peli.setAnimations( self.paist_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5650 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5650 time=700 condition=true tween=circle easing=in',),
@@ -939,7 +939,7 @@ class related(xbmcgui.WindowDialog):
self.ft_peli = xbmcgui.ControlTextBox(210, 460, 1100, 60, self.fonts["12"]) self.ft_peli = xbmcgui.ControlTextBox(210, 460, 1100, 60, self.fonts["12"])
self.addControl(self.ft_peli) self.addControl(self.ft_peli)
self.ft_peli.setText("[COLOR limegreen][B]Estreno: [/B][/COLOR]") self.ft_peli.setText(config.get_localized_string(60491))
if set_animation: if set_animation:
self.ft_peli.setAnimations( self.ft_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',),
@@ -959,7 +959,7 @@ class related(xbmcgui.WindowDialog):
if self.infoLabels.get("number_of_seasons"): if self.infoLabels.get("number_of_seasons"):
self.seasons_txt = xbmcgui.ControlTextBox(210, 485, 200, 60, self.fonts["12"]) self.seasons_txt = xbmcgui.ControlTextBox(210, 485, 200, 60, self.fonts["12"])
self.addControl(self.seasons_txt) self.addControl(self.seasons_txt)
self.seasons_txt.setText("[COLOR limegreen][B]Temporadas/Episodios: [/B][/COLOR]") self.seasons_txt.setText(config.get_localized_string(60492))
if set_animation: if set_animation:
self.seasons_txt.setAnimations([('conditional', self.seasons_txt.setAnimations([('conditional',
'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',), 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',),
@@ -1234,9 +1234,9 @@ class Busqueda(xbmcgui.WindowXMLDialog):
except: except:
pass pass
if self.item.contentType != "movie": if self.item.contentType != "movie":
self.getControl(1).setLabel("[COLOR orange][B]¿Está la serie que buscas?[/B][/COLOR]") self.getControl(1).setLabel(config.get_localized_string(60493))
else: else:
self.getControl(1).setLabel("[COLOR orange][B]¿Está la película que buscas?[/B][/COLOR]") self.getControl(1).setLabel(config.get_localized_string(60494))
self.getControl(5).setLabel("[COLOR tomato][B]Cerrar[/B][/COLOR]") self.getControl(5).setLabel("[COLOR tomato][B]Cerrar[/B][/COLOR]")
self.control_list.reset() self.control_list.reset()
@@ -1256,7 +1256,7 @@ class Busqueda(xbmcgui.WindowXMLDialog):
def onAction(self, action): def onAction(self, action):
global BusquedaWindow global BusquedaWindow
if (action == ACTION_SELECT_ITEM or action == 100) and self.getFocusId() == 6: if (action == ACTION_SELECT_ITEM or action == 100) and self.getFocusId() == 6:
dialog = platformtools.dialog_progress_bg("Cargando resultados", "Espere........") dialog = platformtools.dialog_progress_bg(config.get_localized_string(60496), config.get_localized_string(60497))
selectitem = self.getControl(6).getSelectedItem() selectitem = self.getControl(6).getSelectedItem()
item = Item().fromurl(selectitem.getProperty("item_copy")) item = Item().fromurl(selectitem.getProperty("item_copy"))
exec "import channels." + item.channel + " as channel" exec "import channels." + item.channel + " as channel"
@@ -1289,8 +1289,8 @@ class GlobalSearch(xbmcgui.WindowXMLDialog):
except: except:
pass pass
self.getControl(1).setLabel("[COLOR orange][B]Selecciona...[/B][/COLOR]") self.getControl(1).setLabel(config.get_localized_string(60498))
self.getControl(5).setLabel("[COLOR tomato][B]Cerrar[/B][/COLOR]") self.getControl(5).setLabel(config.get_localized_string(60495))
self.control_list.reset() self.control_list.reset()
if not self.lista: if not self.lista:
global SearchWindows global SearchWindows
@@ -1327,7 +1327,7 @@ class GlobalSearch(xbmcgui.WindowXMLDialog):
item = itemlist[0] item = itemlist[0]
else: else:
ventana_error = xbmcgui.Dialog() ventana_error = xbmcgui.Dialog()
ok = ventana_error.ok("plugin", "No hay nada para reproducir") ok = ventana_error.ok("plugin", config.get_localized_string(60500))
return return
global BusquedaWindow, exit_loop, mainWindow, ActorInfoWindow, relatedWindow, ActoresWindow global BusquedaWindow, exit_loop, mainWindow, ActorInfoWindow, relatedWindow, ActoresWindow
@@ -1375,7 +1375,7 @@ class GlobalSearch(xbmcgui.WindowXMLDialog):
else: else:
try: try:
dialog = platformtools.dialog_progress_bg("Cargando resultados", "Espere........") dialog = platformtools.dialog_progress_bg(config.get_localized_string(60496), config.get_localized_string(60497))
itemlist = getattr(channel, item.action)(item) itemlist = getattr(channel, item.action)(item)
window = GlobalSearch('DialogSelect.xml', config.get_runtime_path(), itemlist=itemlist, window = GlobalSearch('DialogSelect.xml', config.get_runtime_path(), itemlist=itemlist,
dialog=dialog) dialog=dialog)
@@ -1416,8 +1416,8 @@ class Actores(xbmcgui.WindowXMLDialog):
self.getControl(3).setVisible(0) self.getControl(3).setVisible(0)
except: except:
pass pass
self.getControl(1).setLabel("[COLOR orange][B]Reparto[/B][/COLOR]") self.getControl(1).setLabel(config.get_localized_string(60501))
self.getControl(5).setLabel("[COLOR red][B]Cerrar[/B][/COLOR]") self.getControl(5).setLabel(config.get_localized_string(60495))
self.control_list.reset() self.control_list.reset()
items = [] items = []
@@ -1470,8 +1470,8 @@ class Actores(xbmcgui.WindowXMLDialog):
name_info = selectitem.getProperty("name_info") name_info = selectitem.getProperty("name_info")
thumbnail = selectitem.getProperty("thumbnail") thumbnail = selectitem.getProperty("thumbnail")
job = selectitem.getProperty("job") job = selectitem.getProperty("job")
dialog = platformtools.dialog_progress("Cargando nuevos datos", dialog = platformtools.dialog_progress(config.get_localized_string(60502),
"Obteniendo datos del %s..." % job.lower()) config.get_localized_string(60503) % job.lower())
global ActorInfoWindow global ActorInfoWindow
ActorInfoWindow = ActorInfo(id=id_actor, name=name_info, thumbnail=thumbnail, item=self.item, ActorInfoWindow = ActorInfo(id=id_actor, name=name_info, thumbnail=thumbnail, item=self.item,
@@ -1542,7 +1542,7 @@ class ActorInfo(xbmcgui.WindowDialog):
bio = dhe(scrapertools.htmlclean(info.strip())) bio = dhe(scrapertools.htmlclean(info.strip()))
actor_tmdb.result["biography"] = bio actor_tmdb.result["biography"] = bio
else: else:
actor_tmdb.result["biography"] = "Sin información" actor_tmdb.result["biography"] = config.get_localized_string(60504)
elif not actor_tmdb.result.get("biography"): elif not actor_tmdb.result.get("biography"):
actor_tmdb.result["biography"] = "Sin información" actor_tmdb.result["biography"] = "Sin información"
@@ -1579,7 +1579,7 @@ class ActorInfo(xbmcgui.WindowDialog):
xbmc.executebuiltin( xbmc.executebuiltin(
'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")') 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")')
self.info_actor.setText( self.info_actor.setText(
"[COLOR coral][B]%s[/B][/COLOR]" % actor_tmdb.result.get("biography", "Sin información")) "[COLOR coral][B]%s[/B][/COLOR]" % actor_tmdb.result.get("biography", config.get_localized_string(60504)))
self.titulos = [] self.titulos = []
tipo_busqueda = "cast" tipo_busqueda = "cast"
@@ -1914,8 +1914,8 @@ class ActorInfo(xbmcgui.WindowDialog):
for boton, peli, id, poster2 in self.idps: for boton, peli, id, poster2 in self.idps:
if control == boton: if control == boton:
dialog = platformtools.dialog_progress("Cargando nueva info", dialog = platformtools.dialog_progress(config.get_localized_string(60486),
"Buscando en Tmdb.......") config.get_localized_string(60487))
tipo = self.item.contentType tipo = self.item.contentType
if tipo != "movie": if tipo != "movie":
tipo = "tv" tipo = "tv"
@@ -2177,8 +2177,8 @@ class Trailer(xbmcgui.WindowXMLDialog):
def onInit(self): def onInit(self):
self.setCoordinateResolution(0) self.setCoordinateResolution(0)
if not self.video_url: if not self.video_url:
platformtools.dialog_notification("[COLOR crimson][B]Error[/B][/COLOR]", platformtools.dialog_notification(config.get_localized_string(60507),
"[COLOR tomato]Vídeo no disponible[/COLOR]", 2) config.get_localized_string(60508), 2)
self.close() self.close()
elif self.video_url == "no_video": elif self.video_url == "no_video":
self.close() self.close()
+10 -10
View File
@@ -11,7 +11,7 @@
{ {
"id": "multithread", "id": "multithread",
"type": "bool", "type": "bool",
"label": "Buscar de manera concurrente (multiprocesos)", "label": "@60656",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
@@ -19,14 +19,14 @@
{ {
"id": "result_mode", "id": "result_mode",
"type": "list", "type": "list",
"label": "Mostrar resultados:", "label": "@60657",
"default": 2, "default": 2,
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Agrupados por contenido", "@60658",
"Agrupados por canales", "@60659",
"Sin Agrupar" "@60660"
] ]
}, },
{ {
@@ -37,11 +37,11 @@
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Frio", "@60667",
"Calido", "@60668",
"Lila", "@60669",
"Pastel", "@60670",
"Vivos" "@60671"
] ]
} }
] ]
+36 -36
View File
@@ -48,69 +48,69 @@ def mainlist(item):
#if list_canales['peliculas']: #if list_canales['peliculas']:
thumbnail = get_thumb("channels_movie.png") thumbnail = get_thumb("channels_movie.png")
new_item = Item(channel=item.channel, action="novedades", extra="peliculas", title="Películas", new_item = Item(channel=item.channel, action="novedades", extra="peliculas", title=config.get_localized_string(30122),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
thumbnail = get_thumb("channels_movie_4k.png") thumbnail = get_thumb("channels_movie_4k.png")
new_item = Item(channel=item.channel, action="novedades", extra="4k", title="Películas 4K", thumbnail=thumbnail) new_item = Item(channel=item.channel, action="novedades", extra="4k", title=config.get_localized_string(70208), thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
#if list_canales['terror']: #if list_canales['terror']:
thumbnail = get_thumb("channels_horror.png") thumbnail = get_thumb("channels_horror.png")
new_item = Item(channel=item.channel, action="novedades", extra="terror", title="Peliculas de miedo!", new_item = Item(channel=item.channel, action="novedades", extra="terror", title=config.get_localized_string(70209),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
#if list_canales['infantiles']: #if list_canales['infantiles']:
thumbnail = get_thumb("channels_children.png") thumbnail = get_thumb("channels_children.png")
new_item = Item(channel=item.channel, action="novedades", extra="infantiles", title="Para niños", new_item = Item(channel=item.channel, action="novedades", extra="infantiles", title=config.get_localized_string(60510),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
#if list_canales['series']: #if list_canales['series']:
thumbnail = get_thumb("channels_tvshow.png") thumbnail = get_thumb("channels_tvshow.png")
new_item = Item(channel=item.channel, action="novedades", extra="series", title="Episodios de series", new_item = Item(channel=item.channel, action="novedades", extra="series", title=config.get_localized_string(60511),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
#if list_canales['anime']: #if list_canales['anime']:
thumbnail = get_thumb("channels_anime.png") thumbnail = get_thumb("channels_anime.png")
new_item = Item(channel=item.channel, action="novedades", extra="anime", title="Episodios de anime", new_item = Item(channel=item.channel, action="novedades", extra="anime", title=config.get_localized_string(60512),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
# if list_canales['Castellano']: # if list_canales['Castellano']:
thumbnail = get_thumb("channels_spanish.png") thumbnail = get_thumb("channels_spanish.png")
new_item = Item(channel=item.channel, action="novedades", extra="castellano", title="Castellano", new_item = Item(channel=item.channel, action="novedades", extra="castellano", title=config.get_localized_string(70014),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
# if list_canales['Latino']: # if list_canales['Latino']:
thumbnail = get_thumb("channels_latino.png") thumbnail = get_thumb("channels_latino.png")
new_item = Item(channel=item.channel, action="novedades", extra="latino", title="Latino", new_item = Item(channel=item.channel, action="novedades", extra="latino", title=config.get_localized_string(59976),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
# if list_canales['Torrent']: # if list_canales['Torrent']:
thumbnail = get_thumb("channels_torrent.png") thumbnail = get_thumb("channels_torrent.png")
new_item = Item(channel=item.channel, action="novedades", extra="torrent", title="Torrent", thumbnail=thumbnail) new_item = Item(channel=item.channel, action="novedades", extra="torrent", title=config.get_localized_string(70171), thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
#if list_canales['documentales']: #if list_canales['documentales']:
thumbnail = get_thumb("channels_documentary.png") thumbnail = get_thumb("channels_documentary.png")
new_item = Item(channel=item.channel, action="novedades", extra="documentales", title="Documentales", new_item = Item(channel=item.channel, action="novedades", extra="documentales", title=config.get_localized_string(60513),
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
@@ -119,11 +119,11 @@ def mainlist(item):
def set_category_context(item): def set_category_context(item):
item.context = [{"title": "Canales incluidos en: %s" % item.title, item.context = [{"title": config.get_localized_string(60514) % item.title,
"extra": item.extra, "extra": item.extra,
"action": "setting_channel", "action": "setting_channel",
"channel": item.channel}] "channel": item.channel}]
item.category = "Novedades en %s" % item.extra item.category = config.get_localized_string(60679) % item.extra
def get_channels_list(): def get_channels_list():
@@ -233,15 +233,15 @@ def novedades(item):
logger.info("multithread= " + str(multithread)) logger.info("multithread= " + str(multithread))
if not multithread: if not multithread:
if platformtools.dialog_yesno("Búsqueda concurrente desactivada", if platformtools.dialog_yesno(config.get_localized_string(60515),
"La búsqueda concurrente de novedades proporciona", config.get_localized_string(60516),
"una mayor velocidad y su desactivación solo es aconsejable en caso de fallo.", config.get_localized_string(60517),
"¿Desea activar la búsqueda concurrente ahora?"): config.get_localized_string(60518)):
if config.set_setting("multithread", True, "news"): if config.set_setting("multithread", True, "news"):
multithread = True multithread = True
if mode == 'normal': if mode == 'normal':
progreso = platformtools.dialog_progress(item.category, "Buscando canales...") progreso = platformtools.dialog_progress(item.category, config.get_localized_string(60519))
list_canales, any_active = get_channels_list() list_canales, any_active = get_channels_list()
@@ -278,13 +278,13 @@ def novedades(item):
t.start() t.start()
threads.append(t) threads.append(t)
if mode == 'normal': if mode == 'normal':
progreso.update(percentage, "", "Buscando en '%s'..." % channel_title) progreso.update(percentage, "", config.get_localized_string(60520) % channel_title)
# Modo single Thread # Modo single Thread
else: else:
if mode == 'normal': if mode == 'normal':
logger.info("Obteniendo novedades de channel_id=" + channel_id) logger.info("Obteniendo novedades de channel_id=" + channel_id)
progreso.update(percentage, "", "Buscando en '%s'..." % channel_title) progreso.update(percentage, "", config.get_localized_string(60520) % channel_title)
get_newest(channel_id, item.extra) get_newest(channel_id, item.extra)
# Modo Multi Thread: esperar q todos los hilos terminen # Modo Multi Thread: esperar q todos los hilos terminen
@@ -297,8 +297,8 @@ def novedades(item):
list_pendent_names = [a.getName() for a in pendent] list_pendent_names = [a.getName() for a in pendent]
if mode == 'normal': if mode == 'normal':
mensaje = "Buscando en %s" % (", ".join(list_pendent_names)) mensaje = config.get_localized_string(30994) % (", ".join(list_pendent_names))
progreso.update(percentage, "Finalizado en %d/%d canales..." % (len(threads) - len(pendent), len(threads)), progreso.update(percentage, config.get_localized_string(60521) % (len(threads) - len(pendent), len(threads)),
mensaje) mensaje)
logger.debug(mensaje) logger.debug(mensaje)
@@ -309,7 +309,7 @@ def novedades(item):
time.sleep(0.5) time.sleep(0.5)
pendent = [a for a in threads if a.isAlive()] pendent = [a for a in threads if a.isAlive()]
if mode == 'normal': if mode == 'normal':
mensaje = "Resultados obtenidos: %s | Tiempo: %2.f segundos" % (len(list_newest), time.time() - start_time) mensaje = config.get_localized_string(60522) % (len(list_newest), time.time() - start_time)
progreso.update(100, mensaje, " ", " ") progreso.update(100, mensaje, " ", " ")
logger.info(mensaje) logger.info(mensaje)
start_time = time.time() start_time = time.time()
@@ -494,9 +494,9 @@ def group_by_content(list_result_canal):
if len(canales_no_duplicados) > 1: if len(canales_no_duplicados) > 1:
canales = ', '.join([i for i in canales_no_duplicados[:-1]]) canales = ', '.join([i for i in canales_no_duplicados[:-1]])
title += " (En %s y %s)" % (canales, canales_no_duplicados[-1]) title += config.get_localized_string(70210) % (canales, canales_no_duplicados[-1])
else: else:
title += " (En %s)" % (', '.join([i for i in canales_no_duplicados])) title += config.get_localized_string(70211) % (', '.join([i for i in canales_no_duplicados]))
new_item = v[0].clone(channel="news", title=title, action="show_channels", new_item = v[0].clone(channel="news", title=title, action="show_channels",
sub_list=[i.tourl() for i in v], extra=channels_id_name) sub_list=[i.tourl() for i in v], extra=channels_id_name)
@@ -533,47 +533,47 @@ def show_channels(item):
def menu_opciones(item): def menu_opciones(item):
itemlist = list() itemlist = list()
itemlist.append(Item(channel=item.channel, title="Canales incluidos en:", itemlist.append(Item(channel=item.channel, title=config.get_localized_string(60525),
thumbnail=get_thumb("setting_0.png"), thumbnail=get_thumb("setting_0.png"),
folder=False)) folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="peliculas", title=" - Películas ", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="peliculas", title=config.get_localized_string(60526),
thumbnail=get_thumb("channels_movie.png"), thumbnail=get_thumb("channels_movie.png"),
folder=False)) folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="4K", title=" - Películas 4K ", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="4K", title=config.get_localized_string(70207),
thumbnail=get_thumb("channels_movie.png"), folder=False)) thumbnail=get_thumb("channels_movie.png"), folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="infantiles", title=" - Para niños", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="infantiles", title=config.get_localized_string(60527),
thumbnail=get_thumb("channels_children.png"), thumbnail=get_thumb("channels_children.png"),
folder=False)) folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="series", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="series",
title=" - Episodios de series", title=config.get_localized_string(60528),
thumbnail=get_thumb("channels_tvshow.png"), thumbnail=get_thumb("channels_tvshow.png"),
folder=False)) folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="anime", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="anime",
title=" - Episodios de anime", title=config.get_localized_string(60529),
thumbnail=get_thumb("channels_anime.png"), thumbnail=get_thumb("channels_anime.png"),
folder=False)) folder=False))
itemlist.append( itemlist.append(
Item(channel=item.channel, action="setting_channel", extra="castellano", title=" - Castellano", Item(channel=item.channel, action="setting_channel", extra="castellano", title=config.get_localized_string(70212),
thumbnail=get_thumb("channels_documentary.png"), folder=False)) thumbnail=get_thumb("channels_documentary.png"), folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="latino", title=" - Latino", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="latino", title=config.get_localized_string(70213),
thumbnail=get_thumb("channels_documentary.png"), folder=False)) thumbnail=get_thumb("channels_documentary.png"), folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="Torrent", title=" - Torrent", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="Torrent", title=config.get_localized_string(70214),
thumbnail=get_thumb("channels_documentary.png"), folder=False)) thumbnail=get_thumb("channels_documentary.png"), folder=False))
itemlist.append(Item(channel=item.channel, action="setting_channel", extra="documentales", itemlist.append(Item(channel=item.channel, action="setting_channel", extra="documentales",
title=" - Documentales", title=config.get_localized_string(60530),
thumbnail=get_thumb("channels_documentary.png"), thumbnail=get_thumb("channels_documentary.png"),
folder=False)) folder=False))
itemlist.append(Item(channel=item.channel, action="settings", title="Otros ajustes", itemlist.append(Item(channel=item.channel, action="settings", title=config.get_localized_string(60531),
thumbnail=get_thumb("setting_0.png"), thumbnail=get_thumb("setting_0.png"),
folder=False)) folder=False))
return itemlist return itemlist
def settings(item): def settings(item):
return platformtools.show_channel_settings(caption="configuración -- Novedades") return platformtools.show_channel_settings(caption=config.get_localized_string(60532))
def setting_channel(item): def setting_channel(item):
+10 -8
View File
@@ -1,9 +1,11 @@
{ {
"id": "search", "id": "search",
"name": "Buscador global", "name": "@60672",
"active": false, "active": false,
"adult": false, "adult": false,
"language": ["*"], "language": [
"it"
],
"categories": [ "categories": [
"movie" "movie"
], ],
@@ -11,7 +13,7 @@
{ {
"id": "multithread", "id": "multithread",
"type": "bool", "type": "bool",
"label": "Buscador MultiThread", "label": "@60673",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
@@ -19,19 +21,19 @@
{ {
"id": "result_mode", "id": "result_mode",
"type": "list", "type": "list",
"label": "Mostrar resultados:", "label": "@60674",
"default": 0, "default": 0,
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Por canales", "@60675",
"Todo junto" "@60676"
] ]
}, },
{ {
"id": "saved_searches_limit", "id": "saved_searches_limit",
"type": "list", "type": "list",
"label": "Busquedas guardadas:", "label": "@60677",
"default": 0, "default": 0,
"enabled": true, "enabled": true,
"visible": true, "visible": true,
@@ -45,7 +47,7 @@
{ {
"id": "last_search", "id": "last_search",
"type": "bool", "type": "bool",
"label": "Recordar última búsqueda", "label": "@60678",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
+28 -28
View File
@@ -18,39 +18,39 @@ def mainlist(item):
item.channel = "search" item.channel = "search"
itemlist = list() itemlist = list()
context = [{"title": "Elegir canales incluidos", context = [{"title": config.get_localized_string(70273),
"action": "setting_channel", "action": "setting_channel",
"channel": item.channel}] "channel": item.channel}]
itemlist.append(Item(channel=item.channel, action="search", itemlist.append(Item(channel=item.channel, action="search",
title="Buscar por titulo", context=context, title=config.get_localized_string(70276), context=context,
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
thumbnail = get_thumb("search_star.png") thumbnail = get_thumb("search_star.png")
itemlist.append(Item(channel='tvmoviedb', title="Buscar actor/actriz", action="search_", itemlist.append(Item(channel='tvmoviedb', title=config.get_localized_string(59999), action="search_",
search={'url': 'search/person', 'language': 'es', 'page': 1}, star=True, search={'url': 'search/person', 'language': 'es', 'page': 1}, star=True,
thumbnail=thumbnail)) thumbnail=thumbnail))
itemlist.append(Item(channel=item.channel, action="search", itemlist.append(Item(channel=item.channel, action="search",
title="Buscar por categorias (búsqueda avanzada)", extra="categorias", title=config.get_localized_string(59998), extra="categorias",
context=context, context=context,
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
itemlist.append(Item(channel=item.channel, action="opciones", title="Opciones", itemlist.append(Item(channel=item.channel, action="opciones", title=config.get_localized_string(59997),
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
itemlist.append(Item(channel="tvmoviedb", action="mainlist", title="Búsqueda alternativa", itemlist.append(Item(channel="tvmoviedb", action="mainlist", title=config.get_localized_string(70274),
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
saved_searches_list = get_saved_searches() saved_searches_list = get_saved_searches()
context2 = context[:] context2 = context[:]
context2.append({"title": "Borrar búsquedas guardadas", context2.append({"title": config.get_localized_string(59996),
"action": "clear_saved_searches", "action": "clear_saved_searches",
"channel": item.channel}) "channel": item.channel})
logger.info("saved_searches_list=%s" % saved_searches_list) logger.info("saved_searches_list=%s" % saved_searches_list)
if saved_searches_list: if saved_searches_list:
itemlist.append(Item(channel=item.channel, action="", itemlist.append(Item(channel=item.channel, action="",
title="Búsquedas guardadas:", context=context2, title=config.get_localized_string(59995), context=context2,
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
for saved_search_text in saved_searches_list: for saved_search_text in saved_searches_list:
itemlist.append(Item(channel=item.channel, action="do_search", itemlist.append(Item(channel=item.channel, action="do_search",
@@ -65,17 +65,17 @@ def mainlist(item):
def opciones(item): def opciones(item):
itemlist = list() itemlist = list()
itemlist.append(Item(channel=item.channel, action="setting_channel", itemlist.append(Item(channel=item.channel, action="setting_channel",
title="Elegir canales incluidos en la búsqueda", folder=False, title=config.get_localized_string(59994), folder=False,
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
itemlist.append(Item(channel=item.channel, action="clear_saved_searches", title="Borrar búsquedas guardadas", itemlist.append(Item(channel=item.channel, action="clear_saved_searches", title=config.get_localized_string(59996),
folder=False, thumbnail=get_thumb("search.png"))) folder=False, thumbnail=get_thumb("search.png")))
itemlist.append(Item(channel=item.channel, action="settings", title="Otros ajustes", folder=False, itemlist.append(Item(channel=item.channel, action="settings", title=config.get_localized_string(60531), folder=False,
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
return itemlist return itemlist
def settings(item): def settings(item):
return platformtools.show_channel_settings(caption="configuración -- Buscador") return platformtools.show_channel_settings(caption=config.get_localized_string(59993))
def setting_channel(item): def setting_channel(item):
@@ -119,12 +119,12 @@ def setting_channel(item):
list_controls.append(control) list_controls.append(control)
if config.get_setting("custom_button_value", item.channel): if config.get_setting("custom_button_value", item.channel):
custom_button_label = "Ninguno" custom_button_label = config.get_localized_string(59992)
else: else:
custom_button_label = "Todos" custom_button_label = config.get_localized_string(59991)
return platformtools.show_channel_settings(list_controls=list_controls, return platformtools.show_channel_settings(list_controls=list_controls,
caption="Canales incluidos en la búsqueda", caption=config.get_localized_string(59990),
callback="save_settings", item=item, callback="save_settings", item=item,
custom_button={'visible': True, custom_button={'visible': True,
'function': "cb_custom_button", 'function': "cb_custom_button",
@@ -133,10 +133,10 @@ def setting_channel(item):
def save_settings(item, dict_values): def save_settings(item, dict_values):
progreso = platformtools.dialog_progress("Guardando configuración...", "Espere un momento por favor.") progreso = platformtools.dialog_progress(config.get_localized_string(59988), config.get_localized_string(59989))
n = len(dict_values) n = len(dict_values)
for i, v in enumerate(dict_values): for i, v in enumerate(dict_values):
progreso.update((i * 100) / n, "Guardando configuración...") progreso.update((i * 100) / n, config.get_localized_string(59988))
config.set_setting("include_in_global_search", dict_values[v], v) config.set_setting("include_in_global_search", dict_values[v], v)
progreso.close() progreso.close()
@@ -151,9 +151,9 @@ def cb_custom_button(item, dict_values):
dict_values[v] = not value dict_values[v] = not value
if config.set_setting("custom_button_value", not value, item.channel) == True: if config.set_setting("custom_button_value", not value, item.channel) == True:
return {"label": "Ninguno"} return {"label": config.get_localized_string(59992)}
else: else:
return {"label": "Todos"} return {"label": config.get_localized_string(59991)}
def searchbycat(item): def searchbycat(item):
@@ -181,13 +181,13 @@ def searchbycat(item):
list_controls.append(control) list_controls.append(control)
control = {'id': "torrent", control = {'id': "torrent",
'type': "bool", 'type': "bool",
'label': 'Incluir en la búsqueda canales Torrent', 'label': config.get_localized_string(70275),
'default': True, 'default': True,
'enabled': True, 'enabled': True,
'visible': True} 'visible': True}
list_controls.append(control) list_controls.append(control)
return platformtools.show_channel_settings(list_controls=list_controls, caption="Elegir categorías", return platformtools.show_channel_settings(list_controls=list_controls, caption=config.get_localized_string(59974),
callback="search_cb", item=item) callback="search_cb", item=item)
@@ -229,7 +229,7 @@ def show_result(item):
tecleado = None tecleado = None
if item.adult and config.get_setting("adult_request_password"): if item.adult and config.get_setting("adult_request_password"):
# Solicitar contraseña # Solicitar contraseña
tecleado = platformtools.dialog_input("", "Contraseña para canales de adultos", True) tecleado = platformtools.dialog_input("", config.get_localized_string(60334), True)
if tecleado is None or tecleado != config.get_setting("adult_password"): if tecleado is None or tecleado != config.get_setting("adult_password"):
return [] return []
@@ -288,7 +288,7 @@ def do_search(item, categories=None):
if item.contextual==True: if item.contextual==True:
categories = ["Películas"] categories = ["Películas"]
setting_item = Item(channel=item.channel, title="Elegir canales incluidos en la búsqueda", folder=False, setting_item = Item(channel=item.channel, title=config.get_localized_string(59994), folder=False,
thumbnail=get_thumb("search.png")) thumbnail=get_thumb("search.png"))
setting_channel(setting_item) setting_channel(setting_item)
@@ -315,7 +315,7 @@ def do_search(item, categories=None):
# Para Kodi es necesario esperar antes de cargar el progreso, de lo contrario # Para Kodi es necesario esperar antes de cargar el progreso, de lo contrario
# el cuadro de progreso queda "detras" del cuadro "cargando..." y no se le puede dar a cancelar # el cuadro de progreso queda "detras" del cuadro "cargando..." y no se le puede dar a cancelar
time.sleep(0.5) time.sleep(0.5)
progreso = platformtools.dialog_progress("Buscando '%s'..." % tecleado, "") progreso = platformtools.dialog_progress(config.get_localized_string(30993) % tecleado, "")
channel_files = sorted(glob.glob(channels_path), key=lambda x: os.path.basename(x)) channel_files = sorted(glob.glob(channels_path), key=lambda x: os.path.basename(x))
import math import math
@@ -396,7 +396,7 @@ def do_search(item, categories=None):
logger.info("%s incluido en la búsqueda" % basename_without_extension) logger.info("%s incluido en la búsqueda" % basename_without_extension)
progreso.update(percentage, progreso.update(percentage,
"Buscando en %s..." % channel_parameters["title"]) config.get_localized_string(60520) % channel_parameters["title"])
except: except:
logger.error("No se puede buscar en: %s" % channel_parameters["title"]) logger.error("No se puede buscar en: %s" % channel_parameters["title"])
@@ -417,7 +417,7 @@ def do_search(item, categories=None):
list_pendent_names = [a.getName() for a in pendent] list_pendent_names = [a.getName() for a in pendent]
mensaje = "Buscando en %s" % (", ".join(list_pendent_names)) mensaje = "Buscando en %s" % (", ".join(list_pendent_names))
progreso.update(percentage, "Finalizado en %d/%d canales..." % (len(threads) - len(pendent), len(threads)), progreso.update(percentage, config.get_localized_string(60521) % (len(threads) - len(pendent), len(threads)),
mensaje) mensaje)
logger.debug(mensaje) logger.debug(mensaje)
@@ -460,7 +460,7 @@ def do_search(item, categories=None):
itemlist.append(i.clone(title=title, from_action=i.action, from_channel=i.channel, itemlist.append(i.clone(title=title, from_action=i.action, from_channel=i.channel,
channel="search", action="show_result", adult=element["adult"])) channel="search", action="show_result", adult=element["adult"]))
title = "Buscando: '%s' | Encontrado: %d vídeos | Tiempo: %2.f segundos" % ( title = config.get_localized_string(59972) % (
tecleado, total, time.time() - start_time) tecleado, total, time.time() - start_time)
itemlist.insert(0, Item(title=title, text_color='yellow')) itemlist.insert(0, Item(title=title, text_color='yellow'))
@@ -506,7 +506,7 @@ def save_search(text):
def clear_saved_searches(item): def clear_saved_searches(item):
config.set_setting("saved_searches_list", list(), "search") config.set_setting("saved_searches_list", list(), "search")
platformtools.dialog_ok("Buscador", "Búsquedas borradas correctamente") platformtools.dialog_ok(config.get_localized_string(60329), config.get_localized_string(60424))
def get_saved_searches(): def get_saved_searches():
+62 -82
View File
@@ -17,34 +17,34 @@ def mainlist(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
itemlist.append(Item(channel=CHANNELNAME, title="Preferencias", action="settings", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60535), action="settings", folder=False,
thumbnail=get_thumb("setting_0.png"))) thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="", action="", folder=False, thumbnail=get_thumb("setting_0.png"))) itemlist.append(Item(channel=CHANNELNAME, title="", action="", folder=False, thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Ajustes especiales", action="", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60536), action="", folder=False,
thumbnail=get_thumb("setting_0.png"))) thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title=" Ajustes de Canales", action="menu_channels", folder=True, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60537), action="menu_channels", folder=True,
thumbnail=get_thumb("channels.png"))) thumbnail=get_thumb("channels.png")))
itemlist.append(Item(channel=CHANNELNAME, title=" Ajustes de Servidores", action="menu_servers", folder=True, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60538), action="menu_servers", folder=True,
thumbnail=get_thumb("channels.png"))) thumbnail=get_thumb("channels.png")))
itemlist.append(Item(channel="news", title=" Ajustes de la sección 'Novedades'", action="menu_opciones", itemlist.append(Item(channel="news", title=config.get_localized_string(60539), action="menu_opciones",
folder=True, thumbnail=get_thumb("news.png"))) folder=True, thumbnail=get_thumb("news.png")))
itemlist.append(Item(channel="search", title=" Ajustes del buscador global", action="opciones", folder=True, itemlist.append(Item(channel="search", title=config.get_localized_string(60540), action="opciones", folder=True,
thumbnail=get_thumb("search.png"))) thumbnail=get_thumb("search.png")))
itemlist.append(Item(channel=CHANNELNAME, title=" Ajustes de descargas", action="channel_config", #itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60541), action="channel_config",
config="downloads", folder=True, thumbnail=get_thumb("downloads.png"))) # config="downloads", folder=True, thumbnail=get_thumb("downloads.png")))
if config.get_videolibrary_support(): if config.get_videolibrary_support():
itemlist.append(Item(channel="videolibrary", title=" Ajustes de la videoteca", action="channel_config", itemlist.append(Item(channel="videolibrary", title=config.get_localized_string(60542), action="channel_config",
folder=True, thumbnail=get_thumb("videolibrary.png"))) folder=True, thumbnail=get_thumb("videolibrary.png")))
if config.is_xbmc(): if config.is_xbmc():
itemlist.append(Item(channel=CHANNELNAME, title=" Ajustes de cliente Torrent", action="setting_torrent", itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(70253), action="setting_torrent",
folder=True, thumbnail=get_thumb("channels_torrent.png"))) folder=True, thumbnail=get_thumb("channels_torrent.png")))
itemlist.append(Item(channel=CHANNELNAME, action="", title="", folder=False, thumbnail=get_thumb("setting_0.png"))) itemlist.append(Item(channel=CHANNELNAME, action="", title="", folder=False, thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Otras herramientas", action="submenu_tools", folder=True, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60544), action="submenu_tools", folder=True,
thumbnail=get_thumb("setting_0.png"))) thumbnail=get_thumb("setting_0.png")))
return itemlist return itemlist
@@ -54,10 +54,10 @@ def menu_channels(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
itemlist.append(Item(channel=CHANNELNAME, title="Activar/desactivar canales", action="conf_tools", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60545), action="conf_tools", folder=False,
extra="channels_onoff", thumbnail=get_thumb("setting_0.png"))) extra="channels_onoff", thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Ajustes por canales", action="", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60546), action="", folder=False,
thumbnail=get_thumb("setting_0.png"))) thumbnail=get_thumb("setting_0.png")))
# Inicio - Canales configurables # Inicio - Canales configurables
@@ -70,16 +70,16 @@ def menu_channels(item):
channel_parameters = channeltools.get_channel_parameters(channel.channel) channel_parameters = channeltools.get_channel_parameters(channel.channel)
if channel_parameters["has_settings"]: if channel_parameters["has_settings"]:
itemlist.append(Item(channel=CHANNELNAME, title=" Configuración del canal '%s'" % channel.title, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60547) % channel.title,
action="channel_config", config=channel.channel, folder=False, action="channel_config", config=channel.channel, folder=False,
thumbnail=channel.thumbnail)) thumbnail=channel.thumbnail))
# Fin - Canales configurables # Fin - Canales configurables
itemlist.append(Item(channel=CHANNELNAME, action="", title="", folder=False, thumbnail=get_thumb("setting_0.png"))) itemlist.append(Item(channel=CHANNELNAME, action="", title="", folder=False, thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Herramientas de canales", action="", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60548), action="", folder=False,
thumbnail=get_thumb("channels.png"))) thumbnail=get_thumb("channels.png")))
itemlist.append(Item(channel=CHANNELNAME, title=" Comprobar archivos *_data.json", action="conf_tools", itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60549), action="conf_tools",
folder=True, extra="lib_check_datajson", thumbnail=get_thumb("channels.png"))) folder=True, extra="lib_check_datajson", thumbnail=get_thumb("channels.png")))
return itemlist return itemlist
@@ -95,14 +95,14 @@ def setting_torrent(item):
default = config.get_setting("torrent_client", server="torrent", default=0) default = config.get_setting("torrent_client", server="torrent", default=0)
torrent_options = ["Preguntar", "Cliente interno", "Cliente interno - MCT"] torrent_options = [config.get_localized_string(30006), config.get_localized_string(70254), config.get_localized_string(70255)]
torrent_options.extend(platformtools.torrent_client_installed()) torrent_options.extend(platformtools.torrent_client_installed())
list_controls = [ list_controls = [
{ {
"id": "list_torrent", "id": "list_torrent",
"type": "list", "type": "list",
"label": "¿Qué cliente quiere usar para reproducir torrent?", "label": config.get_localized_string(70256),
"default": default, "default": default,
"enabled": True, "enabled": True,
"visible": True, "visible": True,
@@ -111,25 +111,24 @@ def setting_torrent(item):
] ]
platformtools.show_channel_settings(list_controls=list_controls, callback='save_setting_torrent', item=item, platformtools.show_channel_settings(list_controls=list_controls, callback='save_setting_torrent', item=item,
caption="configuración -- Torrent", custom_button={'visible': False}) caption=config.get_localized_string(70257), custom_button={'visible': False})
def save_setting_torrent(item, dict_data_saved): def save_setting_torrent(item, dict_data_saved):
if dict_data_saved and "list_torrent" in dict_data_saved: if dict_data_saved and "list_torrent" in dict_data_saved:
config.set_setting("torrent_client", dict_data_saved["list_torrent"], server="torrent") config.set_setting("torrent_client", dict_data_saved["list_torrent"], server="torrent")
def menu_servers(item): def menu_servers(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
itemlist.append(Item(channel=CHANNELNAME, title="Sevidores bloqueados", action="servers_blacklist", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60550), action="servers_blacklist", folder=False,
thumbnail=get_thumb("setting_0.png"))) thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Servidores favoritos", itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60551),
action="servers_favorites", folder=False, thumbnail=get_thumb("setting_0.png"))) action="servers_favorites", folder=False, thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Ajustes de debriders:", itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60552),
action="", folder=False, thumbnail=get_thumb("setting_0.png"))) action="", folder=False, thumbnail=get_thumb("setting_0.png")))
# Inicio - Servidores configurables # Inicio - Servidores configurables
@@ -139,10 +138,10 @@ def menu_servers(item):
server_parameters = servertools.get_server_parameters(server) server_parameters = servertools.get_server_parameters(server)
if server_parameters["has_settings"]: if server_parameters["has_settings"]:
itemlist.append( itemlist.append(
Item(channel=CHANNELNAME, title=" Configuración del servidor '%s'" % server_parameters["name"], Item(channel=CHANNELNAME, title=config.get_localized_string(60553) % server_parameters["name"],
action="server_config", config=server, folder=False, thumbnail="")) action="server_config", config=server, folder=False, thumbnail=""))
itemlist.append(Item(channel=CHANNELNAME, title="Ajustes de servidores", itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60554),
action="", folder=False, thumbnail=get_thumb("setting_0.png"))) action="", folder=False, thumbnail=get_thumb("setting_0.png")))
server_list = servertools.get_servers_list().keys() server_list = servertools.get_servers_list().keys()
@@ -153,7 +152,7 @@ def menu_servers(item):
if server_parameters["has_settings"] and filter(lambda x: x["id"] not in ["black_list", "white_list"], if server_parameters["has_settings"] and filter(lambda x: x["id"] not in ["black_list", "white_list"],
server_parameters["settings"]): server_parameters["settings"]):
itemlist.append( itemlist.append(
Item(channel=CHANNELNAME, title=" Configuración del servidor '%s'" % server_parameters["name"], Item(channel=CHANNELNAME, title=config.get_localized_string(60553) % server_parameters["name"],
action="server_config", config=server, folder=False, thumbnail="")) action="server_config", config=server, folder=False, thumbnail=""))
# Fin - Servidores configurables # Fin - Servidores configurables
@@ -193,12 +192,12 @@ def servers_blacklist(item):
list_controls.append(control) list_controls.append(control)
return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values,
caption="Servidores bloqueados", callback="cb_servers_blacklist") caption=config.get_localized_string(60550), callback="cb_servers_blacklist")
def cb_servers_blacklist(item, dict_values): def cb_servers_blacklist(item, dict_values):
f = False f = False
progreso = platformtools.dialog_progress("Guardando configuración...", "Espere un momento por favor.") progreso = platformtools.dialog_progress(config.get_localized_string(60557), config.get_localized_string(60558))
n = len(dict_values) n = len(dict_values)
i = 1 i = 1
for k, v in dict_values.items(): for k, v in dict_values.items():
@@ -209,7 +208,7 @@ def cb_servers_blacklist(item, dict_values):
if v: # Si el servidor esta en la lista negra no puede estar en la de favoritos if v: # Si el servidor esta en la lista negra no puede estar en la de favoritos
config.set_setting("favorites_servers_list", 100, server=k) config.set_setting("favorites_servers_list", 100, server=k)
f = True f = True
progreso.update((i * 100) / n, "Guardando configuración...%s" % k) progreso.update((i * 100) / n, config.get_localized_string(60559) % k)
i += 1 i += 1
if not f: # Si no hay ningun servidor en la lista, desactivarla if not f: # Si no hay ningun servidor en la lista, desactivarla
@@ -224,7 +223,7 @@ def servers_favorites(item):
list_controls = [{'id': 'favorites_servers', list_controls = [{'id': 'favorites_servers',
'type': "bool", 'type': "bool",
'label': "Ordenar servidores", 'label': config.get_localized_string(60577),
'default': False, 'default': False,
'enabled': True, 'enabled': True,
'visible': True}] 'visible': True}]
@@ -248,7 +247,7 @@ def servers_favorites(item):
for x in range(1, 6): for x in range(1, 6):
control = {'id': x, control = {'id': x,
'type': "list", 'type': "list",
'label': " Servidor #%s" % x, 'label': config.get_localized_string(60597) % x,
'lvalues': server_names, 'lvalues': server_names,
'default': 0, 'default': 0,
'enabled': "eq(-%s,True)" % x, 'enabled': "eq(-%s,True)" % x,
@@ -256,12 +255,12 @@ def servers_favorites(item):
list_controls.append(control) list_controls.append(control)
return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, item=server_names, return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, item=server_names,
caption="Servidores favoritos", callback="cb_servers_favorites") caption=config.get_localized_string(60551), callback="cb_servers_favorites")
def cb_servers_favorites(server_names, dict_values): def cb_servers_favorites(server_names, dict_values):
dict_name = {} dict_name = {}
progreso = platformtools.dialog_progress("Guardando configuración...", "Espere un momento por favor.") progreso = platformtools.dialog_progress(config.get_localized_string(60557), config.get_localized_string(60558))
for i, v in dict_values.items(): for i, v in dict_values.items():
if i == "favorites_servers": if i == "favorites_servers":
@@ -277,7 +276,7 @@ def cb_servers_favorites(server_names, dict_values):
config.set_setting("favorites_servers_list", dict_name[server_parameters['name']], server=server) config.set_setting("favorites_servers_list", dict_name[server_parameters['name']], server=server)
else: else:
config.set_setting("favorites_servers_list", 0, server=server) config.set_setting("favorites_servers_list", 0, server=server)
progreso.update((i * 100) / n, "Guardando configuración...%s" % server_parameters['name']) progreso.update((i * 100) / n, config.get_localized_string(60559) % server_parameters['name'])
i += 1 i += 1
if not dict_name: # Si no hay ningun servidor en lalista desactivarla if not dict_name: # Si no hay ningun servidor en lalista desactivarla
@@ -291,43 +290,25 @@ def settings(item):
def submenu_tools(item): def submenu_tools(item):
import os
from core import filetools
logger.info() logger.info()
itemlist = list() itemlist = list()
#Herramientas de testeo masivo itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60564), action="", folder=False,
test_path = os.path.join(config.get_runtime_path(), "channels/test.py")
if filetools.exists(test_path):
itemlist.append(Item(channel=CHANNELNAME, title="Herramientas de Testeo masivo", action="", folder=False,
thumbnail=get_thumb("channels.png")))
itemlist.append(Item(title='- Testear canales ...', channel="test", action="channel_test_selected"))
itemlist.append(Item(title='- Testear servidores ...', channel="test", action="server_test_selected"))
itemlist.append(Item(title='- Testear todos los canales!', channel="test", action="channel_test_all"))
itemlist.append(Item(title='- Testear todos los servidores!', channel="test", action="server_test_all"))
itemlist.append(Item(title='- Testear novedades!', channel="test", action="news_test_all"))
itemlist.append(Item(title='- Upload tests to web!', channel="test", action="web_update_tests"))
itemlist.append(
Item(channel=CHANNELNAME, action="", title="", folder=False, thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Herramientas de canales", action="", folder=False,
thumbnail=get_thumb("channels.png"))) thumbnail=get_thumb("channels.png")))
itemlist.append(Item(channel=CHANNELNAME, title=" Comprobar archivos *_data.json", action="conf_tools", itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60565), action="conf_tools",
folder=True, extra="lib_check_datajson", thumbnail=get_thumb("channels.png"))) folder=True, extra="lib_check_datajson", thumbnail=get_thumb("channels.png")))
if config.get_videolibrary_support(): if config.get_videolibrary_support():
itemlist.append(Item(channel=CHANNELNAME, action="", title="", folder=False, itemlist.append(Item(channel=CHANNELNAME, action="", title="", folder=False,
thumbnail=get_thumb("setting_0.png"))) thumbnail=get_thumb("setting_0.png")))
itemlist.append(Item(channel=CHANNELNAME, title="Herramientas de videoteca", action="", folder=False, itemlist.append(Item(channel=CHANNELNAME, title=config.get_localized_string(60566), action="", folder=False,
thumbnail=get_thumb("videolibrary.png"))) thumbnail=get_thumb("videolibrary.png")))
itemlist.append(Item(channel=CHANNELNAME, action="overwrite_tools", folder=False, itemlist.append(Item(channel=CHANNELNAME, action="overwrite_tools", folder=False,
thumbnail=get_thumb("videolibrary.png"), thumbnail=get_thumb("videolibrary.png"),
title=" Sobreescribir toda la videoteca (strm, nfo y json)")) title=config.get_localized_string(60567)))
itemlist.append(Item(channel="videolibrary", action="update_videolibrary", folder=False, itemlist.append(Item(channel="videolibrary", action="update_videolibrary", folder=False,
thumbnail=get_thumb("videolibrary.png"), thumbnail=get_thumb("videolibrary.png"),
title=" Buscar nuevos episodios y actualizar videoteca")) title=config.get_localized_string(60568)))
return itemlist return itemlist
@@ -354,14 +335,14 @@ def conf_tools(item):
try: try:
list_controls.append({'id': "all_channels", list_controls.append({'id': "all_channels",
'type': "list", 'type': "list",
'label': "Todos los canales", 'label': config.get_localized_string(60594),
'default': 0, 'default': 0,
'enabled': True, 'enabled': True,
'visible': True, 'visible': True,
'lvalues': ['', 'lvalues': ['',
'Activar todos', config.get_localized_string(60591),
'Desactivar todos', config.get_localized_string(60592),
'Establecer estado por defecto']}) config.get_localized_string(60593)]})
for channel in channel_list: for channel in channel_list:
# Si el canal esta en la lista de exclusiones lo saltamos # Si el canal esta en la lista de exclusiones lo saltamos
@@ -376,7 +357,7 @@ def conf_tools(item):
status = channel_parameters["active"] status = channel_parameters["active"]
logger.debug("%s | Status (XML): %s" % (channel.channel, status)) logger.debug("%s | Status (XML): %s" % (channel.channel, status))
if not status: if not status:
status_control = " [COLOR grey](Desactivado por defecto)[/COLOR]" status_control = config.get_localized_string(60595)
else: else:
logger.debug("%s | Status: %s" % (channel.channel, status)) logger.debug("%s | Status: %s" % (channel.channel, status))
@@ -397,7 +378,7 @@ def conf_tools(item):
else: else:
return platformtools.show_channel_settings(list_controls=list_controls, return platformtools.show_channel_settings(list_controls=list_controls,
item=item.clone(channel_list=channel_list), item=item.clone(channel_list=channel_list),
caption="Canales", caption=config.get_localized_string(60596),
callback="channel_status", callback="channel_status",
custom_button={"visible": False}) custom_button={"visible": False})
@@ -429,7 +410,7 @@ def conf_tools(item):
if not list_controls: if not list_controls:
itemlist.append(Item(channel=CHANNELNAME, itemlist.append(Item(channel=CHANNELNAME,
title=channel.title + " - No tiene ajustes por defecto", title=channel.title + config.get_localized_string(60569),
action="", folder=False, action="", folder=False,
thumbnail=channel.thumbnail)) thumbnail=channel.thumbnail))
continue continue
@@ -459,7 +440,7 @@ def conf_tools(item):
datajson_size = filetools.getsize(file_settings) datajson_size = filetools.getsize(file_settings)
except: except:
import traceback import traceback
logger.error(channel.title + " | Detalle del error: %s" % traceback.format_exc()) logger.error(channel.title + config.get_localized_string(60570) % traceback.format_exc())
else: else:
datajson_size = None datajson_size = None
@@ -474,7 +455,7 @@ def conf_tools(item):
# logger.info(channel.title + " | Default: %s" % default_settings) # logger.info(channel.title + " | Default: %s" % default_settings)
except: except:
import traceback import traceback
logger.error(channel.title + " | Detalle del error: %s" % traceback.format_exc()) logger.error(channel.title + config.get_localized_string(60570) % traceback.format_exc())
# default_settings = {} # default_settings = {}
# Si _data.json necesita ser reparado o no existe... # Si _data.json necesita ser reparado o no existe...
@@ -490,12 +471,12 @@ def conf_tools(item):
open(file_settings, "wb").write(json_data) open(file_settings, "wb").write(json_data)
# logger.info(channel.channel + " - Archivo _data.json GUARDADO!") # logger.info(channel.channel + " - Archivo _data.json GUARDADO!")
# El channel_data.json se ha creado/modificado # El channel_data.json se ha creado/modificado
list_status = " - [COLOR red] CORREGIDO!![/COLOR]" list_status = config.get_localized_string(60560)
except EnvironmentError: except EnvironmentError:
logger.error("ERROR al salvar el archivo: %s" % file_settings) logger.error("ERROR al salvar el archivo: %s" % file_settings)
else: else:
if default_settings is None: if default_settings is None:
list_status = " - [COLOR red] Imposible cargar los ajustes por defecto![/COLOR]" list_status = config.get_localized_string(60571)
else: else:
# logger.info(channel.channel + " - NO necesita correccion!") # logger.info(channel.channel + " - NO necesita correccion!")
@@ -505,19 +486,19 @@ def conf_tools(item):
if needsfix is not None: if needsfix is not None:
if needsfix: if needsfix:
if not channeljson_exists: if not channeljson_exists:
list_status = " - Ajustes creados" list_status = config.get_localized_string(60588)
list_colour = "red" list_colour = "red"
else: else:
list_status = " - No necesita corrección" list_status = config.get_localized_string(60589)
list_colour = "green" list_colour = "green"
else: else:
# Si "needsfix" es "false" y "datjson_size" es None habra # Si "needsfix" es "false" y "datjson_size" es None habra
# ocurrido algun error # ocurrido algun error
if datajson_size is None: if datajson_size is None:
list_status = " - Ha ocurrido algun error" list_status = config.get_localized_string(60590)
list_colour = "red" list_colour = "red"
else: else:
list_status = " - No necesita corrección" list_status = config.get_localized_string(60589)
list_colour = "green" list_colour = "green"
if list_status is not None: if list_status is not None:
@@ -594,20 +575,20 @@ def channel_status(item, dict_values):
except: except:
import traceback import traceback
logger.error("Detalle del error: %s" % traceback.format_exc()) logger.error("Detalle del error: %s" % traceback.format_exc())
platformtools.dialog_notification("Error", "Se ha producido un error al guardar") platformtools.dialog_notification(config.get_localized_string(60579), config.get_localized_string(60580))
def overwrite_tools(item): def overwrite_tools(item):
import videolibrary_service import videolibrary_service
from core import videolibrarytools from core import videolibrarytools
seleccion = platformtools.dialog_yesno("Sobrescribir toda la videoteca", seleccion = platformtools.dialog_yesno(config.get_localized_string(60581),
"Esto puede llevar algún tiempo.", config.get_localized_string(60582),
"¿Desea continuar?") config.get_localized_string(60583))
if seleccion == 1: if seleccion == 1:
# tvshows # tvshows
heading = 'Sobrescribiendo videoteca....SERIES' heading = config.get_localized_string(60584)
p_dialog = platformtools.dialog_progress_bg('alfa', heading) p_dialog = platformtools.dialog_progress_bg(config.get_localized_string(60585), heading)
p_dialog.update(0, '') p_dialog.update(0, '')
show_list = [] show_list = []
@@ -633,8 +614,8 @@ def overwrite_tools(item):
p_dialog.close() p_dialog.close()
# movies # movies
heading = 'Sobrescribiendo videoteca....PELICULAS' heading = config.get_localized_string(60586)
p_dialog2 = platformtools.dialog_progress_bg('alfa', heading) p_dialog2 = platformtools.dialog_progress_bg(config.get_localized_string(60585), heading)
p_dialog2.update(0, '') p_dialog2.update(0, '')
movies_list = [] movies_list = []
@@ -656,7 +637,7 @@ def overwrite_tools(item):
filetools.rmdirtree(path) filetools.rmdirtree(path)
import math import math
heading = 'Actualizando videoteca....' heading = config.get_localized_string(60587)
p_dialog2.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (movie.contentTitle, p_dialog2.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (movie.contentTitle,
movie.channel.capitalize())) movie.channel.capitalize()))
@@ -669,4 +650,3 @@ def overwrite_tools(item):
logger.error(message) logger.error(message)
p_dialog2.close() p_dialog2.close()
+6 -10
View File
@@ -4,19 +4,16 @@ from core import httptools
from core import scrapertools from core import scrapertools
from core import servertools from core import servertools
from core.item import Item from core.item import Item
from platformcode import logger from platformcode import config, logger
def mainlist(item): def mainlist(item):
logger.info() logger.info()
itemlist = [] itemlist = []
itemlist.append(Item(channel=item.channel, action="search", itemlist.append(Item(channel=item.channel, action="search", title=config.get_localized_string(60089)))
title="Entra aquí y teclea la URL [Enlace a servidor online/descarga]")) itemlist.append(Item(channel=item.channel, action="search", title=config.get_localized_string(60090)))
itemlist.append( itemlist.append(Item(channel=item.channel, action="search", title=config.get_localized_string(60091)))
Item(channel=item.channel, action="search", title="Entra aquí y teclea la URL [Enlace directo a un vídeo]"))
itemlist.append(Item(channel=item.channel, action="search",
title="Entra aquí y teclea la URL [Búsqueda de enlaces en una url]"))
return itemlist return itemlist
@@ -36,8 +33,7 @@ def search(item, texto):
item.channel = "url" item.channel = "url"
item.action = "play" item.action = "play"
elif "directo" in item.title: elif "directo" in item.title:
itemlist.append( itemlist.append(Item(channel=item.channel, action="play", url=texto, server="directo", title=config.get_localized_string(60092)))
Item(channel=item.channel, action="play", url=texto, server="directo", title="Ver enlace directo"))
else: else:
data = httptools.downloadpage(texto).data data = httptools.downloadpage(texto).data
itemlist = servertools.find_video_items(data=data) itemlist = servertools.find_video_items(data=data)
@@ -46,6 +42,6 @@ def search(item, texto):
item.action = "play" item.action = "play"
if len(itemlist) == 0: if len(itemlist) == 0:
itemlist.append(Item(channel=item.channel, action="search", title="No hay ningún vídeo compatible en esa URL")) itemlist.append(Item(channel=item.channel, action="search", title=config.get_localized_string(60093)))
return itemlist return itemlist
+60 -69
View File
@@ -8,38 +8,38 @@
{ {
"id": "update", "id": "update",
"type": "list", "type": "list",
"label": "Actualizar la videoteca", "label": "@60601",
"default": 1, "default": 1,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Nunca", "@60602",
"Al iniciar Kodi", "@60603",
"Una sola vez al día", "@60604",
"Al iniciar Kodi y al menos una vez al día" "@60605"
] ]
}, },
{ {
"id": "update_wait", "id": "update_wait",
"type": "list", "type": "list",
"label": " Esperar antes de actualizar al iniciar kodi", "label": "@60606",
"default": 0, "default": 0,
"visible": true, "visible": true,
"enabled": "eq(-1,Al iniciar Kodi)|eq(-1,Al iniciar Kodi y al menos una vez al día)", "enabled": "eq(-1,@60603])|eq(-1,@60605])",
"lvalues": [ "lvalues": [
"No", "No",
"10 seg", "@60609",
"20 seg", "@60610",
"30 seg", "@60611",
"60 seg" "@60612"
] ]
}, },
{ {
"id": "everyday_delay", "id": "everyday_delay",
"type": "list", "type": "list",
"label": " Iniciar actualización programada a partir de las", "label": "@60613",
"default": 1, "default": 1,
"visible": true, "visible": true,
"enabled": "eq(-2,Una sola vez al día)|eq(-2,Al iniciar Kodi y al menos una vez al día)", "enabled": "eq(-2,@60604])|eq(-2,@60605])",
"lvalues": [ "lvalues": [
"00:00", "00:00",
"04:00", "04:00",
@@ -50,37 +50,37 @@
{ {
"id": "updatetvshows_interval", "id": "updatetvshows_interval",
"type": "list", "type": "list",
"label": " Buscar nuevos episodios en las series activas", "label": "@60614",
"default": 0, "default": 0,
"visible": true, "visible": true,
"enabled": "!eq(-3,Nunca)", "enabled": "!eq(-3,@60615])",
"lvalues": [ "lvalues": [
"Siempre", "@60616",
"Según su emisión" "@60617"
] ]
}, },
{ {
"id": "search_new_content", "id": "search_new_content",
"type": "list", "type": "list",
"label": " Realizar búsqueda de contenido en", "label": "@60618",
"default": 0, "default": 0,
"enabled": "!eq(-4,Nunca)", "enabled": "!eq(-4,@60615])",
"lvalues": [ "lvalues": [
"La carpeta de cada serie", "@60619",
"Toda la videoteca" "@60620"
] ]
}, },
{ {
"id": "addition", "id": "addition",
"type": "label", "type": "label",
"label": "Añadir a la videoteca", "label": "@70092",
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "enable_filter", "id": "enable_filter",
"type": "bool", "type": "bool",
"label": " Excluir los streams que contienen etiquetas específicas", "label": "@70090",
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"default": false "default": false
@@ -88,31 +88,32 @@
{ {
"id": "filters", "id": "filters",
"type": "text", "type": "text",
"label": " Etiquetas", "label": "@70091",
"visible": true, "visible": true,
"enabled": "eq(-1,true)" "enabled": "eq(-1,true)"
}, },
{ {
"id": "window_type", "id": "window_type",
"type": "list", "type": "list",
"label": "Mostrar los enlaces en", "label": "@60621",
"default": 1, "default": 0,
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Ventana convencional", "@60622",
"Ventana emergente" "@60623"
] ]
}, },
{ {
"id": "max_links", "id": "max_links",
"type": "list", "type": "list",
"label": " Numero máximo de enlaces a mostrar (recomendable para equipos lentos)", "label": "@60624",
"default": 0, "default": 0,
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Todos", "@60625",
"30", "30",
"60", "60",
"90", "90",
@@ -125,7 +126,7 @@
{ {
"id": "white_list_order", "id": "white_list_order",
"type": "bool", "type": "bool",
"label": " Ordenar segun el orden de la lista blanca", "label": "@60626",
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"default": false "default": false
@@ -133,7 +134,7 @@
{ {
"id": "quit_channel_name", "id": "quit_channel_name",
"type": "bool", "type": "bool",
"label": " Quitar el nombre del canal del principio", "label": "@60627",
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"default": false "default": false
@@ -141,7 +142,7 @@
{ {
"id": "replace_VD", "id": "replace_VD",
"type": "bool", "type": "bool",
"label": " Ventana emergente: Reemplazar \"Ver en\" por \"[V]\" y \"Descargar en\" por \"[D]\"", "label": "@60628",
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"default": false "default": false
@@ -149,33 +150,33 @@
{ {
"id": "db_mode", "id": "db_mode",
"type": "list", "type": "list",
"label": "Ubicación de Base de datos", "label": "@60629",
"default": 0, "default": 0,
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"lvalues": [ "lvalues": [
"Local", "@60630",
"Remota" "@60631"
] ]
}, },
{ {
"id": "xbmc_host", "id": "xbmc_host",
"type": "text", "type": "text",
"label": " Nombre Servidor", "label": "@60632",
"visible": true, "visible": true,
"enabled": "eq(-1,Remota)" "enabled": "eq(-1,Remota)"
}, },
{ {
"id": "xbmc_puerto", "id": "xbmc_puerto",
"type": "text", "type": "text",
"label": " Puerto Servidor", "label": "@60633",
"enabled": "!eq(-1,'')", "enabled": "!eq(-1,'')",
"visible": true "visible": true
}, },
{ {
"id": "mark_as_watched", "id": "mark_as_watched",
"type": "bool", "type": "bool",
"label": "Marcar automáticamente como visto", "label": "@60634",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
@@ -183,7 +184,7 @@
{ {
"id": "watched_setting", "id": "watched_setting",
"type": "list", "type": "list",
"label": " Tiempo necesario del video", "label": "@60635",
"default": 3, "default": 3,
"visible": true, "visible": true,
"enabled": "eq(-1,true)", "enabled": "eq(-1,true)",
@@ -192,20 +193,20 @@
"30%", "30%",
"50%", "50%",
"80%", "80%",
"0 seg" "@60636"
] ]
}, },
{ {
"id": "sync_trakt", "id": "sync_trakt",
"type": "label", "type": "label",
"label": "Sincronización con Trakt", "label": "@60637",
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "sync_trakt_watched", "id": "sync_trakt_watched",
"type": "bool", "type": "bool",
"label": " Tras marcar como visto el episodio", "label": "@60638",
"default": false, "default": false,
"visible": true, "visible": true,
"enabled": "eq(-3,true)" "enabled": "eq(-3,true)"
@@ -213,7 +214,7 @@
{ {
"id": "sync_trakt_notification", "id": "sync_trakt_notification",
"type": "bool", "type": "bool",
"label": " Mostrar notificación", "label": "@60639",
"default": true, "default": true,
"visible": true, "visible": true,
"enabled": "eq(-1,true)" "enabled": "eq(-1,true)"
@@ -221,7 +222,7 @@
{ {
"id": "sync_trakt_new_tvshow", "id": "sync_trakt_new_tvshow",
"type": "bool", "type": "bool",
"label": " Al añadir una serie a la videoteca", "label": "@60640",
"default": false, "default": false,
"enabled": true, "enabled": true,
"visible": true "visible": true
@@ -229,7 +230,7 @@
{ {
"id": "sync_trakt_new_tvshow_wait", "id": "sync_trakt_new_tvshow_wait",
"type": "bool", "type": "bool",
"label": " Esperar a que se añada la serie a la videoteca", "label": "@60641",
"default": true, "default": true,
"visible": true, "visible": true,
"enabled": "eq(-1,true)" "enabled": "eq(-1,true)"
@@ -237,57 +238,47 @@
{ {
"id": "show_all_seasons", "id": "show_all_seasons",
"type": "bool", "type": "bool",
"label": "Mostrar la opción \"Todas las temporadas\"", "label": "@60642",
"default": true "default": true
}, },
{ {
"id": "no_pile_on_seasons", "id": "no_pile_on_seasons",
"type": "list", "type": "list",
"label": "No apilar temporadas de series", "label": "@60643",
"default": 1, "default": 1,
"lvalues": [ "lvalues": [
"Nunca", "@60648",
"Sólo si hay una temporada", "@60644",
"Siempre" "@60616"
] ]
}, },
{ {
"id": "ask_channel", "id": "ask_channel",
"type": "bool", "type": "bool",
"label": "Mostrar cuadro de selección de canales", "label": "@60645",
"default": false "default": false
}, },
{ {
"id": "original_title_folder", "id": "original_title_folder",
"type": "list", "type": "list",
"label": "Crear directorios en el sistema usando", "label": "@60646",
"default": 0, "default": 0,
"lvalues": [ "lvalues": [
"Título localizado", "@60647",
"Título original" "@60649"
]
},
{
"id": "lowerize_title",
"type": "list",
"label": "Crear directorios con letras en miúsculas",
"default": 0,
"lvalues": [
"Si",
"No"
] ]
}, },
{ {
"id": "lab_1", "id": "lab_1",
"type": "label", "type": "label",
"label": "Al añadir contenido, obtener información de:", "label": "@60650",
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "scraper_movies", "id": "scraper_movies",
"type": "list", "type": "list",
"label": " Peliculas:", "label": "@60651",
"enabled": false, "enabled": false,
"default": 0, "default": 0,
"lvalues": [ "lvalues": [
@@ -298,7 +289,7 @@
{ {
"id": "scraper_tvshows", "id": "scraper_tvshows",
"type": "list", "type": "list",
"label": " Series:", "label": "@60652",
"default": 0, "default": 0,
"lvalues": [ "lvalues": [
"TheMovieDB.org", "TheMovieDB.org",
@@ -308,7 +299,7 @@
{ {
"id": "tvdb_retry_eng", "id": "tvdb_retry_eng",
"type": "bool", "type": "bool",
"label": " Si no hay resultados buscar también en Inglés", "label": "@60653",
"default": true, "default": true,
"enabled": "eq(-1,TheTvDB.com)", "enabled": "eq(-1,TheTvDB.com)",
"visible": true "visible": true
+33 -33
View File
@@ -15,10 +15,10 @@ def mainlist(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
itemlist.append(Item(channel=item.channel, action="list_movies", title="Películas", itemlist.append(Item(channel=item.channel, action="list_movies", title=config.get_localized_string(60509),
category="Videoteca de películas", category="Videoteca de películas",
thumbnail=get_thumb("videolibrary_movie.png"))) thumbnail=get_thumb("videolibrary_movie.png")))
itemlist.append(Item(channel=item.channel, action="list_tvshows", title="Series", itemlist.append(Item(channel=item.channel, action="list_tvshows", title=config.get_localized_string(60600),
category="Videoteca de series", category="Videoteca de series",
thumbnail=get_thumb("videolibrary_tvshow.png"))) thumbnail=get_thumb("videolibrary_tvshow.png")))
@@ -28,7 +28,7 @@ def mainlist(item):
def channel_config(item): def channel_config(item):
return platformtools.show_channel_settings(channelpath=os.path.join(config.get_runtime_path(), "channels", return platformtools.show_channel_settings(channelpath=os.path.join(config.get_runtime_path(), "channels",
item.channel), item.channel),
caption="configuración -- Videoteca") caption=config.get_localized_string(60598))
def list_movies(item): def list_movies(item):
@@ -54,10 +54,10 @@ def list_movies(item):
visto = new_item.library_playcounts.get(os.path.splitext(f)[0], 0) visto = new_item.library_playcounts.get(os.path.splitext(f)[0], 0)
new_item.infoLabels["playcount"] = visto new_item.infoLabels["playcount"] = visto
if visto > 0: if visto > 0:
texto_visto = "Marcar película como no vista" texto_visto = config.get_localized_string(60016)
contador = 0 contador = 0
else: else:
texto_visto = "Marcar película como vista" texto_visto = config.get_localized_string(60017)
contador = 1 contador = 1
# Menu contextual: Eliminar serie/canal # Menu contextual: Eliminar serie/canal
@@ -65,10 +65,10 @@ def list_movies(item):
if "downloads" in new_item.library_urls: if "downloads" in new_item.library_urls:
num_canales -= 1 num_canales -= 1
if num_canales > 1: if num_canales > 1:
texto_eliminar = "Eliminar película/canal" texto_eliminar = config.get_localized_string(60018)
multicanal = True multicanal = True
else: else:
texto_eliminar = "Eliminar esta película" texto_eliminar = config.get_localized_string(60019)
multicanal = False multicanal = False
new_item.context = [{"title": texto_visto, new_item.context = [{"title": texto_visto,
@@ -107,19 +107,19 @@ def list_tvshows(item):
visto = item_tvshow.library_playcounts.get(item_tvshow.contentTitle, 0) visto = item_tvshow.library_playcounts.get(item_tvshow.contentTitle, 0)
item_tvshow.infoLabels["playcount"] = visto item_tvshow.infoLabels["playcount"] = visto
if visto > 0: if visto > 0:
texto_visto = "Marcar serie como no vista" texto_visto = config.get_localized_string(60020)
contador = 0 contador = 0
else: else:
texto_visto = "Marcar serie como vista" texto_visto = config.get_localized_string(60021)
contador = 1 contador = 1
# Menu contextual: Buscar automáticamente nuevos episodios o no # Menu contextual: Buscar automáticamente nuevos episodios o no
if item_tvshow.active and int(item_tvshow.active) > 0: if item_tvshow.active and int(item_tvshow.active) > 0:
texto_update = "Buscar automáticamente nuevos episodios: Desactivar" texto_update = config.get_localized_string(60022)
value = 0 value = 0
item_tvshow.text_color = "green" item_tvshow.text_color = "green"
else: else:
texto_update = "Buscar automáticamente nuevos episodios: Activar" texto_update = config.get_localized_string(60023)
value = 1 value = 1
item_tvshow.text_color = "0xFFDF7401" item_tvshow.text_color = "0xFFDF7401"
@@ -128,10 +128,10 @@ def list_tvshows(item):
if "downloads" in item_tvshow.library_urls: if "downloads" in item_tvshow.library_urls:
num_canales -= 1 num_canales -= 1
if num_canales > 1: if num_canales > 1:
texto_eliminar = "Eliminar serie/canal" texto_eliminar = config.get_localized_string(60024)
multicanal = True multicanal = True
else: else:
texto_eliminar = "Eliminar esta serie" texto_eliminar = config.get_localized_string(60025)
multicanal = False multicanal = False
item_tvshow.context = [{"title": texto_visto, item_tvshow.context = [{"title": texto_visto,
@@ -160,7 +160,7 @@ def list_tvshows(item):
itemlist = sorted(itemlist, key=lambda it: it.title.lower()) itemlist = sorted(itemlist, key=lambda it: it.title.lower())
itemlist.append(Item(channel=item.channel, action="update_videolibrary", thumbnail=item.thumbnail, itemlist.append(Item(channel=item.channel, action="update_videolibrary", thumbnail=item.thumbnail,
title="Buscar nuevos episodios y actualizar videoteca", folder=False)) title=config.get_localized_string(60026), folder=False))
return itemlist return itemlist
@@ -182,7 +182,7 @@ def get_seasons(item):
for f in ficheros: for f in ficheros:
if f.endswith('.json'): if f.endswith('.json'):
season = f.split('x')[0] season = f.split('x')[0]
dict_temp[season] = "Temporada %s" % season dict_temp[season] = config.get_localized_string(60027) % season
if config.get_setting("no_pile_on_seasons", "videolibrary") == 1 and len( if config.get_setting("no_pile_on_seasons", "videolibrary") == 1 and len(
dict_temp) == 1: # Sólo si hay una temporada dict_temp) == 1: # Sólo si hay una temporada
@@ -205,10 +205,10 @@ def get_seasons(item):
visto = item_nfo.library_playcounts.get("season %s" % season, 0) visto = item_nfo.library_playcounts.get("season %s" % season, 0)
new_item.infoLabels["playcount"] = visto new_item.infoLabels["playcount"] = visto
if visto > 0: if visto > 0:
texto = "Marcar temporada como no vista" texto = config.get_localized_string(60028)
value = 0 value = 0
else: else:
texto = "Marcar temporada como vista" texto = config.get_localized_string(60029)
value = 1 value = 1
new_item.context = [{"title": texto, new_item.context = [{"title": texto,
"action": "mark_season_as_watched", "action": "mark_season_as_watched",
@@ -222,7 +222,7 @@ def get_seasons(item):
itemlist = sorted(itemlist, key=lambda it: int(it.contentSeason)) itemlist = sorted(itemlist, key=lambda it: int(it.contentSeason))
if config.get_setting("show_all_seasons", "videolibrary"): if config.get_setting("show_all_seasons", "videolibrary"):
new_item = item.clone(action="get_episodes", title="*Todas las temporadas") new_item = item.clone(action="get_episodes", title=config.get_localized_string(60030))
new_item.infoLabels["playcount"] = 0 new_item.infoLabels["playcount"] = 0
itemlist.insert(0, new_item) itemlist.insert(0, new_item)
@@ -260,7 +260,7 @@ def get_episodes(item):
if epi.contentTitle: if epi.contentTitle:
title_episodie = epi.contentTitle.strip() title_episodie = epi.contentTitle.strip()
else: else:
title_episodie = "Temporada %s Episodio %s" % \ title_episodie = config.get_localized_string(60031) % \
(epi.contentSeason, str(epi.contentEpisodeNumber).zfill(2)) (epi.contentSeason, str(epi.contentEpisodeNumber).zfill(2))
epi.contentTitle = "%sx%s" % (epi.contentSeason, str(epi.contentEpisodeNumber).zfill(2)) epi.contentTitle = "%sx%s" % (epi.contentSeason, str(epi.contentEpisodeNumber).zfill(2))
@@ -273,10 +273,10 @@ def get_episodes(item):
visto = item_nfo.library_playcounts.get(season_episode, 0) visto = item_nfo.library_playcounts.get(season_episode, 0)
epi.infoLabels["playcount"] = visto epi.infoLabels["playcount"] = visto
if visto > 0: if visto > 0:
texto = "Marcar episodio como no visto" texto = config.get_localized_string(60032)
value = 0 value = 0
else: else:
texto = "Marcar episodio como visto" texto = config.get_localized_string(60033)
value = 1 value = 1
epi.context = [{"title": texto, epi.context = [{"title": texto,
"action": "mark_content_as_watched", "action": "mark_content_as_watched",
@@ -343,8 +343,8 @@ def findvideos(item):
filtro_canal = '' filtro_canal = ''
if num_canales > 1 and config.get_setting("ask_channel", "videolibrary"): if num_canales > 1 and config.get_setting("ask_channel", "videolibrary"):
opciones = ["Mostrar solo los enlaces de %s" % k.capitalize() for k in list_canales.keys()] opciones = [config.get_localized_string(70089) % k.capitalize() for k in list_canales.keys()]
opciones.insert(0, "Mostrar todos los enlaces") opciones.insert(0, config.get_localized_string(70083))
if item_local: if item_local:
opciones.append(item_local.title) opciones.append(item_local.title)
@@ -358,7 +358,7 @@ def findvideos(item):
platformtools.play_video(item_local) platformtools.play_video(item_local)
elif index > 0: elif index > 0:
filtro_canal = opciones[index].replace("Mostrar solo los enlaces de ", "") filtro_canal = opciones[index].replace(config.get_localized_string(70078), "")
itemlist = [] itemlist = []
for nom_canal, json_path in list_canales.items(): for nom_canal, json_path in list_canales.items():
@@ -458,7 +458,7 @@ def play(item):
v.title = item.contentTitle v.title = item.contentTitle
else: else:
if item.contentType == "episode": if item.contentType == "episode":
v.title = "Episodio %s" % item.contentEpisodeNumber v.title = config.get_localized_string(60036) % item.contentEpisodeNumber
v.thumbnail = item.thumbnail v.thumbnail = item.thumbnail
v.contentThumbnail = item.thumbnail v.contentThumbnail = item.thumbnail
@@ -490,8 +490,8 @@ def update_tvshow(item):
logger.info() logger.info()
# logger.debug("item:\n" + item.tostring('\n')) # logger.debug("item:\n" + item.tostring('\n'))
heading = 'Actualizando serie....' heading = config.get_localized_string(60037)
p_dialog = platformtools.dialog_progress_bg('alfa', heading) p_dialog = platformtools.dialog_progress_bg(config.get_localized_string(20000), heading)
p_dialog.update(0, heading, item.contentSerieName) p_dialog.update(0, heading, item.contentSerieName)
import videolibrary_service import videolibrary_service
@@ -680,13 +680,13 @@ def delete(item):
# logger.debug(item.tostring('\n')) # logger.debug(item.tostring('\n'))
if item.contentType == 'movie': if item.contentType == 'movie':
heading = "Eliminar película" heading = config.get_localized_string(70084)
else: else:
heading = "Eliminar serie" heading = config.get_localized_string(70085)
if item.multicanal: if item.multicanal:
# Obtener listado de canales # Obtener listado de canales
opciones = ["Eliminar solo los enlaces de %s" % k.capitalize() for k in item.library_urls.keys() if opciones = [config.get_localized_string(70086) % k.capitalize() for k in item.library_urls.keys() if
k != "downloads"] k != "downloads"]
opciones.insert(0, heading) opciones.insert(0, heading)
@@ -698,7 +698,7 @@ def delete(item):
elif index > 0: elif index > 0:
# Seleccionado Eliminar canal X # Seleccionado Eliminar canal X
canal = opciones[index].replace("Eliminar solo los enlaces de ", "").lower() canal = opciones[index].replace(config.get_localized_string(70079), "").lower()
num_enlaces = 0 num_enlaces = 0
for fd in filetools.listdir(item.path): for fd in filetools.listdir(item.path):
@@ -712,14 +712,14 @@ def delete(item):
del item_nfo.library_urls[canal] del item_nfo.library_urls[canal]
filetools.write(item.nfo, head_nfo + item_nfo.tojson()) filetools.write(item.nfo, head_nfo + item_nfo.tojson())
msg_txt = "Eliminados %s enlaces del canal %s" % (num_enlaces, canal) msg_txt = config.get_localized_string(70087) % (num_enlaces, canal)
logger.info(msg_txt) logger.info(msg_txt)
platformtools.dialog_notification(heading, msg_txt) platformtools.dialog_notification(heading, msg_txt)
platformtools.itemlist_refresh() platformtools.itemlist_refresh()
else: else:
if platformtools.dialog_yesno(heading, if platformtools.dialog_yesno(heading,
"¿Realmente desea eliminar '%s' de su videoteca?" % item.infoLabels['title']): config.get_localized_string(70088) % item.infoLabels['title']):
delete_all(item) delete_all(item)
+5 -5
View File
@@ -29,7 +29,7 @@ import urlparse
from threading import Thread, Lock from threading import Thread, Lock
from core import filetools from core import filetools
from platformcode import logger from platformcode import logger, config
class Downloader: class Downloader:
@@ -89,17 +89,17 @@ class Downloader:
return os.path.abspath(filetools.join(self._path, self._filename)) return os.path.abspath(filetools.join(self._path, self._filename))
# Funciones # Funciones
def start_dialog(self, title="Descargando..."): def start_dialog(self, title=config.get_localized_string(60200)):
from platformcode import platformtools from platformcode import platformtools
progreso = platformtools.dialog_progress(title, "Iniciando descarga...") progreso = platformtools.dialog_progress(title, config.get_localized_string(60201))
self.start() self.start()
while self.state == self.states.downloading and not progreso.iscanceled(): while self.state == self.states.downloading and not progreso.iscanceled():
time.sleep(0.1) time.sleep(0.1)
line1 = "%s" % (self.filename) line1 = "%s" % (self.filename)
line2 = "%.2f%% - %.2f %s de %.2f %s a %.2f %s/s (%d/%d)" % ( line2 = config.get_localized_string(59983) % (
self.progress, self.downloaded[1], self.downloaded[2], self.size[1], self.size[2], self.progress, self.downloaded[1], self.downloaded[2], self.size[1], self.size[2],
self.speed[1], self.speed[2], self.connections[0], self.connections[1]) self.speed[1], self.speed[2], self.connections[0], self.connections[1])
line3 = "Tiempo restante: %s" % (self.remaining_time) line3 = config.get_localized_string(60202) % (self.remaining_time)
progreso.update(int(self.progress), line1, line2, line3) progreso.update(int(self.progress), line1, line2, line3)
if self.state == self.states.downloading: if self.state == self.states.downloading:
+22 -23
View File
@@ -21,10 +21,10 @@ def find_and_set_infoLabels(item):
scraper = None scraper = None
# logger.debug("item:\n" + item.tostring('\n')) # logger.debug("item:\n" + item.tostring('\n'))
list_opciones_cuadro = ["Introducir otro nombre", "Completar información"] list_opciones_cuadro = [config.get_localized_string(60223), config.get_localized_string(60224)]
# Si se añaden más scrapers hay q declararlos aqui-> "modulo_scraper": "Texto_en_cuadro" # Si se añaden más scrapers hay q declararlos aqui-> "modulo_scraper": "Texto_en_cuadro"
scrapers_disponibles = {'tmdb': "Buscar en TheMovieDB.org", scrapers_disponibles = {'tmdb': config.get_localized_string(60225),
'tvdb': "Buscar en TheTvDB.com"} 'tvdb': config.get_localized_string(60226)}
# Obtener el Scraper por defecto de la configuracion segun el tipo de contenido # Obtener el Scraper por defecto de la configuracion segun el tipo de contenido
if item.contentType == "movie": if item.contentType == "movie":
@@ -63,10 +63,10 @@ def find_and_set_infoLabels(item):
return True return True
elif scraper_result: elif scraper_result:
# Contenido encontrado pero no hay 'code' # Contenido encontrado pero no hay 'code'
msg = "Identificador no encontrado para: %s" % title msg = config.get_localized_string(60227) % title
else: else:
# Contenido no encontrado # Contenido no encontrado
msg = "No se ha encontrado informacion para: %s" % title msg = config.get_localized_string(60228) % title
logger.info(msg) logger.info(msg)
# Mostrar cuadro con otras opciones: # Mostrar cuadro con otras opciones:
@@ -80,7 +80,7 @@ def find_and_set_infoLabels(item):
elif index == 0: elif index == 0:
# Pregunta el titulo # Pregunta el titulo
title = platformtools.dialog_input(title, "Introduzca el nombre de la %s a buscar" % tipo_contenido) title = platformtools.dialog_input(title, config.get_localized_string(60229) % tipo_contenido)
if title: if title:
if item.contentType == "movie": if item.contentType == "movie":
item.contentTitle = title item.contentTitle = title
@@ -125,19 +125,19 @@ def cuadro_completar(item):
COLOR = ["0xFF8A4B08", "0xFFF7BE81"] COLOR = ["0xFF8A4B08", "0xFFF7BE81"]
# Creamos la lista de campos del infoLabel # Creamos la lista de campos del infoLabel
controls = [("title", "text", "Titulo:"), controls = [("title", "text", config.get_localized_string(60230)),
("originaltitle", "text", "Titulo original"), ("originaltitle", "text", config.get_localized_string(60231)),
("year", "text", "Año"), ("year", "text", config.get_localized_string(60232)),
("identificadores", "label", "Identificadores:"), ("identificadores", "label", config.get_localized_string(60233)),
("tmdb_id", "text", " The Movie Database ID"), ("tmdb_id", "text", config.get_localized_string(60234)),
("url_tmdb", "text", " URL Tmdb", "+!eq(-1,'')"), ("url_tmdb", "text", config.get_localized_string(60235), "+!eq(-1,'')"),
("tvdb_id", "text", " The TVDB ID", "+eq(-7,'Serie')"), ("tvdb_id", "text", config.get_localized_string(60236), "+eq(-7,'Serie')"),
("url_tvdb", "text", " URL TVDB", "+!eq(-1,'')+eq(-8,'Serie')"), ("url_tvdb", "text", config.get_localized_string(60237), "+!eq(-1,'')+eq(-8,'Serie')"),
("imdb_id", "text", " IMDb ID"), ("imdb_id", "text", config.get_localized_string(60238)),
("otro_id", "text", " Otro ID", "+eq(-1,'')"), ("otro_id", "text", config.get_localized_string(60239), "+eq(-1,'')"),
("urls", "label", "Imágenes (urls):"), ("urls", "label", config.get_localized_string(60240)),
("fanart", "text", " Fondo"), ("fanart", "text", config.get_localized_string(60241)),
("thumbnail", "text", " Miniatura")] ("thumbnail", "text", config.get_localized_string(60242))]
if item.infoLabels["mediatype"] == "movie": if item.infoLabels["mediatype"] == "movie":
mediatype_default = 0 mediatype_default = 0
@@ -146,12 +146,12 @@ def cuadro_completar(item):
listado_controles = [{'id': "mediatype", listado_controles = [{'id': "mediatype",
'type': "list", 'type': "list",
'label': "Tipo de contenido", 'label': config.get_localized_string(60243),
'color': COLOR[1], 'color': COLOR[1],
'default': mediatype_default, 'default': mediatype_default,
'enabled': True, 'enabled': True,
'visible': True, 'visible': True,
'lvalues': ["Película", "Serie"] 'lvalues': [config.get_localized_string(60244), config.get_localized_string(60245)]
}] }]
for i, c in enumerate(controls): for i, c in enumerate(controls):
@@ -188,7 +188,7 @@ def cuadro_completar(item):
'visible': True}) 'visible': True})
# logger.debug(dict_default) # logger.debug(dict_default)
if platformtools.show_channel_settings(list_controls=listado_controles, caption="Completar información", item=item, if platformtools.show_channel_settings(list_controls=listado_controles, caption=config.get_localized_string(60246), item=item,
callback="core.scraper.callback_cuadro_completar", callback="core.scraper.callback_cuadro_completar",
custom_button={"visible": False}): custom_button={"visible": False}):
return True return True
@@ -263,7 +263,6 @@ def get_nfo(item):
def sort_episode_list(episodelist): def sort_episode_list(episodelist):
episodelist.sort(key=lambda e: e.title, reverse=True)
scraper_actual = ['tmdb', 'tvdb'][config.get_setting("scraper_tvshows", "videolibrary")] scraper_actual = ['tmdb', 'tvdb'][config.get_setting("scraper_tvshows", "videolibrary")]
if scraper_actual == "tmdb": if scraper_actual == "tmdb":
+8 -9
View File
@@ -116,7 +116,7 @@ def save_movie(item):
_id = item.infoLabels['code'][0] _id = item.infoLabels['code'][0]
# progress dialog # progress dialog
p_dialog = platformtools.dialog_progress('alfa', 'Añadiendo película...') p_dialog = platformtools.dialog_progress(config.get_localized_string(20000), config.get_localized_string(60062))
if config.get_setting("original_title_folder", "videolibrary") == 1 and item.infoLabels['originaltitle']: if config.get_setting("original_title_folder", "videolibrary") == 1 and item.infoLabels['originaltitle']:
base_name = item.infoLabels['originaltitle'] base_name = item.infoLabels['originaltitle']
@@ -197,7 +197,7 @@ def save_movie(item):
# Si llegamos a este punto es por q algo ha fallado # Si llegamos a este punto es por q algo ha fallado
logger.error("No se ha podido guardar %s en la videoteca" % item.contentTitle) logger.error("No se ha podido guardar %s en la videoteca" % item.contentTitle)
p_dialog.update(100, 'Fallo al añadir...', item.contentTitle) p_dialog.update(100, config.get_localized_string(60063), item.contentTitle)
p_dialog.close() p_dialog.close()
return 0, 0, -1 return 0, 0, -1
@@ -366,8 +366,8 @@ def save_episodes(path, episodelist, serie, silent=False, overwrite=True):
# Silent es para no mostrar progreso (para videolibrary_service) # Silent es para no mostrar progreso (para videolibrary_service)
if not silent: if not silent:
# progress dialog # progress dialog
p_dialog = platformtools.dialog_progress('alfa', 'Añadiendo episodios...') p_dialog = platformtools.dialog_progress(config.get_localized_string(20000), config.get_localized_string(60064))
p_dialog.update(0, 'Añadiendo episodio...') p_dialog.update(0, config.get_localized_string(60065))
new_episodelist = [] new_episodelist = []
# Obtenemos el numero de temporada y episodio y descartamos los q no lo sean # Obtenemos el numero de temporada y episodio y descartamos los q no lo sean
@@ -616,21 +616,20 @@ def add_tvshow(item, channel=None):
insertados, sobreescritos, fallidos, path = save_tvshow(item, itemlist) insertados, sobreescritos, fallidos, path = save_tvshow(item, itemlist)
if not insertados and not sobreescritos and not fallidos: if not insertados and not sobreescritos and not fallidos:
platformtools.dialog_ok("Videoteca", "ERROR, la serie NO se ha añadido a la videoteca", platformtools.dialog_ok(config.get_localized_string(30131), config.get_localized_string(60067))
"No se ha podido obtener ningun episodio")
logger.error("La serie %s no se ha podido añadir a la videoteca. No se ha podido obtener ningun episodio" logger.error("La serie %s no se ha podido añadir a la videoteca. No se ha podido obtener ningun episodio"
% item.show) % item.show)
elif fallidos == -1: elif fallidos == -1:
platformtools.dialog_ok("Videoteca", "ERROR, la serie NO se ha añadido a la videoteca") platformtools.dialog_ok(config.get_localized_string(30131), config.get_localized_string(60068))
logger.error("La serie %s no se ha podido añadir a la videoteca" % item.show) logger.error("La serie %s no se ha podido añadir a la videoteca" % item.show)
elif fallidos > 0: elif fallidos > 0:
platformtools.dialog_ok("Videoteca", "ERROR, la serie NO se ha añadido completa a la videoteca") platformtools.dialog_ok(config.get_localized_string(30131), config.get_localized_string(60069))
logger.error("No se han podido añadir %s episodios de la serie %s a la videoteca" % (fallidos, item.show)) logger.error("No se han podido añadir %s episodios de la serie %s a la videoteca" % (fallidos, item.show))
else: else:
platformtools.dialog_ok("Videoteca", "La serie se ha añadido a la videoteca") platformtools.dialog_ok(config.get_localized_string(30131), config.get_localized_string(60070))
logger.info("Se han añadido %s episodios de la serie %s a la videoteca" % logger.info("Se han añadido %s episodios de la serie %s a la videoteca" %
(insertados, item.show)) (insertados, item.show))
if config.is_xbmc(): if config.is_xbmc():
+5 -5
View File
@@ -134,13 +134,13 @@ def open_settings():
if settings_post['adult_aux_new_password1'] == settings_post['adult_aux_new_password2']: if settings_post['adult_aux_new_password1'] == settings_post['adult_aux_new_password2']:
set_setting('adult_password', settings_post['adult_aux_new_password1']) set_setting('adult_password', settings_post['adult_aux_new_password1'])
else: else:
platformtools.dialog_ok("Canales para adultos", platformtools.dialog_ok(config.get_localized_string(60305),
"Los campos 'Nueva contraseña' y 'Confirmar nueva contraseña' no coinciden." config.get_localized_string(60306),
, "Entre de nuevo en 'Preferencias' para cambiar la contraseña") config.get_localized_string(60307))
else: else:
platformtools.dialog_ok("Canales para adultos", "La contraseña no es correcta.", platformtools.dialog_ok(config.get_localized_string(60305), config.get_localized_string(60309),
"Los cambios realizados en esta sección no se guardaran.") config.get_localized_string(60310))
# Deshacer cambios # Deshacer cambios
set_setting("adult_mode", settings_pre.get("adult_mode", 0)) set_setting("adult_mode", settings_pre.get("adult_mode", 0))
+12 -17
View File
@@ -101,7 +101,7 @@ def run(item=None):
elif item.action == "script": elif item.action == "script":
from core import tmdb from core import tmdb
if tmdb.drop_bd(): if tmdb.drop_bd():
platformtools.dialog_notification("Alfa", "caché eliminada", time=2000, sound=False) platformtools.dialog_notification(config.get_localized_string(20000), config.get_localized_string(60011), time=2000, sound=False)
# Action in certain channel specified in "action" and "channel" parameters # Action in certain channel specified in "action" and "channel" parameters
else: else:
@@ -113,7 +113,7 @@ def run(item=None):
# Parental control # Parental control
# If it is an adult channel, and user has configured pin, asks for it # If it is an adult channel, and user has configured pin, asks for it
if channeltools.is_adult(item.channel) and config.get_setting("adult_request_password"): if channeltools.is_adult(item.channel) and config.get_setting("adult_request_password"):
tecleado = platformtools.dialog_input("", "Contraseña para canales de adultos", True) tecleado = platformtools.dialog_input("", config.get_localized_string(60334), True)
if tecleado is None or tecleado != config.get_setting("adult_password"): if tecleado is None or tecleado != config.get_setting("adult_password"):
return return
@@ -168,7 +168,7 @@ def run(item=None):
# If not, shows user an error message # If not, shows user an error message
else: else:
platformtools.dialog_ok("alfa", "No hay nada para reproducir") platformtools.dialog_ok(config.get_localized_string(20000), config.get_localized_string(60339))
# If player don't have a "play" function, not uses the standard play from platformtools # If player don't have a "play" function, not uses the standard play from platformtools
else: else:
@@ -280,10 +280,8 @@ def run(item=None):
canal = scrapertools.find_single_match(traceback.format_exc(), patron) canal = scrapertools.find_single_match(traceback.format_exc(), patron)
platformtools.dialog_ok( platformtools.dialog_ok(
"Error en el canal " + canal, config.get_localized_string(70093) + canal,
"La web de la que depende parece no estar disponible, puede volver a intentarlo, " config.get_localized_string(60013) %(e))
"si el problema persiste verifique mediante un navegador la web: %s. "
"Si la web funciona correctamente informe el error en: www.alfa-addon.com" %(e))
except: except:
import traceback import traceback
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
@@ -298,20 +296,17 @@ def run(item=None):
log_name = "xbmc.log" log_name = "xbmc.log"
else: else:
log_name = "kodi.log" log_name = "kodi.log"
log_message = "Ruta: " + xbmc.translatePath("special://logpath") + log_name log_message = config.get_localized_string(50004) + xbmc.translatePath("special://logpath") + log_name
except: except:
log_message = "" log_message = ""
if canal: if canal:
platformtools.dialog_ok( platformtools.dialog_ok(
"Error inesperado en el canal " + canal, config.get_localized_string(70093) + canal,
"Puede deberse a un fallo de conexión, la web del canal " config.get_localized_string(60014), log_message)
"ha cambiado su estructura, o un error interno de alfa.",
"Para saber más detalles, consulta el log.", log_message)
else: else:
platformtools.dialog_ok( platformtools.dialog_ok(
"Se ha producido un error en alfa", config.get_localized_string(59984),
"Comprueba el log para ver mas detalles del error.",
log_message) log_message)
@@ -327,8 +322,8 @@ def reorder_itemlist(itemlist):
modified = 0 modified = 0
not_modified = 0 not_modified = 0
to_change = [['Ver en', '[V]'], to_change = [[config.get_localized_string(60335), '[V]'],
['Descargar en', '[D]']] [config.get_localized_string(60336), '[D]']]
for item in itemlist: for item in itemlist:
old_title = unicode(item.title, "utf8").lower().encode("utf8") old_title = unicode(item.title, "utf8").lower().encode("utf8")
@@ -415,7 +410,7 @@ def play_from_library(item):
else: else:
# Ventana emergente # Ventana emergente
from channels import videolibrary from channels import videolibrary
p_dialog = platformtools.dialog_progress_bg('alfa', 'Cargando...') p_dialog = platformtools.dialog_progress_bg(config.get_localized_string(20000), config.get_localized_string(70004))
p_dialog.update(0, '') p_dialog.update(0, '')
itemlist = videolibrary.findvideos(item) itemlist = videolibrary.findvideos(item)
+36 -36
View File
@@ -118,7 +118,7 @@ def render_items(itemlist, parent_item):
# Si no hay ningun item, mostramos un aviso # Si no hay ningun item, mostramos un aviso
if not len(itemlist): if not len(itemlist):
itemlist.append(Item(title="No hay elementos que mostrar")) itemlist.append(Item(title=config.get_localized_string(60347)))
genre = False genre = False
if 'nero' in parent_item.title: if 'nero' in parent_item.title:
@@ -437,7 +437,7 @@ def set_context_commands(item, parent_item):
if item.action and item.action not in ["add_pelicula_to_library", "add_serie_to_library", "buscartrailer"]: if item.action and item.action not in ["add_pelicula_to_library", "add_serie_to_library", "buscartrailer"]:
# Mostrar informacion: si el item tiene plot suponemos q es una serie, temporada, capitulo o pelicula # Mostrar informacion: si el item tiene plot suponemos q es una serie, temporada, capitulo o pelicula
if item.infoLabels['plot'] and (num_version_xbmc < 17.0 or item.contentType == 'season'): if item.infoLabels['plot'] and (num_version_xbmc < 17.0 or item.contentType == 'season'):
context_commands.append(("Información", "XBMC.Action(Info)")) context_commands.append((config.get_localized_string(60348), "XBMC.Action(Info)"))
# ExtendedInfo: Si esta instalado el addon y se cumplen una serie de condiciones # ExtendedInfo: Si esta instalado el addon y se cumplen una serie de condiciones
if xbmc.getCondVisibility('System.HasAddon(script.extendedinfo)') \ if xbmc.getCondVisibility('System.HasAddon(script.extendedinfo)') \
@@ -482,7 +482,7 @@ def set_context_commands(item, parent_item):
# Ir al Menu Principal (channel.mainlist) # Ir al Menu Principal (channel.mainlist)
if parent_item.channel not in ["news", "channelselector"] and item.action != "mainlist" \ if parent_item.channel not in ["news", "channelselector"] and item.action != "mainlist" \
and parent_item.action != "mainlist": and parent_item.action != "mainlist":
context_commands.append(("Ir al Menu Principal", "XBMC.Container.Refresh (%s?%s)" % context_commands.append((config.get_localized_string(60349), "XBMC.Container.Refresh (%s?%s)" %
(sys.argv[0], Item(channel=item.channel, action="mainlist").tourl()))) (sys.argv[0], Item(channel=item.channel, action="mainlist").tourl())))
# Añadir a Favoritos # Añadir a Favoritos
@@ -514,7 +514,7 @@ def set_context_commands(item, parent_item):
item.wanted = item.contentSerieName item.wanted = item.contentSerieName
else: else:
item.wanted = item.contentTitle item.wanted = item.contentTitle
context_commands.append(("[COLOR yellow]Buscar en otros canales[/COLOR]", context_commands.append((config.get_localized_string(60350),
"XBMC.Container.Update (%s?%s)" % (sys.argv[0], "XBMC.Container.Update (%s?%s)" % (sys.argv[0],
item.clone(channel='search', item.clone(channel='search',
action="do_search", action="do_search",
@@ -524,7 +524,7 @@ def set_context_commands(item, parent_item):
# Definir como Pagina de inicio # Definir como Pagina de inicio
if config.get_setting('start_page'): if config.get_setting('start_page'):
if item.action not in ['findvideos', 'play']: if item.action not in ['findvideos', 'play']:
context_commands.insert(0, ("[COLOR 0xffccff00]Definir como pagina de inicio[/COLOR]", context_commands.insert(0, (config.get_localized_string(60351),
"XBMC.RunPlugin(%s?%s)" % ( "XBMC.RunPlugin(%s?%s)" % (
sys.argv[0], Item(channel='side_menu', sys.argv[0], Item(channel='side_menu',
action="set_custom_start", action="set_custom_start",
@@ -533,19 +533,19 @@ def set_context_commands(item, parent_item):
if item.channel != "videolibrary": if item.channel != "videolibrary":
# Añadir Serie a la videoteca # Añadir Serie a la videoteca
if item.action in ["episodios", "get_episodios"] and item.contentSerieName: if item.action in ["episodios", "get_episodios"] and item.contentSerieName:
context_commands.append(("Añadir Serie a Videoteca", "XBMC.RunPlugin(%s?%s)" % context_commands.append((config.get_localized_string(60352), "XBMC.RunPlugin(%s?%s)" %
(sys.argv[0], item.clone(action="add_serie_to_library", (sys.argv[0], item.clone(action="add_serie_to_library",
from_action=item.action).tourl()))) from_action=item.action).tourl())))
# Añadir Pelicula a videoteca # Añadir Pelicula a videoteca
elif item.action in ["detail", "findvideos"] and item.contentType == 'movie' and item.contentTitle: elif item.action in ["detail", "findvideos"] and item.contentType == 'movie' and item.contentTitle:
context_commands.append(("Añadir Pelicula a Videoteca", "XBMC.RunPlugin(%s?%s)" % context_commands.append((config.get_localized_string(60353), "XBMC.RunPlugin(%s?%s)" %
(sys.argv[0], item.clone(action="add_pelicula_to_library", (sys.argv[0], item.clone(action="add_pelicula_to_library",
from_action=item.action).tourl()))) from_action=item.action).tourl())))
if item.channel != "downloads": if item.channel != "downloads":
# Descargar pelicula # Descargar pelicula
if item.contentType == "movie" and item.contentTitle: if item.contentType == "movie" and item.contentTitle:
context_commands.append(("Descargar Pelicula", "XBMC.RunPlugin(%s?%s)" % context_commands.append((config.get_localized_string(60354), "XBMC.RunPlugin(%s?%s)" %
(sys.argv[0], item.clone(channel="downloads", action="save_download", (sys.argv[0], item.clone(channel="downloads", action="save_download",
from_channel=item.channel, from_action=item.action) from_channel=item.channel, from_action=item.action)
.tourl()))) .tourl())))
@@ -553,45 +553,45 @@ def set_context_commands(item, parent_item):
elif item.contentSerieName: elif item.contentSerieName:
# Descargar serie # Descargar serie
if item.contentType == "tvshow": if item.contentType == "tvshow":
context_commands.append(("Descargar Serie", "XBMC.RunPlugin(%s?%s)" % context_commands.append((config.get_localized_string(60355), "XBMC.RunPlugin(%s?%s)" %
(sys.argv[0], item.clone(channel="downloads", action="save_download", (sys.argv[0], item.clone(channel="downloads", action="save_download",
from_channel=item.channel, from_channel=item.channel,
from_action=item.action).tourl()))) from_action=item.action).tourl())))
# Descargar episodio # Descargar episodio
elif item.contentType == "episode": elif item.contentType == "episode":
context_commands.append(("Descargar Episodio", "XBMC.RunPlugin(%s?%s)" % context_commands.append((config.get_localized_string(60356), "XBMC.RunPlugin(%s?%s)" %
(sys.argv[0], item.clone(channel="downloads", action="save_download", (sys.argv[0], item.clone(channel="downloads", action="save_download",
from_channel=item.channel, from_channel=item.channel,
from_action=item.action).tourl()))) from_action=item.action).tourl())))
# Descargar temporada # Descargar temporada
elif item.contentType == "season": elif item.contentType == "season":
context_commands.append(("Descargar Temporada", "XBMC.RunPlugin(%s?%s)" % context_commands.append((config.get_localized_string(60357), "XBMC.RunPlugin(%s?%s)" %
(sys.argv[0], item.clone(channel="downloads", action="save_download", (sys.argv[0], item.clone(channel="downloads", action="save_download",
from_channel=item.channel, from_channel=item.channel,
from_action=item.action).tourl()))) from_action=item.action).tourl())))
# Abrir configuración # Abrir configuración
if parent_item.channel not in ["setting", "news", "search"]: if parent_item.channel not in ["setting", "news", "search"]:
context_commands.append(("Abrir Configuración", "XBMC.Container.Update(%s?%s)" % context_commands.append((config.get_localized_string(60358), "XBMC.Container.Update(%s?%s)" %
(sys.argv[0], Item(channel="setting", action="mainlist").tourl()))) (sys.argv[0], Item(channel="setting", action="mainlist").tourl())))
# Buscar Trailer # Buscar Trailer
if item.action == "findvideos" or "buscar_trailer" in context: if item.action == "findvideos" or "buscar_trailer" in context:
context_commands.append(("Buscar Trailer", "XBMC.RunPlugin(%s?%s)" % (sys.argv[0], item.clone( context_commands.append((config.get_localized_string(60359), "XBMC.RunPlugin(%s?%s)" % (sys.argv[0], item.clone(
channel="trailertools", action="buscartrailer", contextual=True).tourl()))) channel="trailertools", action="buscartrailer", contextual=True).tourl())))
# Añadir SuperFavourites al menu contextual (1.0.53 o superior necesario) # Añadir SuperFavourites al menu contextual (1.0.53 o superior necesario)
sf_file_path = xbmc.translatePath("special://home/addons/plugin.program.super.favourites/LaunchSFMenu.py") sf_file_path = xbmc.translatePath("special://home/addons/plugin.program.super.favourites/LaunchSFMenu.py")
check_sf = os.path.exists(sf_file_path) check_sf = os.path.exists(sf_file_path)
if check_sf and xbmc.getCondVisibility('System.HasAddon("plugin.program.super.favourites")'): if check_sf and xbmc.getCondVisibility('System.HasAddon("plugin.program.super.favourites")'):
context_commands.append(("Super Favourites Menu", context_commands.append((config.get_localized_string(60361),
"XBMC.RunScript(special://home/addons/plugin.program.super.favourites/LaunchSFMenu.py)")) "XBMC.RunScript(special://home/addons/plugin.program.super.favourites/LaunchSFMenu.py)"))
context_commands = sorted(context_commands, key=lambda comand: comand[0]) context_commands = sorted(context_commands, key=lambda comand: comand[0])
# Menu Rapido # Menu Rapido
context_commands.insert(0, ("[COLOR 0xffccff00]<Menú Rápido>[/COLOR]", context_commands.insert(0, (config.get_localized_string(60360),
"XBMC.Container.Update (%s?%s)" % (sys.argv[0], Item(channel='side_menu', "XBMC.Container.Update (%s?%s)" % (sys.argv[0], Item(channel='side_menu',
action="open_menu", action="open_menu",
parent=parent_item.tourl()).tourl( parent=parent_item.tourl()).tourl(
@@ -755,7 +755,7 @@ def handle_wait(time_to_wait, title, text):
secs += 1 secs += 1
percent = increment * secs percent = increment * secs
secs_left = str((time_to_wait - secs)) secs_left = str((time_to_wait - secs))
remaining_display = ' Espera ' + secs_left + ' segundos para que comience el vídeo...' remaining_display = config.get_localized_string(70176) + secs_left + config.get_localized_string(70177)
espera.update(percent, ' ' + text, remaining_display) espera.update(percent, ' ' + text, remaining_display)
xbmc.sleep(1000) xbmc.sleep(1000)
if espera.iscanceled(): if espera.iscanceled():
@@ -835,13 +835,13 @@ def get_dialogo_opciones(item, default_action, strm, autoplay):
if not autoplay: if not autoplay:
if item.server != "": if item.server != "":
if "<br/>" in motivo: if "<br/>" in motivo:
dialog_ok("No puedes ver ese vídeo porque...", motivo.split("<br/>")[0], motivo.split("<br/>")[1], dialog_ok(config.get_localized_string(60362), motivo.split("<br/>")[0], motivo.split("<br/>")[1],
item.url) item.url)
else: else:
dialog_ok("No puedes ver ese vídeo porque...", motivo, item.url) dialog_ok(config.get_localized_string(60362), motivo, item.url)
else: else:
dialog_ok("No puedes ver ese vídeo porque...", "El servidor donde está alojado no está", dialog_ok(config.get_localized_string(60362), config.get_localized_string(60363),
"soportado en alfa todavía", item.url) config.get_localized_string(60364), item.url)
if item.channel == "favorites": if item.channel == "favorites":
# "Quitar de favoritos" # "Quitar de favoritos"
@@ -935,7 +935,7 @@ def get_video_seleccionado(item, seleccion, video_urls):
# Si hay un tiempo de espera (como en megaupload), lo impone ahora # Si hay un tiempo de espera (como en megaupload), lo impone ahora
if wait_time > 0: if wait_time > 0:
continuar = handle_wait(wait_time, item.server, "Cargando vídeo...") continuar = handle_wait(wait_time, item.server, config.get_localized_string(60365))
if not continuar: if not continuar:
mediaurl = "" mediaurl = ""
@@ -1016,9 +1016,9 @@ def torrent_client_installed(show_tuple=False):
for client in torrent_clients: for client in torrent_clients:
if xbmc.getCondVisibility('System.HasAddon("%s")' % client["id"]): if xbmc.getCondVisibility('System.HasAddon("%s")' % client["id"]):
if show_tuple: if show_tuple:
torrent_options.append(["Plugin externo: %s" % client["name"], client["url"]]) torrent_options.append([config.get_localized_string(60366) % client["name"], client["url"]])
else: else:
torrent_options.append("Plugin externo: %s" % client["name"]) torrent_options.append(config.get_localized_string(60366) % client["name"])
return torrent_options return torrent_options
@@ -1035,12 +1035,12 @@ def play_torrent(item, xlistitem, mediaurl):
if torrent_client and torrent_client - 1 <= len(torrent_options): if torrent_client and torrent_client - 1 <= len(torrent_options):
if torrent_client == 0: if torrent_client == 0:
seleccion = dialog_select("Abrir torrent con...", [opcion[0] for opcion in torrent_options]) seleccion = dialog_select(config.get_localized_string(70193), [opcion[0] for opcion in torrent_options])
else: else:
seleccion = torrent_client - 1 seleccion = torrent_client - 1
else: else:
if len(torrent_options) > 1: if len(torrent_options) > 1:
seleccion = dialog_select("Abrir torrent con...", [opcion[0] for opcion in torrent_options]) seleccion = dialog_select(config.get_localized_string(70193), [opcion[0] for opcion in torrent_options])
else: else:
seleccion = 0 seleccion = 0
@@ -1068,10 +1068,10 @@ def play_torrent(item, xlistitem, mediaurl):
# Iniciamos el cliente: # Iniciamos el cliente:
c = Client(url=mediaurl, is_playing_fnc=xbmc_player.isPlaying, wait_time=None, timeout=10, c = Client(url=mediaurl, is_playing_fnc=xbmc_player.isPlaying, wait_time=None, timeout=10,
temp_path=os.path.join(client_tmp_path, "alfa-torrent"), print_status=debug) temp_path=os.path.join(client_tmp_path, config.get_localized_string(70194)), print_status=debug)
# Mostramos el progreso # Mostramos el progreso
progreso = dialog_progress("Alfa - Torrent", "Iniciando...") progreso = dialog_progress(config.get_localized_string(70195), config.get_localized_string(70196))
# Mientras el progreso no sea cancelado ni el cliente cerrado # Mientras el progreso no sea cancelado ni el cliente cerrado
while not c.closed: while not c.closed:
@@ -1092,7 +1092,7 @@ def play_torrent(item, xlistitem, mediaurl):
(s.progress_file, s.file_size, s.str_state, s._download_rate) (s.progress_file, s.file_size, s.str_state, s._download_rate)
txt2 = 'S: %d(%d) P: %d(%d)' % (s.num_seeds, s.num_complete, s.num_peers, s.num_incomplete) txt2 = 'S: %d(%d) P: %d(%d)' % (s.num_seeds, s.num_complete, s.num_peers, s.num_incomplete)
try: try:
txt3 = 'Deteniendo automaticamente en: %ss' % (int(s.timeout)) txt3 = config.get_localized_string(70197) % (int(s.timeout))
except: except:
txt3 = '' txt3 = ''
@@ -1102,21 +1102,21 @@ def play_torrent(item, xlistitem, mediaurl):
if progreso.iscanceled(): if progreso.iscanceled():
progreso.close() progreso.close()
if s.buffer == 100: if s.buffer == 100:
if dialog_yesno("Alfa - Torrent", "¿Deseas iniciar la reproduccion?"): if dialog_yesno(config.get_localized_string(70195), config.get_localized_string(70198)):
played = False played = False
progreso = dialog_progress("Alfa - Torrent", "") progreso = dialog_progress(config.get_localized_string(70195), "")
progreso.update(s.buffer, txt, txt2, txt3) progreso.update(s.buffer, txt, txt2, txt3)
else: else:
progreso = dialog_progress("Alfa - Torrent", "") progreso = dialog_progress(config.get_localized_string(70195), "")
break break
else: else:
if dialog_yesno("Alfa - Torrent", "¿Deseas cancelar el proceso?"): if dialog_yesno(config.get_localized_string(70195), config.get_localized_string(70199)):
progreso = dialog_progress("Alfa - Torrent", "") progreso = dialog_progress(config.get_localized_string(70195), "")
break break
else: else:
progreso = dialog_progress("Alfa - Torrent", "") progreso = dialog_progress(config.get_localized_string(70195), "")
progreso.update(s.buffer, txt, txt2, txt3) progreso.update(s.buffer, txt, txt2, txt3)
# Si el buffer se ha llenado y la reproduccion no ha sido iniciada, se inicia # Si el buffer se ha llenado y la reproduccion no ha sido iniciada, se inicia
@@ -1147,7 +1147,7 @@ def play_torrent(item, xlistitem, mediaurl):
time.sleep(1) time.sleep(1)
# Cuando este cerrado, Volvemos a mostrar el dialogo # Cuando este cerrado, Volvemos a mostrar el dialogo
progreso = dialog_progress("Alfa - Torrent", "") progreso = dialog_progress(config.get_localized_string(70195), "")
progreso.update(s.buffer, txt, txt2, txt3) progreso.update(s.buffer, txt, txt2, txt3)
except: except:
@@ -1155,7 +1155,7 @@ def play_torrent(item, xlistitem, mediaurl):
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
break break
progreso.update(100, "Terminando y eliminando datos", " ", " ") progreso.update(100, config.get_localized_string(70200), " ", " ")
# Detenemos el cliente # Detenemos el cliente
if not c.closed: if not c.closed:
+3
View File
@@ -204,6 +204,7 @@ def set_lang(language):
#logger.info() #logger.info()
cast =['castellano','espanol','cast','esp','espaol', 'es','zc', 'spa', 'spanish', 'vc'] cast =['castellano','espanol','cast','esp','espaol', 'es','zc', 'spa', 'spanish', 'vc']
ita =['italiano','italian','ita','it']
lat=['latino','lat','la', 'espanol latino', 'espaol latino', 'zl', 'mx', 'co', 'vl'] lat=['latino','lat','la', 'espanol latino', 'espaol latino', 'zl', 'mx', 'co', 'vl']
vose=['subtitulado','subtitulada','sub','sub espanol','vose','espsub','su','subs castellano', vose=['subtitulado','subtitulada','sub','sub espanol','vose','espsub','su','subs castellano',
'sub: español', 'vs', 'zs', 'vs', 'english-spanish subs', 'ingles sub espanol'] 'sub: español', 'vs', 'zs', 'vs', 'english-spanish subs', 'ingles sub espanol']
@@ -222,6 +223,8 @@ def set_lang(language):
language = 'cast' language = 'cast'
elif language in lat: elif language in lat:
language = 'lat' language = 'lat'
elif language in ita:
language = 'ita'
elif language in vose: elif language in vose:
language = 'vose' language = 'vose'
elif language in vos: elif language in vos:
@@ -208,8 +208,8 @@ def sync_trakt_kodi(silent=True):
logger.info("Sincronizacion con Trakt iniciada") logger.info("Sincronizacion con Trakt iniciada")
if notificacion: if notificacion:
platformtools.dialog_notification("Alfa", platformtools.dialog_notification(config.get_localized_string(20000),
"Sincronizacion con Trakt iniciada", config.get_localized_string(60045),
icon=0, icon=0,
time=2000) time=2000)
@@ -440,17 +440,15 @@ def set_content(content_type, silent=False):
videolibrarypath = config.get_setting("videolibrarypath") videolibrarypath = config.get_setting("videolibrarypath")
if content_type == 'movie': if content_type == 'movie':
scraper = ["The Movie Database", "Universal Movie Scraper"] scraper = [config.get_localized_string(70093), config.get_localized_string(70096)]
seleccion = platformtools.dialog_select("Seleccione el scraper para las películas", scraper) seleccion = platformtools.dialog_select(config.get_localized_string(70094), scraper)
# Instalar The Movie Database # Instalar The Movie Database
if seleccion == -1 or seleccion == 0: if seleccion == -1 or seleccion == 0:
if not xbmc.getCondVisibility('System.HasAddon(metadata.themoviedb.org)'): if not xbmc.getCondVisibility('System.HasAddon(metadata.themoviedb.org)'):
if not silent: if not silent:
# Preguntar si queremos instalar metadata.themoviedb.org # Preguntar si queremos instalar metadata.themoviedb.org
install = platformtools.dialog_yesno("The Movie Database", install = platformtools.dialog_yesno(config.get_localized_string(60046))
"No se ha encontrado el Scraper de películas de TheMovieDB.",
"¿Desea instalarlo ahora?")
else: else:
install = True install = True
@@ -464,7 +462,7 @@ def set_content(content_type, silent=False):
continuar = (install and xbmc.getCondVisibility('System.HasAddon(metadata.themoviedb.org)')) continuar = (install and xbmc.getCondVisibility('System.HasAddon(metadata.themoviedb.org)'))
if not continuar: if not continuar:
msg_text = "The Movie Database no instalado." msg_text = config.get_localized_string(60047)
if continuar: if continuar:
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.themoviedb.org)', True) xbmc.executebuiltin('xbmc.addon.opensettings(metadata.themoviedb.org)', True)
@@ -474,9 +472,7 @@ def set_content(content_type, silent=False):
continuar = False continuar = False
if not silent: if not silent:
# Preguntar si queremos instalar metadata.universal # Preguntar si queremos instalar metadata.universal
install = platformtools.dialog_yesno("Universal Movie Scraper", install = platformtools.dialog_yesno(config.get_localized_string(70095))
"No se ha encontrado el Scraper de series de TheMovieDB.",
"¿Desea instalarlo ahora?")
else: else:
install = True install = True
@@ -490,22 +486,20 @@ def set_content(content_type, silent=False):
continuar = (install and continuar) continuar = (install and continuar)
if not continuar: if not continuar:
msg_text = "Universal Movie Scraper no instalado." msg_text = config.get_localized_string(70097)
if continuar: if continuar:
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.universal)', True) xbmc.executebuiltin('xbmc.addon.opensettings(metadata.universal)', True)
else: # SERIES else: # SERIES
scraper = ["The TVDB", "The Movie Database"] scraper = [config.get_localized_string(70098), config.get_localized_string(70093)]
seleccion = platformtools.dialog_select("Seleccione el scraper para las series", scraper) seleccion = platformtools.dialog_select(config.get_localized_string(70107), scraper)
# Instalar The TVDB # Instalar The TVDB
if seleccion == -1 or seleccion == 0: if seleccion == -1 or seleccion == 0:
if not xbmc.getCondVisibility('System.HasAddon(metadata.tvdb.com)'): if not xbmc.getCondVisibility('System.HasAddon(metadata.tvdb.com)'):
if not silent: if not silent:
# Preguntar si queremos instalar metadata.tvdb.com # Preguntar si queremos instalar metadata.tvdb.com
install = platformtools.dialog_yesno("The TVDB", install = platformtools.dialog_yesno(config.get_localized_string(60048))
"No se ha encontrado el Scraper de series de The TVDB.",
"¿Desea instalarlo ahora?")
else: else:
install = True install = True
@@ -519,7 +513,7 @@ def set_content(content_type, silent=False):
continuar = (install and xbmc.getCondVisibility('System.HasAddon(metadata.tvdb.com)')) continuar = (install and xbmc.getCondVisibility('System.HasAddon(metadata.tvdb.com)'))
if not continuar: if not continuar:
msg_text = "The TVDB no instalado." msg_text = config.get_localized_string(70099)
if continuar: if continuar:
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.tvdb.com)', True) xbmc.executebuiltin('xbmc.addon.opensettings(metadata.tvdb.com)', True)
@@ -529,9 +523,7 @@ def set_content(content_type, silent=False):
continuar = False continuar = False
if not silent: if not silent:
# Preguntar si queremos instalar metadata.tvshows.themoviedb.org # Preguntar si queremos instalar metadata.tvshows.themoviedb.org
install = platformtools.dialog_yesno("The Movie Database", install = platformtools.dialog_yesno(config.get_localized_string(70100))
"No se ha encontrado el Scraper de series de TheMovieDB.",
"¿Desea instalarlo ahora?")
else: else:
install = True install = True
@@ -546,7 +538,7 @@ def set_content(content_type, silent=False):
continuar = (install and continuar) continuar = (install and continuar)
if not continuar: if not continuar:
msg_text = "The Movie Database no instalado." msg_text = config.get_localized_string(60047)
if continuar: if continuar:
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.tvshows.themoviedb.org)', True) xbmc.executebuiltin('xbmc.addon.opensettings(metadata.tvshows.themoviedb.org)', True)
@@ -594,7 +586,7 @@ def set_content(content_type, silent=False):
idParentPath = idPath idParentPath = idPath
idPath += 1 idPath += 1
else: else:
msg_text = "Error al fijar videolibrarypath en BD" msg_text = config.get_localized_string(70101)
if continuar: if continuar:
continuar = False continuar = False
@@ -647,7 +639,7 @@ def set_content(content_type, silent=False):
else: else:
if not silent: if not silent:
# Preguntar si queremos configurar themoviedb.org como opcion por defecto # Preguntar si queremos configurar themoviedb.org como opcion por defecto
actualizar = platformtools.dialog_yesno("The TVDB", strActualizar) actualizar = platformtools.dialog_yesno(config.get_localized_string(70098), strActualizar)
else: else:
actualizar = True actualizar = True
@@ -663,17 +655,17 @@ def set_content(content_type, silent=False):
continuar = True continuar = True
if not continuar: if not continuar:
msg_text = "Error al configurar el scraper en la BD." msg_text = config.get_localized_string(60055)
if not continuar: if not continuar:
heading = "Videoteca %s no configurada" % content_type heading = config.get_localized_string(70102) % content_type
elif content_type == 'SERIES' and not xbmc.getCondVisibility( elif content_type == 'SERIES' and not xbmc.getCondVisibility(
'System.HasAddon(metadata.tvshows.themoviedb.org)'): 'System.HasAddon(metadata.tvshows.themoviedb.org)'):
heading = "Videoteca %s configurada" % content_type heading = config.get_localized_string(70103) % content_type
msg_text = "Es necesario reiniciar Kodi para que los cambios surtan efecto." msg_text = config.get_localized_string(60058)
else: else:
heading = "Videoteca %s configurada" % content_type heading = config.get_localized_string(70103) % content_type
msg_text = "Felicidades la videoteca de Kodi ha sido configurada correctamente." msg_text = config.get_localized_string(70104)
platformtools.dialog_notification(heading, msg_text, icon=1, time=3000) platformtools.dialog_notification(heading, msg_text, icon=1, time=3000)
logger.info("%s: %s" % (heading, msg_text)) logger.info("%s: %s" % (heading, msg_text))
@@ -824,9 +816,9 @@ def ask_set_content(flag, silent=False):
add_sources(config.get_setting("downloadpath")) add_sources(config.get_setting("downloadpath"))
if not silent: if not silent:
heading = "Alfa Auto-configuración" heading = config.get_localized_string(59971)
linea1 = "¿Desea que Alfa auto-configure la videoteca de Kodi? Se le pedirá que configure los scrapers para las películas y las series." linea1 = config.get_localized_string(70105)
linea2 = "Si pulsa 'No', podra hacerlo desde 'Configuración > Preferencia > Rutas'." linea2 = config.get_localized_string(70106)
if platformtools.dialog_yesno(heading, linea1, linea2): if platformtools.dialog_yesno(heading, linea1, linea2):
do_config() do_config()
else: else:
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+68 -68
View File
@@ -1,121 +1,121 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings> <settings>
<category label="General"> <category label="$ADDON[plugin.video.alfa 70168]">
<setting id="player_mode" type="enum" values="Direct|SetResolvedUrl|Built-In|Download and Play" label="30044" default="0"/> <setting id="player_mode" type="enum" values="Direct|SetResolvedUrl|Built-In|Download and Play" label="$ADDON[plugin.video.alfa 30044]" default="0"/>
<setting id="default_action" type="enum" lvalues="30006|30007|30008" label="30005" default="0"/> <setting id="default_action" type="enum" lvalues="30006|30007|30008" label="$ADDON[plugin.video.alfa 30005]" default="0"/>
<setting id="thumbnail_type" type="enum" lvalues="30011|30012|30200" label="30010" default="2"/> <setting id="thumbnail_type" type="enum" lvalues="30011|30012|30200" label="$ADDON[plugin.video.alfa 30010]" default="2"/>
<setting id="channel_language" type="labelenum" values="all|cast|lat" label="30019" default="all"/> <setting id="channel_language" type="labelenum" values="all|cast|lat|ita" label="$ADDON[plugin.video.alfa 30019]" default="all"/>
<setting id="trakt_sync" type="bool" label="Sincronizar con Trakt.tv (Debes tener una cuenta)" default="false"/> <setting id="trakt_sync" type="bool" label="$ADDON[plugin.video.alfa 70109]" default="false"/>
<setting id="forceview" type="bool" label="30043" default="false"/> <setting id="forceview" type="bool" label="$ADDON[plugin.video.alfa 30043]" default="false"/>
<setting id="faster_item_serialization" type="bool" label="30300" default="false"/> <setting id="faster_item_serialization" type="bool" label="$ADDON[plugin.video.alfa 30300]" default="false"/>
<setting id="debug" type="bool" label="30003" default="false"/> <setting id="debug" type="bool" label="$ADDON[plugin.video.alfa 30003]" default="false"/>
<setting label="Uso de servidores" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 70169]" type="lsep"/>
<setting id="resolve_priority" type="enum" label="Método prioritario" values="Free primero|Premium primero|Debriders primero" default="0"/> <setting id="resolve_priority" type="enum" label="$ADDON[plugin.video.alfa 70110]" lvalues="70164|70165|70166" default="0"/>
<setting id="resolve_stop" type="bool" label="Dejar de buscar cuando encuentre una opción" default="true"/> <setting id="resolve_stop" type="bool" label="$ADDON[plugin.video.alfa 70111]" default="true"/>
<setting id="hidepremium" type="bool" label="Ocultar servidores de pago sin cuenta" default="false"/> <setting id="hidepremium" type="bool" label="$ADDON[plugin.video.alfa 70112]" default="false"/>
<setting type="sep"/> <setting type="sep"/>
<setting label="Canales para adultos" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 60305]" type="lsep"/>
<setting id="adult_aux_intro_password" type="text" label="Contraseña (por defecto 0000):" option="hidden" default=""/> <setting id="adult_aux_intro_password" type="text" label="$ADDON[plugin.video.alfa 70113]" option="hidden" default=""/>
<setting id="adult_mode" type="enum" values="Nunca|Siempre|Solo hasta que se reinicie Kodi" label="30002" enable="!eq(-1,)" default="0"/> <setting id="adult_mode" type="enum" lvalues="60602|60616|70114" label="$ADDON[plugin.video.alfa 30002]" enable="!eq(-1,)" default="0"/>
<setting id="adult_request_password" type="bool" label="Solicitar contraseña para abrir canales de adultos" enable="!eq(-1,0)+!eq(-2,)" default="true"/> <setting id="adult_request_password" type="bool" label="$ADDON[plugin.video.alfa 70115]" enable="!eq(-1,0)+!eq(-2,)" default="true"/>
<setting id="adult_aux_new_password1" type="text" label="Nueva contraseña:" option="hidden" enable="!eq(-3,)" default=""/> <setting id="adult_aux_new_password1" type="text" label="$ADDON[plugin.video.alfa 70116]" option="hidden" enable="!eq(-3,)" default=""/>
<setting id="adult_aux_new_password2" type="text" label="Confirmar nueva contraseña:" option="hidden" enable="!eq(-1,)" default=""/> <setting id="adult_aux_new_password2" type="text" label="$ADDON[plugin.video.alfa 70117]" option="hidden" enable="!eq(-1,)" default=""/>
</category> </category>
<!-- Path downloads --> <!-- Path downloads -->
<category label="30501"> <category label="$ADDON[plugin.video.alfa 30501]">
<setting id="downloadpath" type="folder" label="30017" default=""/> <setting id="downloadpath" type="folder" label="$ADDON[plugin.video.alfa 30017]" default=""/>
<setting id="downloadlistpath" type="folder" label="30018" default=""/> <setting id="downloadlistpath" type="folder" label="$ADDON[plugin.video.alfa 30018]" default=""/>
<setting id="videolibrarypath" type="folder" label="30067" default=""/> <setting id="videolibrarypath" type="folder" label="$ADDON[plugin.video.alfa 30067]" default=""/>
<setting type="sep"/> <setting type="sep"/>
<setting label="30131" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 30131]" type="lsep"/>
<setting id="folder_tvshows" type="text" label="Nombre de carpeta para 'Series'" default="SERIES"/> <setting id="folder_tvshows" type="text" label="$ADDON[plugin.video.alfa 70118]" default="SERIES"/>
<setting id="folder_movies" type="text" label="Nombre de carpeta para 'Peliculas'" default="CINE"/> <setting id="folder_movies" type="text" label="$ADDON[plugin.video.alfa 70119]" default="CINE"/>
<setting id="videolibrary_kodi_flag" type="number" label="" default="0" visible="false"/> <setting id="videolibrary_kodi_flag" type="number" label="" default="0" visible="false"/>
<setting id="videolibrary_kodi" type="bool" label="Autoconfigurar videoteca de XBMC/Kodi para contenido de Alfa" enable="lt(-1,2)+eq(0,false)" default="false"/> <setting id="videolibrary_kodi" type="bool" label="$ADDON[plugin.video.alfa 70120]" enable="lt(-1,2)+eq(0,false)" default="false"/>
</category> </category>
<category label="Pagina de inicio"> <category label="$ADDON[plugin.video.alfa 70121]">
<setting id="start_page" type="bool" label="Activar pagina de inicio" default="false"/> <setting id="start_page" type="bool" label="$ADDON[plugin.video.alfa 70121]" default="false"/>
<setting id="custom_start" type="bool" label="Personalizado (seleccionar desde un canal)" default="false" <setting id="custom_start" type="bool" label="$ADDON[plugin.video.alfa 70122]" default="false"
visible="eq(-1,True)"/> visible="eq(-1,True)"/>
<setting id="news_start" type="bool" label="Mostrar Novedades" default="false" visible="eq(-2,True)" <setting id="news_start" type="bool" label="$ADDON[plugin.video.alfa 70123]" default="false" visible="eq(-2,True)"
enable="eq(-1,False)+eq(-2,True"/> enable="eq(-1,False)+eq(-2,True"/>
<setting id="category" type="labelenum" label="Categoria" <setting id="category" type="labelenum" label="$ADDON[plugin.video.alfa 70124]"
values="Peliculas|Series|Anime|Infantiles|Documentales|Terror|Castellano|Latino|Torrent" lvalues="70137|70136|70127|60269|60272|70013|70014|59976|70171"
default="Peliculas" visible="eq(-3,True)+eq(-1,True)+eq(-2,False)" enable="eq(-3,True)+eq(-1,True)+(-2,false)"/> default="$ADDON[plugin.video.alfa 70137]" visible="eq(-3,True)+eq(-1,True)+eq(-2,False)" enable="eq(-3,True)+eq(-1,True)+(-2,false)"/>
</category> </category>
<category label="Opciones Visuales"> <category label="$ADDON[plugin.video.alfa 70126]">
<setting id="icon_set" type="labelenum" label="Set de iconos" values="default|dark|angedam" default="default"/> <setting id="icon_set" type="labelenum" label="$ADDON[plugin.video.alfa 70108]" values="default|dark|angedam" default="default"/>
<setting id="infoplus_set" type="labelenum" label="Opción visual Infoplus" values="Sin animación|Con animación" default="Sin animación"/> <setting id="infoplus_set" type="labelenum" label="$ADDON[plugin.video.alfa 70128]" lvalues="70129|70130" default="$ADDON[plugin.video.alfa 70129]"/>
<setting id="video_thumbnail_type" type="enum" label="Thumbnail para videos" values="Poster|Logo del servidor" default="0"/> <setting id="video_thumbnail_type" type="enum" label="$ADDON[plugin.video.alfa 70131]" lvalues="70132|70133" default="0"/>
<setting label="Opciones para Titulos" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 70167]" type="lsep"/>
<setting id="unify" type="bool" label="Titulos Inteligentes" default="false"/> <setting id="unify" type="bool" label="$ADDON[plugin.video.alfa 70134]" default="false"/>
<setting id="title_color" type="bool" label="Colores Personalizados" default="false" visible="eq(-1,true)"/> <setting id="title_color" type="bool" label="$ADDON[plugin.video.alfa 70135]" default="false" visible="eq(-1,true)"/>
<setting id="movie_color" type="labelenum" label="Pelicula" <setting id="movie_color" type="labelenum" label="$ADDON[plugin.video.alfa 70137]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-1,true)+eq(-2,true)"/> default="white" visible="eq(-1,true)+eq(-2,true)"/>
<setting id="tvshow_color" type="labelenum" label="Serie" <setting id="tvshow_color" type="labelenum" label="$ADDON[plugin.video.alfa 70136]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-2,true)+eq(-3,true)"/> default="white" visible="eq(-2,true)+eq(-3,true)"/>
<setting id="year_color" type="labelenum" label="Año" <setting id="year_color" type="labelenum" label="$ADDON[plugin.video.alfa 60232]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-3,true)+eq(-4,true)"/> default="white" visible="eq(-3,true)+eq(-4,true)"/>
<setting id="rating_1_color" type="labelenum" label="Valoracion Baja" <setting id="rating_1_color" type="labelenum" label="$ADDON[plugin.video.alfa 70138]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-4,true)+eq(-5,true)"/> default="white" visible="eq(-4,true)+eq(-5,true)"/>
<setting id="rating_2_color" type="labelenum" label="Valoracion Media" <setting id="rating_2_color" type="labelenum" label="$ADDON[plugin.video.alfa 70139]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-5,true)+eq(-6,true)"/> default="white" visible="eq(-5,true)+eq(-6,true)"/>
<setting id="rating_3_color" type="labelenum" label="Valoracion Alta" <setting id="rating_3_color" type="labelenum" label="$ADDON[plugin.video.alfa 70140]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-6,true)+eq(-7,true)"/> default="white" visible="eq(-6,true)+eq(-7,true)"/>
<setting id="quality_color" type="labelenum" label="Calidad" <setting id="quality_color" type="labelenum" label="$ADDON[plugin.video.alfa 70141]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-7,true)+eq(-8,true)"/> default="white" visible="eq(-7,true)+eq(-8,true)"/>
<setting id="cast_color" type="labelenum" label="Castellano" <setting id="cast_color" type="labelenum" label="$ADDON[plugin.video.alfa 59980]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-8,true)+eq(-9,true)"/> default="white" visible="eq(-8,true)+eq(-9,true)"/>
<setting id="lat_color" type="labelenum" label="Latino" <setting id="lat_color" type="labelenum" label="$ADDON[plugin.video.alfa 59981]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-9,true)+eq(-10,true)"/> default="white" visible="eq(-9,true)+eq(-10,true)"/>
<setting id="vose_color" type="labelenum" label="VOSE (Versión Original Subtitulado Español)" <setting id="vose_color" type="labelenum" label="$ADDON[plugin.video.alfa 701402]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-10,true)+eq(-11,true)"/> default="white" visible="eq(-10,true)+eq(-11,true)"/>
<setting id="vos_color" type="labelenum" label="VOS (Versión Original Subtitulado)" <setting id="vos_color" type="labelenum" label="$ADDON[plugin.video.alfa 70143]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-11,true)+eq(-12,true)"/> default="white" visible="eq(-11,true)+eq(-12,true)"/>
<setting id="vo_color" type="labelenum" label="VO (Versión Original)" <setting id="vo_color" type="labelenum" label="$ADDON[plugin.video.alfa 70144]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-12,true)+eq(-13,true)"/> default="white" visible="eq(-12,true)+eq(-13,true)"/>
<setting id="server_color" type="labelenum" label="Servidores" <setting id="server_color" type="labelenum" label="$ADDON[plugin.video.alfa 70145]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-13,true)+eq(-14,true)"/> default="white" visible="eq(-13,true)+eq(-14,true)"/>
<setting id="library_color" type="labelenum" label="Añadir a Videoteca" <setting id="library_color" type="labelenum" label="$ADDON[plugin.video.alfa 70146]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-14,true)+eq(-15,true)"/> default="white" visible="eq(-14,true)+eq(-15,true)"/>
<setting id="update_color" type="labelenum" label="Videoteca (Actualizar serie)" <setting id="update_color" type="labelenum" label="$ADDON[plugin.video.alfa 70147]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-15,true)+eq(-16,true)"/> default="white" visible="eq(-15,true)+eq(-16,true)"/>
<setting id="no_update_color" type="labelenum" label="Videoteca (No actualizar serie)" <setting id="no_update_color" type="labelenum" label="$ADDON[plugin.video.alfa 70148]"
lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" lvalues="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-16,true)+eq(-17,true)"/> default="white" visible="eq(-16,true)+eq(-17,true)"/>
</category> </category>
<category label="Otros"> <category label="$ADDON[plugin.video.alfa 70149]">
<setting label="Info de películas/series en menú contextual" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 70150]" type="lsep"/>
<setting id="infoplus" type="bool" label="Mostrar opción Infoplus:" default="true"/> <setting id="infoplus" type="bool" label="$ADDON[plugin.video.alfa 70151]" default="true"/>
<setting id="extended_info" type="bool" label="Mostrar opción ExtendedInfo (Necesario addon externo):" default="false"/> <setting id="extended_info" type="bool" label="$ADDON[plugin.video.alfa 70152]" default="false"/>
<setting label="Botones/Teclas de acceso (Cambios requieren reiniciar Kodi)" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 70153]" type="lsep"/>
<setting id="shortcut_key" type="action" label="30999" action="RunPlugin(plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIg0KfQ==)" /> <setting id="shortcut_key" type="action" label="30999" action="RunPlugin(plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIg0KfQ==)" />
<setting type="sep"/> <setting type="sep"/>
<setting label="TheMovieDB (obtiene datos de las películas o series)" type="lsep"/> <setting label="$ADDON[plugin.video.alfa 70154]" type="lsep"/>
<setting id="tmdb_threads" type="labelenum" values="5|10|15|20|25|30" label="Búsquedas simultáneas (puede causar inestabilidad)" default="20"/> <setting id="tmdb_threads" type="labelenum" values="5|10|15|20|25|30" label="$ADDON[plugin.video.alfa 70155]" default="20"/>
<setting id="tmdb_plus_info" type="bool" label="Buscar información extendida (datos de actores) Aumenta el tiempo de búsqueda" default="false"/> <setting id="tmdb_plus_info" type="bool" label="$ADDON[plugin.video.alfa 70156]" default="false"/>
<setting id="tmdb_cache" type="bool" label="Usar caché (mejora las búsquedas recurrentes)" default="true"/> <setting id="tmdb_cache" type="bool" label="$ADDON[plugin.video.alfa 70157]" default="true"/>
<setting id="tmdb_cache_expire" type="enum" lvalues="cada 1 día|cada 7 días|cada 15 días|cada 30 días|No" label="¿Renovar caché?" enable="eq(-1,true)" default="4"/> <setting id="tmdb_cache_expire" type="enum" lvalues="70158|70159|70160|70161|70170" label="$ADDON[plugin.video.alfa 70162]" enable="eq(-1,true)" default="4"/>
<setting id="tmdb_clean_db_cache" type="action" label="Pulse para 'Borrar caché' guardada" action="RunPlugin(plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAic2NyaXB0Ig0KfQ==)" /> <setting id="tmdb_clean_db_cache" type="action" label="$ADDON[plugin.video.alfa 70163]" action="RunPlugin(plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAic2NyaXB0Ig0KfQ==)" />
<setting type="sep"/> <setting type="sep"/>
<setting label="Para evitar esperar demasiado cuando un servidor no responde:" type="lsep"/> <setting label="Para evitar esperar demasiado cuando un servidor no responde:" type="lsep"/>
@@ -26,7 +26,7 @@
<textcolor>0xFFFFA500</textcolor> <textcolor>0xFFFFA500</textcolor>
<align>center</align> <align>center</align>
<aligny>center</aligny> <aligny>center</aligny>
<label>Opciones</label> <label>$ADDON[plugin.video.alfa 70000]</label>
</control> </control>
<control type="button" id="10003"> <control type="button" id="10003">
<posx>735</posx> <posx>735</posx>
@@ -46,7 +46,7 @@
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus> <texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
<align>center</align> <align>center</align>
<aligny>center</aligny> <aligny>center</aligny>
<label>OK</label> <label>$ADDON[plugin.video.alfa 70001]</label>
</control> </control>
<control type="button" id="10005"> <control type="button" id="10005">
<posx>325</posx> <posx>325</posx>
@@ -58,7 +58,7 @@
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus> <texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
<align>center</align> <align>center</align>
<aligny>center</aligny> <aligny>center</aligny>
<label>Cancelar</label> <label>$ADDON[plugin.video.alfa 70002]</label>
</control> </control>
<control type="button" id="10006"> <control type="button" id="10006">
<posx>495</posx> <posx>495</posx>
@@ -70,7 +70,7 @@
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus> <texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
<align>center</align> <align>center</align>
<aligny>center</aligny> <aligny>center</aligny>
<label>Por defecto</label> <label>$ADDON[plugin.video.alfa 70003]</label>
</control> </control>
<control type="group" id="10007"> <control type="group" id="10007">
<posy>45</posy> <posy>45</posy>
@@ -91,7 +91,7 @@
<textcolor>0xFFFFFFFF</textcolor> <textcolor>0xFFFFFFFF</textcolor>
<align>center</align> <align>center</align>
<aligny>center</aligny> <aligny>center</aligny>
<label>Cargando...</label> <label>$ADDON[plugin.video.alfa 70004]</label>
</control> </control>
</control> </control>
<control type="image" id="10008"> <control type="image" id="10008">
+5 -10
View File
@@ -3,14 +3,9 @@
# Service for updating new episodes on library series # Service for updating new episodes on library series
# ------------------------------------------------------------ # ------------------------------------------------------------
import datetime import datetime, imp, math, threading
import imp
import math
import threading
from core import channeltools from core import channeltools, filetools, videolibrarytools
from core import filetools
from core import videolibrarytools
from platformcode import config, logger from platformcode import config, logger
from platformcode import platformtools from platformcode import platformtools
from channels import videolibrary from channels import videolibrary
@@ -34,7 +29,7 @@ def update(path, p_dialog, i, t, serie, overwrite):
if channel_enabled: if channel_enabled:
heading = 'Actualizando videoteca....' heading = config.get_localized_string(60389)
p_dialog.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (serie.contentSerieName, p_dialog.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (serie.contentSerieName,
serie.channel.capitalize())) serie.channel.capitalize()))
try: try:
@@ -95,8 +90,8 @@ def check_for_update(overwrite=True):
if config.get_setting("update", "videolibrary") != 0 or overwrite: if config.get_setting("update", "videolibrary") != 0 or overwrite:
config.set_setting("updatelibrary_last_check", hoy.strftime('%Y-%m-%d'), "videolibrary") config.set_setting("updatelibrary_last_check", hoy.strftime('%Y-%m-%d'), "videolibrary")
heading = 'Actualizando videoteca....' heading = config.get_localized_string(60389)
p_dialog = platformtools.dialog_progress_bg('alfa', heading) p_dialog = platformtools.dialog_progress_bg(config.get_localized_string(20000), heading)
p_dialog.update(0, '') p_dialog.update(0, '')
show_list = [] show_list = []