Merge pull request #386 from thedoctor66/master

added localized strings
This commit is contained in:
Alfa
2018-08-08 08:28:25 -05:00
committed by GitHub
13 changed files with 2791 additions and 228 deletions

View File

@@ -37,9 +37,9 @@ ACTION_MOVE_UP = 3
set_animation = False
xinfoplus_set = config.get_setting("infoplus_set")
if xinfoplus_set == "Sin animación":
if xinfoplus_set == config.get_localized_string(70129):
set_animation = False
if xinfoplus_set == "Con animación":
if xinfoplus_set == config.get_localized_string(70130):
set_animation = True
def start(item, recomendaciones=[], from_window=False):
@@ -400,7 +400,7 @@ class main(xbmcgui.WindowDialog):
self.plot.autoScroll(11000, 6000, 30000)
except:
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")')
config.get_localized_string(70500))
self.plot.setText(dhe(self.infoLabels.get("plot", "")))
xbmc.sleep(200)
@@ -842,7 +842,7 @@ class related(xbmcgui.WindowDialog):
self.info_peli.autoScroll(7000, 6000, 30000)
except:
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")')
config.get_localized_string(70500))
self.info_peli.setText(self.info)
if set_animation:
self.info_peli.setAnimations(
@@ -859,9 +859,9 @@ class related(xbmcgui.WindowDialog):
('WindowClose', 'effect=zoom end=0% time=1000 condition=true',)])
if self.infoLabels.get("status") == "Ended" and self.item.contentType != "movie":
status = "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]"
status = config.get_localized_string(70515)
elif self.infoLabels.get("status") and self.item.contentType != "movie":
status = "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]"
status = config.get_localized_string(70516)
else:
status = "[COLOR aquamarine][B]%s[/B][/COLOR]"
@@ -891,7 +891,7 @@ class related(xbmcgui.WindowDialog):
self.gt_peli = xbmcgui.ControlTextBox(210, 385, 1100, 60, self.fonts["12"])
self.addControl(self.gt_peli)
self.gt_peli.setText("[COLOR limegreen][B]Género: [/B][/COLOR]")
self.gt_peli.setText("[COLOR limegreen][B]%s[/B][/COLOR]" % config.get_localized_string(70499))
if set_animation:
self.gt_peli.setAnimations(
[('conditional', 'effect=slide start=0,-7000 delay=5750 time=700 condition=true tween=circle easing=in',),
@@ -907,7 +907,7 @@ class related(xbmcgui.WindowDialog):
self.pt_peli = xbmcgui.ControlTextBox(210, 410, 307, 60, self.fonts["12"])
self.addControl(self.pt_peli)
self.pt_peli.setText("[COLOR limegreen][B]Productora: [/B][/COLOR]")
self.pt_peli.setText("[COLOR limegreen][B]%s[/B][/COLOR]" % config.get_localized_string(70498))
if set_animation:
self.pt_peli.setAnimations(
[('conditional', 'effect=slide start=0,-7000 delay=5700 time=700 condition=true tween=circle easing=in',),
@@ -1238,7 +1238,7 @@ class Busqueda(xbmcgui.WindowXMLDialog):
else:
self.getControl(1).setLabel(config.get_localized_string(60494))
self.getControl(5).setLabel("[COLOR tomato][B]Cerrar[/B][/COLOR]")
self.getControl(5).setLabel(config.get_localized_string(60495))
self.control_list.reset()
items = []
for item_l in self.lista:
@@ -1577,7 +1577,7 @@ class ActorInfo(xbmcgui.WindowDialog):
self.info_actor.autoScroll(7000, 6000, 30000)
except:
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")')
config.get_localized_string(70500))
self.info_actor.setText(
"[COLOR coral][B]%s[/B][/COLOR]" % actor_tmdb.result.get("biography", config.get_localized_string(60504)))
@@ -1601,7 +1601,7 @@ class ActorInfo(xbmcgui.WindowDialog):
else:
self.titulos.append([entradas["id"], entradas.get("title", entradas.get("original_title", "")), thumb])
self.dialog.update(40, '[COLOR rosybrown]Obteniendo filmografía...[/COLOR]')
self.dialog.update(40, config.get_localized_string(60505))
self.mas_pelis = 8
self.idps = []
self.botones = []
@@ -1673,7 +1673,7 @@ class ActorInfo(xbmcgui.WindowDialog):
self.botones.append(self.btn_right)
xbmc.sleep(200)
self.dialog.update(80, '[COLOR plum]Recopilando imágenes...[/COLOR]')
self.dialog.update(80, config.get_localized_string(60506))
self.images = []
for images in actor_tmdb.result.get("images", {}).get("profiles", []):
imagen = "https://image.tmdb.org/t/p/original" + images["file_path"]

View File

@@ -46,7 +46,7 @@ def buscartrailer(item, trailers=[]):
item.contentTitle = item.contentTitle.strip()
elif keyboard:
fulltitle = re.sub('\[\/*(B|I|COLOR)\s*[^\]]*\]', '', item.fulltitle.strip())
item.contentTitle = platformtools.dialog_input(default=fulltitle, heading="Introduce el título a buscar")
item.contentTitle = platformtools.dialog_input(default=fulltitle, heading=config.get_localized_string(70505))
if item.contentTitle is None:
item.contentTitle = fulltitle
else:
@@ -86,21 +86,21 @@ def buscartrailer(item, trailers=[]):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda en Youtube", action="youtube_search",
itemlist.append(item.clone(title=title % config.get_localized_string(70507), action="youtube_search",
text_color="green"))
itemlist.append(item.clone(title=title % "Búsqueda en Filmaffinity",
itemlist.append(item.clone(title=title % config.get_localized_string(70024),
action="filmaffinity_search", text_color="green"))
# Si se trata de una serie, no se incluye la opción de buscar en Abandomoviez
if not item.show and not item.infoLabels['tvshowtitle']:
itemlist.append(item.clone(title=title % "Búsqueda en Abandomoviez",
itemlist.append(item.clone(title=title % config.get_localized_string(70508),
action="abandomoviez_search", text_color="green"))
itemlist.append(item.clone(title=title % "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)",
itemlist.append(item.clone(title=title % config.get_localized_string(70509),
action="jayhap_search", text_color="green"))
if item.contextual:
global window_select, result
select = Select("DialogSelect.xml", config.get_runtime_path(), item=item, itemlist=itemlist,
caption="Buscando: " + item.contentTitle)
caption=config.get_localized_string(70506) + item.contentTitle)
window_select.append(select)
select.doModal()
@@ -177,11 +177,11 @@ def youtube_search(item):
'Siguiente')
if next_page != "":
next_page = urlparse.urljoin("https://www.youtube.com", next_page)
itemlist.append(item.clone(title=">> Siguiente", action="youtube_search", extra="youtube", page=next_page,
itemlist.append(item.clone(title=config.get_localized_string(70502), action="youtube_search", extra="youtube", page=next_page,
thumbnail="", text_color=""))
if not itemlist:
itemlist.append(item.clone(title="La búsqueda no ha dado resultados (%s)" % titulo,
itemlist.append(item.clone(title=config.get_localized_string(70501) % titulo,
action="", thumbnail="", text_color=""))
if keyboard:
@@ -189,7 +189,7 @@ def youtube_search(item):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda Manual en Youtube", action="manual_search",
itemlist.append(item.clone(title=title % config.get_localized_string(70510), action="manual_search",
text_color="green", thumbnail="", extra="youtube"))
return itemlist
@@ -232,11 +232,11 @@ def abandomoviez_search(item):
next_page = scrapertools.find_single_match(data, '<a href="([^"]+)">Siguiente')
if next_page != "":
next_page = urlparse.urljoin("http://www.abandomoviez.net/%s" % item.prefix, next_page)
itemlist.append(item.clone(title=">> Siguiente", action="abandomoviez_search", page=next_page, thumbnail="",
itemlist.append(item.clone(title=config.get_localized_string(70502), action="abandomoviez_search", page=next_page, thumbnail="",
text_color=""))
if not itemlist:
itemlist.append(item.clone(title="La búsqueda no ha dado resultados", action="", thumbnail="",
itemlist.append(item.clone(title=config.get_localized_string(70501), action="", thumbnail="",
text_color=""))
if keyboard:
@@ -244,7 +244,7 @@ def abandomoviez_search(item):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda Manual en Abandomoviez",
itemlist.append(item.clone(title=title % config.get_localized_string(70511),
action="manual_search", thumbnail="", text_color="green", extra="abandomoviez"))
return itemlist
@@ -256,13 +256,13 @@ def search_links_abando(item):
data = scrapertools.downloadpage(item.url)
itemlist = []
if "Lo sentimos, no tenemos trailer" in data:
itemlist.append(item.clone(title="No hay ningún vídeo disponible", action="", text_color=""))
itemlist.append(item.clone(title=config.get_localized_string(70503), action="", text_color=""))
else:
if item.contextual:
progreso = platformtools.dialog_progress("Buscando en abandomoviez", "Cargando trailers...")
progreso = platformtools.dialog_progress(config.get_localized_string(70512), config.get_localized_string(70504))
progreso.update(10)
i = 0
message = "Cargando trailers..."
message = config.get_localized_string(70504)
patron = '<div class="col-md-3 col-xs-6"><a href="([^"]+)".*?' \
'Images/(\d+).gif.*?</div><small>(.*?)</small>'
matches = scrapertools.find_multiple_matches(data, patron)
@@ -304,7 +304,7 @@ def search_links_abando(item):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda Manual en Abandomoviez",
itemlist.append(item.clone(title=title % config.get_localized_string(70511),
action="manual_search", thumbnail="", text_color="green", extra="abandomoviez"))
return itemlist
@@ -349,11 +349,11 @@ def filmaffinity_search(item):
next_page = scrapertools.find_single_match(data, '<a href="([^"]+)">&gt;&gt;</a>')
if next_page != "":
next_page = urlparse.urljoin("http://www.filmaffinity.com/es/", next_page)
itemlist.append(item.clone(title=">> Siguiente", page=next_page, action="filmaffinity_search", thumbnail="",
itemlist.append(item.clone(title=config.get_localized_string(70502), page=next_page, action="filmaffinity_search", thumbnail="",
text_color=""))
if not itemlist:
itemlist.append(item.clone(title="La búsqueda no ha dado resultados (%s)" % item.contentTitle,
itemlist.append(item.clone(title=config.get_localized_string(70501) % item.contentTitle,
action="", thumbnail="", text_color=""))
if keyboard:
@@ -361,7 +361,7 @@ def filmaffinity_search(item):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda Manual en Filmaffinity",
itemlist.append(item.clone(title=title % config.get_localized_string(70513),
action="manual_search", text_color="green", thumbnail="", extra="filmaffinity"))
return itemlist
@@ -373,7 +373,7 @@ def search_links_filmaff(item):
itemlist = []
data = scrapertools.downloadpage(item.url)
if not '<a class="lnkvvid"' in data:
itemlist.append(item.clone(title="No hay ningún vídeo disponible", action="", text_color=""))
itemlist.append(item.clone(title=config.get_localized_string(70503), action="", text_color=""))
else:
patron = '<a class="lnkvvid".*?<b>(.*?)</b>.*?iframe.*?src="([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
@@ -402,7 +402,7 @@ def search_links_filmaff(item):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda Manual en Filmaffinity",
itemlist.append(item.clone(title=title % config.get_localized_string(70513),
action="manual_search", thumbnail="", text_color="green", extra="filmaffinity"))
return itemlist
@@ -437,14 +437,14 @@ def jayhap_search(item):
text_color="white"))
if not itemlist:
itemlist.append(item.clone(title="La búsqueda no ha dado resultados (%s)" % item.contentTitle,
itemlist.append(item.clone(title=config.get_localized_string(70501) % item.contentTitle,
action="", thumbnail="", text_color=""))
else:
tokens = data['tokens']
tokens['yt_token'] = tokens.pop('youtube')
tokens['vm_token'] = tokens.pop('vimeo')
tokens['dm_token'] = tokens.pop('dailymotion')
itemlist.append(item.clone(title=">> Siguiente", page=tokens, action="jayhap_search", extra="jayhap",
itemlist.append(item.clone(title=config.get_localized_string(70502), page=tokens, action="jayhap_search", extra="jayhap",
thumbnail="", text_color=""))
if keyboard:
@@ -452,7 +452,7 @@ def jayhap_search(item):
title = "[COLOR green]%s[/COLOR]"
else:
title = "%s"
itemlist.append(item.clone(title=title % "Búsqueda Manual en Jayhap", action="manual_search",
itemlist.append(item.clone(title=title % config.get_localized_string(70514), action="manual_search",
text_color="green", thumbnail="", extra="jayhap"))
return itemlist
@@ -485,7 +485,7 @@ try:
except:
pass
self.getControl(1).setLabel("[COLOR orange]" + self.caption + "[/COLOR]")
self.getControl(5).setLabel("[COLOR tomato][B]Cerrar[/B][/COLOR]")
self.getControl(5).setLabel(config.get_localized_string(60495))
self.items = []
for item in self.itemlist:
item_l = xbmcgui.ListItem(item.title)

View File

@@ -14,56 +14,56 @@
{
"id": "tmdb",
"type": "list",
"label": "Idioma de búsqueda en TMDB",
"default": 7,
"label": "@70418",
"default": 3,
"enabled": true,
"visible": true,
"lvalues": [
"Alemán",
"Francés",
"Portugués",
"Italiano",
"Español Latino",
"Catalán",
"Inglés",
"Castellano"
"@70419",
"@70420",
"@70421",
"@70422",
"@70423",
"@70424",
"@70425",
"@70014"
]
},
{
"id": "tmdb_alternativo",
"type": "list",
"label": "Idioma alternativo para TMDB (No sinopsis idioma principal)",
"label": "@70426",
"default": 6,
"enabled": true,
"visible": true,
"lvalues": [
"Alemán",
"Francés",
"Portugués",
"Italiano",
"Español Latino",
"Catalán",
"Inglés",
"Castellano"
"@70419",
"@70420",
"@70421",
"@70422",
"@70423",
"@70424",
"@70425",
"@70014"
]
},
{
"id": "imdb",
"type": "list",
"label": "Idioma de los títulos en IMDB",
"label": "@70427",
"color": "0xFFE0F04B",
"default": 7,
"default": 3,
"enabled": true,
"visible": true,
"lvalues": [
"Alemán",
"Francés",
"Portugués",
"Italiano",
"Español Latino",
"Catalán",
"Inglés",
"Castellano"
"@70419",
"@70420",
"@70421",
"@70422",
"@70423",
"@70424",
"@70425",
"@70014"
]
},
{
@@ -76,24 +76,24 @@
{
"id": "filmaff",
"type": "list",
"label": "Sitio Web Filmaffinity",
"label": "@70428",
"color": "0xFF25AA48",
"default": 5,
"enabled": true,
"visible": true,
"lvalues": [
"Colombia",
"Chile",
"Argentina",
"México",
"US/UK",
"España"
"@70429",
"@70430",
"@70431",
"@70432",
"@70433",
"@70434"
]
},
{
"id": "usuariofa",
"type": "text",
"label": "Usuario Filmaffinity (Opcional)",
"label": "@70435",
"color": "0xFFd50b0b",
"default": "",
"enabled": true,
@@ -102,7 +102,7 @@
{
"id": "passfa",
"type": "text",
"label": "Contraseña Filmaffinity",
"label": "@70436",
"color": "0xFFd50b0b",
"default": "",
"enabled": "!eq(-1,'')",
@@ -112,17 +112,17 @@
{
"id": "orderfa",
"type": "list",
"label": "Ordenar listas personales de Filmaffinity por:",
"label": "@70437",
"color": "0xFF25AA48",
"default": 0,
"enabled": "!eq(-1,'')",
"visible": true,
"lvalues": [
"Posición",
"Título",
"Año",
"Voto",
"Nota media"
"@70438",
"@60230",
"@70042",
"@70439",
"@70440"
]
},
{
@@ -135,7 +135,7 @@
{
"id": "usuariomal",
"type": "text",
"label": "Usuario MyAnimeList (Opcional)",
"label": "@70441",
"color": "0xFF25AA48",
"default": "",
"enabled": true,
@@ -144,7 +144,7 @@
{
"id": "passmal",
"type": "text",
"label": "Contraseña MyAnimeList",
"label": "@70442",
"color": "0xFF25AA48",
"default": "",
"enabled": "!eq(-1,'')",
@@ -154,7 +154,7 @@
{
"id": "adult_mal",
"type": "bool",
"label": "Mostrar Hentais en MyAnimeList",
"label": "@70443",
"color": "0xFFd50b0b",
"default": false,
"enabled": true,
@@ -163,15 +163,15 @@
{
"id": "perfil",
"type": "list",
"label": "Perfil de color",
"label": "@60666",
"default": 2,
"enabled": true,
"visible": true,
"lvalues": [
"Perfil 3",
"Perfil 2",
"Perfil 1",
"Ninguno"
"@70444",
"@70445",
"@70446",
"@59992"
]
}
]

View File

@@ -61,7 +61,7 @@ def mainlist(item):
url='&title_type=tv_series,tv_special,mini_series',
thumbnail=images_predef + "0/TV%20Series.png"))
itemlist.append(
item.clone(title="Trakt.tv", action="trakt", text_color=color2, thumbnail="http://i.imgur.com/5sQjjuk.png"))
item.clone(title=config.get_localized_string(70415), action="trakt", text_color=color2, thumbnail="http://i.imgur.com/5sQjjuk.png"))
itemlist.append(
item.clone(title=config.get_localized_string(70026), action="mal", text_color=color2, thumbnail="http://i.imgur.com/RhsYWmd.png"))
itemlist.append(item.clone(title="", action=""))
@@ -255,7 +255,7 @@ def trakt(item):
page = "?page=1&limit=20&extended=full"
if not item.extra:
item.extra = "movie"
itemlist.append(item.clone(title=config.get_localized_string(70137), action="", text_color=color2))
itemlist.append(item.clone(title="[COLOR yellow][B]%s[/B][/COLOR]" % config.get_localized_string(70416), action=""))
itemlist.append(item.clone(title=config.get_localized_string(70049), action="acciones_trakt", url="movies/popular%s" % page))
itemlist.append(
item.clone(title=config.get_localized_string(70050), action="acciones_trakt", url="movies/trending%s" % page))
@@ -265,7 +265,7 @@ def trakt(item):
if token_auth:
itemlist.append(item.clone(title=config.get_localized_string(70052), action="acciones_trakt",
url="recommendations/movies?limit=100&extended=full", pagina=0))
itemlist.append(item.clone(title=config.get_localized_string(30123), action="", text_color=color2))
itemlist.append(item.clone(title="[COLOR yellow][B]%s[/B][/COLOR]" % config.get_localized_string(70417), action="",))
item.extra = "show"
itemlist.append(item.clone(title=config.get_localized_string(70049), action="acciones_trakt", url="shows/popular%s" % page))
itemlist.append(item.clone(title=config.get_localized_string(70050), action="acciones_trakt", url="shows/trending%s" % page))
@@ -275,7 +275,7 @@ def trakt(item):
if token_auth:
itemlist.append(item.clone(title=config.get_localized_string(70052), action="acciones_trakt",
url="recommendations/shows?limit=100&extended=full", pagina=0))
itemlist.append(item.clone(title=config.get_localized_string(70048), text_color=color2, extra="cuenta"))
itemlist.append(item.clone(title="[COLOR red][B]%s[/B][/COLOR]" % config.get_localized_string(70048), extra="cuenta"))
else:
item.extra = "movie"
# Se comprueba si existe un token guardado y sino se ejecuta el proceso de autentificación
@@ -450,7 +450,7 @@ def listado_tmdb(item):
else:
# Si es una búsqueda de personas se incluye en el título y fanart una película por la que es conocido
known_for = ob_tmdb.results[i].get("known_for")
type = item.search['type']
type=item.type
if known_for:
from random import randint
random = randint(0, len(known_for) - 1)
@@ -783,7 +783,7 @@ def filtro(item):
dict_values = None
list_controls.append({'id': 'years', 'label': 'Año', 'enabled': True, 'color': '0xFFCC2EFA',
list_controls.append({'id': 'years', 'label': config.get_localized_string(60232), 'enabled': True, 'color': '0xFFCC2EFA',
'type': 'list', 'default': -1, 'visible': True})
list_controls[0]['lvalues'] = []
valores['years'] = []
@@ -791,7 +791,7 @@ def filtro(item):
for i in range(1900, year + 1):
list_controls[0]['lvalues'].append(str(i))
valores['years'].append(str(i))
list_controls[0]['lvalues'].append('Cualquiera')
list_controls[0]['lvalues'].append(config.get_localized_string(70450))
valores['years'].append('')
if "Personalizado" in item.title:
@@ -805,7 +805,7 @@ def filtro(item):
lista = jsontools.load(httptools.downloadpage(url, cookies=False).data)["genres"]
if lista:
list_controls.append({'id': 'labelgenre', 'enabled': True, 'type': 'label', 'default': None,
'label': 'Selecciona uno, ninguno o más de un género',
'label': config.get_localized_string(70451),
'visible': True, 'color': '0xFFC52020'})
for l in lista:
list_controls.append({'id': 'genre' + str(l["id"]), 'label': l["name"], 'enabled': True,
@@ -813,11 +813,11 @@ def filtro(item):
except:
pass
list_controls.append({'id': 'orden', 'label': 'Ordenar por', 'enabled': True, 'color': '0xFF25AA48',
list_controls.append({'id': 'orden', 'label': config.get_localized_string(70455), 'enabled': True, 'color': '0xFF25AA48',
'type': 'list', 'default': -1, 'visible': True})
orden = ['Popularidad Desc', 'Popularidad Asc', 'Año Desc', 'Año Asc', 'Valoración Desc', 'Valoración Asc']
orden = [config.get_localized_string(70456), config.get_localized_string(70457), config.get_localized_string(70458), config.get_localized_string(70459), config.get_localized_string(70460), config.get_localized_string(70461)]
if item.extra == "movie":
orden.extend(['Título [A-Z]', 'Título [Z-A]'])
orden.extend([config.get_localized_string(70462), config.get_localized_string(70463)])
orden_tmdb = ['popularity.desc', 'popularity.asc', 'release_date.desc', 'release_date.asc',
'vote_average.desc', 'vote_average.asc', 'original_title.asc', 'original_title.desc']
valores['orden'] = []
@@ -828,10 +828,10 @@ def filtro(item):
list_controls.append({'id': 'espacio', 'label': '', 'enabled': False,
'type': 'label', 'default': None, 'visible': True})
list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True,
list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True,
'type': 'bool', 'default': False, 'visible': True})
else:
list_controls.append({'id': 'keyword', 'label': 'Palabra Clave', 'enabled': True,
list_controls.append({'id': 'keyword', 'label': config.get_localized_string(70465), 'enabled': True,
'type': 'text', 'default': '', 'visible': True})
item.valores = valores
@@ -1005,12 +1005,12 @@ def filtro_imdb(item):
if valores_guardados:
dict_values = valores_guardados
list_controls.append({'id': 'title', 'label': 'Título', 'enabled': True,
list_controls.append({'id': 'title', 'label': config.get_localized_string(60320), 'enabled': True,
'type': 'text', 'default': '', 'visible': True})
list_controls.append({'id': 'yearsdesde', 'label': 'Año desde:', 'enabled': True, 'color': '0xFFCC2EFA',
list_controls.append({'id': 'yearsdesde', 'label': config.get_localized_string(70452), 'enabled': True, 'color': '0xFFCC2EFA',
'type': 'list', 'default': -1, 'visible': True})
list_controls.append({'id': 'yearshasta', 'label': 'Año hasta:', 'enabled': True, 'color': '0xFF2ECCFA',
list_controls.append({'id': 'yearshasta', 'label': config.get_localized_string(70453), 'enabled': True, 'color': '0xFF2ECCFA',
'type': 'list', 'default': -1, 'visible': True})
list_controls[1]['lvalues'] = []
list_controls[2]['lvalues'] = []
@@ -1020,23 +1020,23 @@ def filtro_imdb(item):
list_controls[1]['lvalues'].append(str(i))
list_controls[2]['lvalues'].append(str(i))
valores['years'].append(str(i))
list_controls[1]['lvalues'].append('Cualquiera')
list_controls[2]['lvalues'].append('Cualquiera')
list_controls[1]['lvalues'].append(config.get_localized_string(70450))
list_controls[2]['lvalues'].append(config.get_localized_string(70450))
valores['years'].append('')
try:
generos_spa = {'Action': 'Acción', 'Adventure': 'Aventura', 'Animation': 'Animación', 'Biography': 'Biografía',
'Comedy': 'Comedia', 'Crime': 'Crimen', 'Documentary': 'Documental', 'Family': 'Familia',
'Fantasy': 'Fantástico', 'Film-Noir': 'Cine Negro', 'Game-Show': 'Concursos',
'History': 'Historia', 'Horror': 'Terror', 'Music': 'Música', 'Mistery': 'Intriga',
'News': 'Noticias', 'Reality-TV': 'Reality', 'Sci-Fi': 'Ciencia Ficción', 'Sport': 'Deportes',
'Talk-Show': 'Entrevistas', 'War': 'Cine Bélico'}
generos_spa = {'Action': config.get_localized_string(70394), 'Adventure': config.get_localized_string(60267), 'Animation': config.get_localized_string(60268), 'Biography': config.get_localized_string(70403),
'Comedy': config.get_localized_string(60270), 'Crime': config.get_localized_string(60271), 'Documentary': config.get_localized_string(70396), 'Family': config.get_localized_string(70399),
'Fantasy': config.get_localized_string(60274), 'Film-Noir': config.get_localized_string(70400), 'Game-Show': config.get_localized_string(70401),
'History': config.get_localized_string(70405), 'Horror': config.get_localized_string(70013), 'Music': config.get_localized_string(70404), 'Mistery': config.get_localized_string(70402),
'News': config.get_localized_string(60279), 'Reality-TV': config.get_localized_string(70406), 'Sci-Fi': config.get_localized_string(70397), 'Sport': config.get_localized_string(70395),
'Talk-Show': config.get_localized_string(70398), 'War': config.get_localized_string(70407)}
data = httptools.downloadpage("http://www.imdb.com/search/title", cookies=False).data
bloque = scrapertools.find_single_match(data, '<h3>Genres</h3>(.*?)</table>')
matches = scrapertools.find_multiple_matches(bloque, ' value="([^"]+)"\s*>\s*<label.*?>([^<]+)<')
if matches:
list_controls.append({'id': 'labelgenre', 'enabled': True, 'type': 'label', 'visible': True,
'label': 'Selecciona uno, ninguno o más de un género', 'color': '0xFFC52020'})
'label': config.get_localized_string(70451), 'color': '0xFFC52020'})
lista = []
for valor, titulo in matches:
titulo = generos_spa.get(titulo, titulo)
@@ -1054,10 +1054,10 @@ def filtro_imdb(item):
bloque = scrapertools.find_single_match(data, '<h3>Countries</h3>(.*?)Less-Common')
matches = scrapertools.find_multiple_matches(bloque, ' value="([^"]+)"\s*>([^<]+)<')
if matches:
list_controls.append({'id': 'pais', 'label': 'País', 'enabled': True, 'color': '0xFFFF8000',
list_controls.append({'id': 'pais', 'label': config.get_localized_string(70466), 'enabled': True, 'color': '0xFFFF8000',
'type': 'list', 'default': -1, 'visible': True})
list_controls[-1]['lvalues'] = []
list_controls[-1]['lvalues'].append('Cualquiera')
list_controls[-1]['lvalues'].append(config.get_localized_string(70450))
valores['pais'] = []
valores['pais'].append('')
for valor, titulo in matches:
@@ -1067,13 +1067,10 @@ def filtro_imdb(item):
except:
pass
list_controls.append({'id': 'votos', 'label': 'Número mínimo de votos', 'enabled': True,
'type': 'text', 'default': '10000', 'visible': True, 'color': '0xFFF4FA58'})
list_controls.append({'id': 'orden', 'label': 'Ordenar por', 'enabled': True, 'color': '0xFF25AA48',
list_controls.append({'id': 'orden', 'label': config.get_localized_string(70455), 'enabled': True, 'color': '0xFF25AA48',
'type': 'list', 'default': -1, 'visible': True})
orden = ['Popularidad Desc', 'Popularidad Asc', 'Año Desc', 'Año Asc', 'Valoración Desc', 'Valoración Asc',
'Título [A-Z]', 'Título [Z-A]']
orden = [config.get_localized_string(70456), config.get_localized_string(70457), config.get_localized_string(70458), config.get_localized_string(70459), config.get_localized_string(70460), config.get_localized_string(70461),
config.get_localized_string(70462, config.get_localized_string(70463)]
orden_imdb = ['moviemeter,asc', 'moviemeter,desc', 'year,desc', 'year,asc',
'user_rating,desc', 'user_rating,asc', 'alpha,asc', 'alpha,desc']
@@ -1083,7 +1080,7 @@ def filtro_imdb(item):
list_controls[-1]['lvalues'].insert(0, tipo_orden)
valores['orden'].insert(0, orden_imdb[i])
list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True,
list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True,
'type': 'bool', 'default': False, 'visible': True})
item.valores = valores
@@ -1130,12 +1127,12 @@ def indices_imdb(item):
itemlist = []
from datetime import datetime
if config.get_localized_string(70032) in item.title:
generos_spa = {'Action': 'Accion', 'Adventure': 'Aventura', 'Animation': 'Animacion', 'Biography': 'Biografía',
'Comedy': 'Comedia', 'Crime': 'Crimen', 'Documentary': 'Documental', 'Family': 'Familia',
'Fantasy': 'Fantasia', 'Film-Noir': 'Cine Negro', 'Game-Show': 'Concursos',
'History': 'Historia', 'Horror': 'Terror', 'Music': 'Música', 'Mistery': 'Intriga',
'News': 'Noticias', 'Reality-TV': 'Reality', 'Sci-Fi': 'Ciencia Ficcion', 'Sport': 'Deportes',
'Talk-Show': 'Entrevistas', 'War': 'Cine Bélico'}
generos_spa = {'Action': config.get_localized_string(70394), 'Adventure': config.get_localized_string(60267), 'Animation': config.get_localized_string(60268), 'Biography': config.get_localized_string(70403), 'Thriller': config.get_localized_string(70410),
'Comedy': config.get_localized_string(60270), 'Crime': config.get_localized_string(60271), 'Documentary': config.get_localized_string(70396), 'Family': config.get_localized_string(70399), 'Romance': config.get_localized_string(70409),
'Fantasy': config.get_localized_string(60274), 'Film-Noir': config.get_localized_string(70400), 'Game-Show': config.get_localized_string(70401), 'Drama': config.get_localized_string(70412), 'Western': config.get_localized_string(70411),
'History': config.get_localized_string(70405), 'Horror': config.get_localized_string(70013), 'Music': config.get_localized_string(70404), 'Musical': config.get_localized_string(70408),'Mystery': config.get_localized_string(70402),
'News': config.get_localized_string(60279), 'Reality-TV': config.get_localized_string(70406), 'Sci-Fi': config.get_localized_string(70397), 'Sport': config.get_localized_string(70395),
'Talk-Show': config.get_localized_string(70398), 'War': config.get_localized_string(70407)}
data = httptools.downloadpage("http://www.imdb.com/search/title", cookies=False).data
bloque = scrapertools.find_single_match(data, '<h3>Genres</h3>(.*?)</table>')
matches = scrapertools.find_multiple_matches(bloque, ' value="([^"]+)"\s*>\s*<label.*?>([^<]+)<')
@@ -1616,9 +1613,9 @@ def filtro_fa(item):
if valores_guardados:
dict_values = valores_guardados
list_controls.append({'id': 'yearsdesde', 'label': 'Año desde:', 'enabled': True,
list_controls.append({'id': 'yearsdesde', 'label': config.get_localized_string(70452), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls.append({'id': 'yearshasta', 'label': 'Año hasta:', 'enabled': True,
list_controls.append({'id': 'yearshasta', 'label': config.get_localized_string(70453), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls[0]['lvalues'] = []
list_controls[1]['lvalues'] = []
@@ -1628,8 +1625,8 @@ def filtro_fa(item):
list_controls[0]['lvalues'].append(str(i))
list_controls[1]['lvalues'].append(str(i))
valores['years'].append(str(i))
list_controls[0]['lvalues'].append('Cualquiera')
list_controls[1]['lvalues'].append('Cualquiera')
list_controls[0]['lvalues'].append(config.get_localized_string(70450))
list_controls[1]['lvalues'].append(config.get_localized_string(70450))
valores['years'].append('')
data = httptools.downloadpage("http://m.filmaffinity.com/%s/topgen.php" % langf).data
@@ -1640,7 +1637,7 @@ def filtro_fa(item):
bloque = scrapertools.find_single_match(data, 'name="genre">.*?</option>(.*?)</select>')
matches = scrapertools.find_multiple_matches(bloque, '<option value="([^"]+)">([^<]+)</option>')
if matches:
list_controls.append({'id': 'genero', 'label': 'Selecciona un género', 'enabled': True,
list_controls.append({'id': 'genero', 'label': config.get_localized_string(70467), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls[2]['lvalues'] = []
list_controls[2]['lvalues'].append("Todos")
@@ -1659,7 +1656,7 @@ def filtro_fa(item):
bloque = scrapertools.find_single_match(data, 'name="country">.*?</option>(.*?)</select>')
matches = scrapertools.find_multiple_matches(bloque, '<option value="([^"]+)"\s*>([^<]+)</option>')
if matches:
list_controls.append({'id': 'pais', 'label': 'País', 'enabled': True,
list_controls.append({'id': 'pais', 'label': config.get_localized_string(70466), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls[-1]['lvalues'] = []
list_controls[-1]['lvalues'].append('Todos')
@@ -1673,7 +1670,7 @@ def filtro_fa(item):
list_controls.append({'id': 'espacio', 'label': '', 'enabled': False,
'type': 'label', 'default': None, 'visible': True})
list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True,
list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True,
'type': 'bool', 'default': False, 'visible': True})
item.valores = valores
@@ -1863,7 +1860,7 @@ def votar_fa(item):
dict_values = None
if item.voto:
dict_values = {'voto': item.voto}
list_controls.append({'id': 'voto', 'label': 'Indica tu voto:', 'enabled': True,
list_controls.append({'id': 'voto', 'label': config.get_localized_string(70468), 'enabled': True,
'type': 'list', 'default': 0, 'visible': True})
list_controls[0]['lvalues'] = ['No vista']
valores['voto'] = ["-1"]
@@ -2184,9 +2181,9 @@ def acciones_trakt(item):
elif data and not item.url.endswith("lists"):
data = jsontools.load(data)
if data and "page=1" in item.url and item.order:
valores = {'rank': 'Por defecto', 'added': 'Añadido', 'title': 'Título', 'released': 'Estreno',
'runtime': 'Duración', 'popularity': 'Popularidad', 'percentage': 'Valoración',
'votes': 'Votos', 'asc': 'ascendente', 'desc': 'descendente'}
valores = {'rank': config.get_localized_string(70003), 'added': config.get_localized_string(70469), 'title': config.get_localized_string(60320), 'released': config.get_localized_string(70470),
'runtime': config.get_localized_string(70471), 'popularity': config.get_localized_string(70472), 'percentage': config.get_localized_string(70473),
'votes': config.get_localized_string(70474), 'asc': config.get_localized_string(70475), 'desc': config.get_localized_string(70476)}
orden = valores[item.order] + " " + valores[item.how]
itemlist.append(item.clone(title=config.get_localized_string(70349) % orden, action="order_list",
text_color=color4))
@@ -2267,13 +2264,13 @@ def order_list(item):
dict_values = {'orderby': valores1.index(item.order), 'orderhow': valores2.index(item.how)}
list_controls.append({'id': 'orderby', 'label': 'Ordenar por:', 'enabled': True,
list_controls.append({'id': 'orderby', 'label': config.get_localized_string(70455), 'enabled': True,
'type': 'list', 'default': 0, 'visible': True})
list_controls.append({'id': 'orderhow', 'label': 'De forma:', 'enabled': True,
'type': 'list', 'default': 0, 'visible': True})
list_controls[0]['lvalues'] = ['Por defecto', 'Añadido', 'Título', 'Estreno', 'Duración', 'Popularidad',
'Valoración', 'Votos']
list_controls[1]['lvalues'] = ['Ascendente', 'Descendente']
list_controls[0]['lvalues'] = [config.get_localized_string(70003), config.get_localized_string(70469), config.get_localized_string(60230), config.get_localized_string(70470), config.get_localized_string(70471), config.get_localized_string(70472),
config.get_localized_string(70473), config.get_localized_string(70474)]
list_controls[1]['lvalues'] = [config.get_localized_string(70477), config.get_localized_string(70478)]
return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values,
caption=config.get_localized_string(70320), item=item, callback='order_trakt')
@@ -2494,8 +2491,8 @@ def detalles_mal(item):
itemlist.append(
item.clone(title=config.get_localized_string(70321) % score, action="menu_mal", contentTitle=title_mal))
elif item.login and config.is_xbmc():
status = {'1': 'Viendo Actualmente', '2': 'Completados', '3': 'En pausa', '4': 'Descartados',
'6': 'Previstos para ver'}
status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385),
'6': config.get_localized_string(70481)}
estado = scrapertools.find_single_match(data, 'myinfo_updateInfo".*?option selected="selected" value="(\d+)"')
try:
estado = status[estado]
@@ -2995,7 +2992,7 @@ def info_anidb(item, itemlist, url):
if abrev != title:
title += " [%s]" % abrev
estado = estado.replace("complete", config.get_localized_string(70378)).replace("finished", config.get_localized_string(70379)) \
.replace("stalled", "Pausa").replace("dropped", "Abandonada")
.replace("stalled", config.get_localized_string(70380)).replace("dropped", config.get_localized_string(70381))
title += " [COLOR %s](%s)[/COLOR] %s/%s [%s]" % (color6, estado, epis, epi_total, source)
itemlist.append(Item(channel=item.channel, title=title, infoLabels=infoLabels, action="",
thumbnail=thumbnail, text_color=color4))
@@ -3012,22 +3009,22 @@ def filtro_mal(item):
if valores_guardados:
dict_values = valores_guardados
list_controls.append({'id': 'keyword', 'label': 'Palabra Clave', 'enabled': True,
list_controls.append({'id': 'keyword', 'label': config.get_localized_string(70465), 'enabled': True,
'type': 'text', 'default': '', 'visible': True})
list_controls.append({'id': 'tipo', 'label': 'Tipo', 'enabled': True,
list_controls.append({'id': 'tipo', 'label': config.get_localized_string(70482), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls[1]['lvalues'] = ['Especial', 'OVA', 'Película', 'Serie', 'Cualquiera']
list_controls[1]['lvalues'] = [config.get_localized_string(70483), config.get_localized_string(70484), config.get_localized_string(60244), config.get_localized_string(70136), config.get_localized_string(70450)]
valores["tipo"] = ['4', '2', '3', '1', '0']
list_controls.append({'id': 'valoracion', 'label': 'Valoración', 'enabled': True,
list_controls.append({'id': 'valoracion', 'label': config.get_localized_string(70473), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls[2]['lvalues'] = ['(1) Grotesca', '(2) Horrible', '(3) Muy mala', '(4) Mala',
'(5) Regular', '(6) Pasable', '(7) Buena', '(8) Muy buena',
'(9) Genial', '(10) Obra maestra', 'Cualquiera']
list_controls[2]['lvalues'] = [config.get_localized_string(70486), config.get_localized_string(70487), config.get_localized_string(70488), config.get_localized_string(70489),
config.get_localized_string(70490), config.get_localized_string(70491), config.get_localized_string(70492), config.get_localized_string(70493),
config.get_localized_string(70494), config.get_localized_string(70495), config.get_localized_string(70450)]
valores["valoracion"] = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '0']
list_controls.append({'id': 'estado', 'label': 'Estado', 'enabled': True,
list_controls.append({'id': 'estado', 'label': config.get_localized_string(70485), 'enabled': True,
'type': 'list', 'default': -1, 'visible': True})
list_controls[3]['lvalues'] = ['Por estrenar', 'En emisión', 'Terminada', 'Cualquiera']
list_controls[3]['lvalues'] = ['Por estrenar', config.get_localized_string(60264), config.get_localized_string(70379), config.get_localized_string(70450)]
valores["estado"] = ['3', '1', '2', '0']
try:
@@ -3037,7 +3034,7 @@ def filtro_mal(item):
generos = scrapertools.find_multiple_matches(data, patron)
if generos:
list_controls.append({'id': 'labelgenre', 'enabled': True, 'type': 'label', 'default': None,
'label': 'Selecciona uno, ninguno o más de un género',
'label': config.get_localized_string(70451),
'visible': True, 'color': '0xFFC52020'})
for value, genre in generos:
list_controls.append({'id': 'genre' + value, 'label': genre, 'enabled': True,
@@ -3047,7 +3044,7 @@ def filtro_mal(item):
list_controls.append({'id': 'espacio', 'label': '', 'enabled': False,
'type': 'label', 'default': None, 'visible': True})
list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True,
list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True,
'type': 'bool', 'default': False, 'visible': True})
item.valores = valores
@@ -3231,8 +3228,8 @@ def menu_mal(item):
data = httptools.downloadpage(item.url).data
try:
status = {'1': 'Viendo Actualmente', '2': 'Completados', '3': 'En pausa', '4': 'Descartados',
'6': 'Previstos para ver'}
status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385),
'6': config.get_localized_string(70481)}
button, estado = scrapertools.find_single_match(data,
'myinfo_updateInfo"(.*?)>.*?option selected="selected" value="(\d+)"')
if "disabled" in button:
@@ -3249,9 +3246,9 @@ def menu_mal(item):
if "lista" in title_estado:
item.lista = True
itemlist.append(item.clone(title=config.get_localized_string(70390) % (item.contentTitle, title_estado), action=""))
status = {'1': 'Viendo Actualmente', '2': 'Completados', '3': 'En pausa', '4': 'Descartados',
'6': 'Previstos para ver'}
itemlist.append(item.clone(title="Anime: %s%s" % (item.contentTitle, title_estado), action=""))
status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385),
'6': config.get_localized_string(70481)}
for key, value in status.items():
if not value in title_estado:
itemlist.append(

View File

@@ -1350,7 +1350,7 @@ class Tmdb(object):
if "status_code" in self.temporada[numtemporada]:
#Se ha producido un error
msg = "La busqueda de " + buscando + " no dio resultados."
msg = config.get_localized_string(70496) + buscando + config.get_localized_string(70497)
msg += "\nError de tmdb: %s %s" % (
self.temporada[numtemporada]["status_code"], self.temporada[numtemporada]["status_message"])
logger.debug(msg)

View File

@@ -71,11 +71,11 @@ def token_trakt(item):
data = jsontools.load(data)
else:
import time
dialog_auth = platformtools.dialog_progress("Sincronizar con Trakt. No cierres esta ventana",
"1. Entra en la siguiente url: %s" % item.verify_url,
"2. Ingresa este código en la página y acepta: %s"
dialog_auth = platformtools.dialog_progress(config.get_localized_string(60251),
config.get_localized_string(60252) % item.verify_url,
config.get_localized_string(60253)
% item.user_code,
"3. Espera a que se cierre esta ventana")
config.get_localized_string(60254))
# Generalmente cada 5 segundos se intenta comprobar si el usuario ha introducido el código
while True:

View File

@@ -12,11 +12,10 @@ import re
import time
import urllib
from base64 import b64decode
from platformcode import logger
import xbmc
from core import httptools
from platformcode import config
def find_in_text(regex, text, flags=re.IGNORECASE | re.DOTALL):
@@ -28,24 +27,30 @@ def find_in_text(regex, text, flags=re.IGNORECASE | re.DOTALL):
class UnshortenIt(object):
_adfly_regex = r'adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|threadsphere\.bid|restorecosm\.bid|clearload\.bid'
_adfly_regex = r'adf\.ly|j\.gs|q\.gs|u\.bb|ay\.gy|atominik\.com|tinyium\.com|microify\.com|threadsphere\.bid|clearload\.bid'
_linkbucks_regex = r'linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co'
_adfocus_regex = r'adfoc\.us'
_lnxlu_regex = r'lnx\.lu'
_shst_regex = r'sh\.st|gestyy\.com'
_shst_regex = r'sh\.st|festyy\.com|ceesty\.com'
_hrefli_regex = r'href\.li'
_anonymz_regex = r'anonymz\.com'
_shrink_service_regex = r'shrink-service\.it'
_rapidcrypt_regex = r'rapidcrypt\.net'
_maxretries = 5
_this_dir, _this_filename = os.path.split(__file__)
_timeout = 10
def unshorten(self, uri, type=None):
domain = urlsplit(uri).netloc
if not domain:
return uri, "No domain found in URI!"
had_google_outbound, uri = self._clear_google_outbound_proxy(uri)
if re.search(self._adfly_regex, domain,
re.IGNORECASE) or type == 'adfly':
return self._unshorten_adfly(uri)
@@ -68,15 +73,15 @@ class UnshortenIt(object):
return self._unshorten_anonymz(uri)
if re.search(self._rapidcrypt_regex, domain, re.IGNORECASE):
return self._unshorten_rapidcrypt(uri)
return uri, 200
def unwrap_30x(self, uri, timeout=10):
domain = urlsplit(uri).netloc
self._timeout = timeout
loop_counter = 0
try:
if loop_counter > 5:
raise ValueError("Infinitely looping redirect from URL: '%s'" %
(uri,))
# headers stop t.co from working so omit headers if this is a t.co link
if domain == 't.co':
r = httptools.downloadpage(uri, timeout=self._timeout)
@@ -86,29 +91,28 @@ class UnshortenIt(object):
r = httptools.downloadpage(uri, timeout=self._timeout)
uri = re.findall(r'.*url\=(.*?)\"\.*', r.data)[0]
return uri, r.code
else:
while True:
retries = 0
while True:
r = httptools.downloadpage(
uri,
timeout=self._timeout,
follow_redirects=False)
if not r.sucess:
return uri, -1
if 'location' in r.headers and retries < self._maxretries:
r = httptools.downloadpage(
uri,
timeout=self._timeout,
follow_redirects=False,
only_headers=True)
if not r.success:
return uri, -1
retries = 0
if 'location' in r.headers and retries < self._maxretries:
r = httptools.downloadpage(
r.headers['location'],
follow_redirects=False,
only_headers=True)
uri = r.url
loop_counter += 1
retries = retries + 1
else:
return r.url, r.code
r.headers['location'],
follow_redirects=False)
uri = r.url
retries += 1
else:
return r.url, r.code
except Exception as e:
return uri, str(e)
def _clear_google_outbound_proxy(self, url):
'''
So google proxies all their outbound links through a redirect so they can detect outbound links.
@@ -117,13 +121,16 @@ class UnshortenIt(object):
This is useful for doing things like parsing google search results, or if you're scraping google
docs, where google inserts hit-counters on all outbound links.
'''
# This is kind of hacky, because we need to check both the netloc AND
# part of the path. We could use urllib.parse.urlsplit, but it's
# easier and just as effective to use string checks.
if url.startswith("http://www.google.com/url?") or \
url.startswith("https://www.google.com/url?"):
qs = urlparse(url).query
query = parse_qs(qs)
if "q" in query: # Google doc outbound links (maybe blogspot, too)
return True, query["q"].pop()
elif "url" in query: # Outbound links from google searches
@@ -132,10 +139,11 @@ class UnshortenIt(object):
raise ValueError(
"Google outbound proxy URL without a target url ('%s')?" %
url)
return False, url
def _unshorten_adfly(self, uri):
logger.info()
try:
r = httptools.downloadpage(
uri, timeout=self._timeout, cookies=False)
@@ -144,11 +152,14 @@ class UnshortenIt(object):
if len(ysmm) > 0:
ysmm = re.sub(r'var ysmm \= \'|\'\;', '', ysmm[0])
left = ''
right = ''
for c in [ysmm[i:i + 2] for i in range(0, len(ysmm), 2)]:
left += c[0]
right = c[1] + right
# Additional digit arithmetic
encoded_uri = list(left + right)
numbers = ((i, n) for i, n in enumerate(encoded_uri) if str.isdigit(n))
@@ -156,9 +167,12 @@ class UnshortenIt(object):
xor = int(first[1]) ^ int(second[1])
if xor < 10:
encoded_uri[first[0]] = str(xor)
decoded_uri = b64decode("".join(encoded_uri).encode())[16:-16].decode()
if re.search(r'go\.php\?u\=', decoded_uri):
decoded_uri = b64decode(re.sub(r'(.*?)u=', '', decoded_uri)).decode()
return decoded_uri, r.code
else:
return uri, 'No ysmm variable found'
@@ -170,15 +184,25 @@ class UnshortenIt(object):
'''
(Attempt) to decode linkbucks content. HEAVILY based on the OSS jDownloader codebase.
This has necessidated a license change.
'''
if config.is_xbmc():
import xbmc
r = httptools.downloadpage(uri, timeout=self._timeout)
firstGet = time.time()
baseloc = r.url
if "/notfound/" in r.url or \
"(>Link Not Found<|>The link may have been deleted by the owner|To access the content, you must complete a quick survey\.)" in r.data:
return uri, 'Error: Link not found or requires a survey!'
link = None
content = r.data
regexes = [
r"<div id=\"lb_header\">.*?/a>.*?<a.*?href=\"(.*?)\".*?class=\"lb",
r"AdBriteInit\(\"(.*?)\"\)",
@@ -187,49 +211,69 @@ class UnshortenIt(object):
r"src=\"http://static\.linkbucks\.com/tmpl/mint/img/lb\.gif\" /></a>.*?<a href=\"(.*?)\"",
r"id=\"content\" src=\"([^\"]*)",
]
for regex in regexes:
if self.inValidate(link):
link = find_in_text(regex, content)
if self.inValidate(link):
match = find_in_text(r"noresize=\"[0-9+]\" src=\"(http.*?)\"", content)
if match:
link = find_in_text(r"\"frame2\" frameborder.*?src=\"(.*?)\"", content)
if self.inValidate(link):
scripts = re.findall("(<script type=\"text/javascript\">[^<]+</script>)", content)
if not scripts:
return uri, "No script bodies found?"
js = False
for script in scripts:
# cleanup
script = re.sub(r"[\r\n\s]+\/\/\s*[^\r\n]+", "", script)
if re.search(r"\s*var\s*f\s*=\s*window\['init'\s*\+\s*'Lb'\s*\+\s*'js'\s*\+\s*''\];[\r\n\s]+", script):
js = script
if not js:
return uri, "Could not find correct script?"
token = find_in_text(r"Token\s*:\s*'([a-f0-9]{40})'", js)
if not token:
token = find_in_text(r"\?t=([a-f0-9]{40})", js)
assert token
authKeyMatchStr = r"A(?:'\s*\+\s*')?u(?:'\s*\+\s*')?t(?:'\s*\+\s*')?h(?:'\s*\+\s*')?K(?:'\s*\+\s*')?e(?:'\s*\+\s*')?y"
l1 = find_in_text(r"\s*params\['" + authKeyMatchStr + r"'\]\s*=\s*(\d+?);", js)
l2 = find_in_text(
r"\s*params\['" + authKeyMatchStr + r"'\]\s*=\s?params\['" + authKeyMatchStr + r"'\]\s*\+\s*(\d+?);",
js)
if any([not l1, not l2, not token]):
return uri, "Missing required tokens?"
authkey = int(l1) + int(l2)
p1_url = urljoin(baseloc, "/director/?t={tok}".format(tok=token))
r2 = httptools.downloadpage(p1_url, timeout=self._timeout)
p1_url = urljoin(baseloc, "/scripts/jquery.js?r={tok}&{key}".format(tok=token, key=l1))
r2_1 = httptools.downloadpage(p1_url, timeout=self._timeout)
r2 = httptools.downloadpage(p1_url, timeout=self._timeout)
time_left = 5.033 - (time.time() - firstGet)
xbmc.sleep(max(time_left, 0) * 1000)
if config.is_xbmc():
xbmc.sleep(max(time_left, 0) * 1000)
else:
time.sleep(5 * 1000)
p3_url = urljoin(baseloc, "/intermission/loadTargetUrl?t={tok}&aK={key}&a_b=false".format(tok=token,
key=str(authkey)))
r3 = httptools.downloadpage(p3_url, timeout=self._timeout)
resp_json = json.loads(r3.data)
if "Url" in resp_json:
return resp_json['Url'], r3.code
return "Wat", "wat"
def inValidate(self, s):
@@ -237,23 +281,30 @@ class UnshortenIt(object):
# (s == null || s != null && (s.matches("[\r\n\t ]+") || s.equals("") || s.equalsIgnoreCase("about:blank")))
if not s:
return True
if re.search("[\r\n\t ]+", s) or s.lower() == "about:blank":
return True
else:
return False
def _unshorten_adfocus(self, uri):
orig_uri = uri
try:
r = httptools.downloadpage(uri, timeout=self._timeout)
html = r.data
adlink = re.findall("click_url =.*;", html)
if len(adlink) > 0:
uri = re.sub('^click_url = "|"\;$', '', adlink[0])
if re.search(r'http(s|)\://adfoc\.us/serve/skip/\?id\=', uri):
http_header = dict()
http_header["Host"] = "adfoc.us"
http_header["Referer"] = orig_uri
r = httptools.downloadpage(uri, headers=http_header, timeout=self._timeout)
uri = r.url
return uri, r.code
else:
@@ -283,16 +334,23 @@ class UnshortenIt(object):
try:
r = httptools.downloadpage(uri, timeout=self._timeout)
html = r.data
session_id = re.findall(r'sessionId\:(.*?)\"\,', html)
if len(session_id) > 0:
session_id = re.sub(r'\s\"', '', session_id[0])
http_header = dict()
http_header["Content-Type"] = "application/x-www-form-urlencoded"
http_header["Host"] = "sh.st"
http_header["Referer"] = uri
http_header["Origin"] = "http://sh.st"
http_header["X-Requested-With"] = "XMLHttpRequest"
xbmc.sleep(5 * 1000)
if config.is_xbmc():
xbmc.sleep(5 * 1000)
else:
time.sleep(5 * 1000)
payload = {'adSessionId': session_id, 'callback': 'c'}
r = httptools.downloadpage(
'http://sh.st/shortest-url/end-adsession?' +
@@ -300,6 +358,7 @@ class UnshortenIt(object):
headers=http_header,
timeout=self._timeout)
response = r.data[6:-2].decode('utf-8')
if r.code == 200:
resp_uri = json.loads(response)['destinationUrl']
if resp_uri is not None:
@@ -325,8 +384,7 @@ class UnshortenIt(object):
r = httptools.downloadpage(
extracted_uri,
timeout=self._timeout,
follow_redirects=False,
only_headers=True)
follow_redirects=False)
return r.url, r.code
except Exception as e:
return uri, str(e)
@@ -339,9 +397,12 @@ class UnshortenIt(object):
try:
r = httptools.downloadpage(uri, timeout=self._timeout, cookies=False)
html = r.data
uri = re.findall(r"<input type='hidden' name='\d+' id='\d+' value='([^']+)'>", html)[0]
from core import scrapertools
uri = scrapertools.decodeHtmlentities(uri)
uri = uri.replace("&sol;", "/") \
.replace("&colon;", ":") \
.replace("&period;", ".") \
@@ -349,6 +410,7 @@ class UnshortenIt(object):
.replace("&num;", "#") \
.replace("&quest;", "?") \
.replace("&lowbar;", "_")
return uri, r.code
except Exception as e:
@@ -358,7 +420,9 @@ class UnshortenIt(object):
try:
r = httptools.downloadpage(uri, timeout=self._timeout, cookies=False)
html = r.data
uri = re.findall(r'<a class="button" href="([^"]+)">Click to continue</a>', html)[0]
uri = re.findall(r'<a class="push_button blue" href=([^>]+)>', html)[0]
return uri, r.code
except Exception as e:
@@ -379,6 +443,7 @@ def unshorten_only(uri, type=None, timeout=10):
def unshorten(uri, type=None, timeout=10):
unshortener = UnshortenIt()
uri, status = unshortener.unwrap_30x(uri, timeout=timeout)
uri, status = unshortener.unshorten(uri, type=type)
if status == 200:
uri, status = unshortener.unwrap_30x(uri, timeout=timeout)

View File

@@ -1894,7 +1894,7 @@ msgid "Uploading new data"
msgstr ""
msgctxt "#60470"
msgid "Buscando en Tmdb......."
msgid "Searching in Tmdb......."
msgstr ""
msgctxt "#60471"
@@ -2766,7 +2766,7 @@ msgid "Beginning"
msgstr ""
msgctxt "#70013"
msgid "Terror"
msgid "Horror"
msgstr ""
msgctxt "#70014"
@@ -3862,8 +3862,8 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese
msgstr " "
msgctxt "#70290"
msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: "
msgstr " "
msgid "default, you will have to change it again if you want.\nType 's', if you have understood it: "
msgstr ""
msgctxt "#70291"
msgid "Error, during conversion"
@@ -4277,4 +4277,501 @@ msgstr ""
msgctxt "#70392"
msgid "Rate with a [COLOR %s]%s[/ COLOR]"
msgstr ""
msgstr ""
msgctxt "#70393"
msgid "[%s]: Select the correct %s "
msgstr ""
msgctxt "#70394"
msgid "Action"
msgstr ""
msgctxt "#70395"
msgid "Sport"
msgstr ""
msgctxt "#70396"
msgid "Documentary"
msgstr ""
msgctxt "#70397"
msgid "Science fiction"
msgstr ""
msgctxt "#70398"
msgid "Talk Show"
msgstr ""
msgctxt "#70399"
msgid "Family"
msgstr ""
msgctxt "#70400"
msgid "Film-Noir"
msgstr ""
msgctxt "#70401"
msgid "Game-Show"
msgstr ""
msgctxt "#70402"
msgid "Mystery"
msgstr ""
msgctxt "#70403"
msgid "Biography"
msgstr ""
msgctxt "#70404"
msgid "Music"
msgstr ""
msgctxt "#70405"
msgid "History"
msgstr ""
msgctxt "#70406"
msgid "Reality-TV"
msgstr ""
msgctxt "#70407"
msgid "War"
msgstr ""
msgctxt "#70408"
msgid "Musical"
msgstr ""
msgctxt "#70409"
msgid "Romance"
msgstr ""
msgctxt "#70410"
msgid "Thriller"
msgstr "Thriller"
msgctxt "#70411"
msgid "Western"
msgstr ""
msgctxt "#70412"
msgid "Drama"
msgstr ""
msgctxt "#70413"
msgid "2. Enter this code on the page and click Allow: %s"
msgstr ""
msgctxt "#70414"
msgid "Authentication. Do not close this window!!"
msgstr ""
msgctxt "#70415"
msgid "Trakt.tv"
msgstr ""
msgctxt "#70416"
msgid "=== Movies ==="
msgstr ""
msgctxt "#70417"
msgid "=== TV Shows ==="
msgstr ""
msgctxt "#70418"
msgid "Search language in TMDB"
msgstr ""
msgctxt "#70419"
msgid "German"
msgstr ""
msgctxt "#70420"
msgid "French"
msgstr ""
msgctxt "#70421"
msgid "Portuguese"
msgstr ""
msgctxt "#70422"
msgid "Italian"
msgstr ""
msgctxt "#70423"
msgid "Spanish Latin"
msgstr ""
msgctxt "#70424"
msgid "Catalan"
msgstr ""
msgctxt "#70425"
msgid "English"
msgstr ""
msgctxt "#70426"
msgid "Alternative language for TMDB (No main language synopsis)"
msgstr ""
msgctxt "#70427"
msgid "Language of titles in IMDB"
msgstr ""
msgctxt "#70428"
msgid "Filmaffinity website"
msgstr ""
msgctxt "#70429"
msgid "Colombia"
msgstr ""
msgctxt "#70430"
msgid "Chile"
msgstr ""
msgctxt "#70431"
msgid "Argentina"
msgstr ""
msgctxt "#70432"
msgid "Mexico"
msgstr ""
msgctxt "#70433"
msgid "US/UK"
msgstr ""
msgctxt "#70434"
msgid "Spain"
msgstr ""
msgctxt "#70435"
msgid "User Filmaaffinity (Optional)"
msgstr ""
msgctxt "#70436"
msgid "Password Filmaffinity"
msgstr ""
msgctxt "#70437"
msgid "Order personal lists of Filmaffinity by:"
msgstr ""
msgctxt "#70438"
msgid "Position"
msgstr ""
msgctxt "#70439"
msgid "Vote"
msgstr ""
msgctxt "#70440"
msgid "Average grade"
msgstr ""
msgctxt "#70441"
msgid "User MyAnimeList (Optional)"
msgstr ""
msgctxt "#70442"
msgid "Password MyAnimeList"
msgstr ""
msgctxt "#70443"
msgid "Show Hentai in MyAnimeList"
msgstr ""
msgctxt "#70444"
msgid "Profile 3"
msgstr ""
msgctxt "#70445"
msgid "Profile 2"
msgstr ""
msgctxt "#70446"
msgid "Profile 1"
msgstr ""
msgctxt "#70447"
msgid "[%s] The file has been deleted"
msgstr ""
msgctxt "#70448"
msgid "[%s] The file is still in process"
msgstr ""
msgctxt "#70449"
msgid ""
msgstr ""
msgctxt "#70450"
msgid "Anyone"
msgstr ""
msgctxt "#70451"
msgid "Select one, none or more than one gender"
msgstr "S"
msgctxt "#70452"
msgid "Year from"
msgstr ""
msgctxt "#70453"
msgid "Year until"
msgstr ""
msgctxt "#70454"
msgid "Minimum number of votes"
msgstr ""
msgctxt "#70455"
msgid "Order by"
msgstr ""
msgctxt "#70456"
msgid "Popularity Desc"
msgstr ""
msgctxt "#70457"
msgid "Popularity Asc"
msgstr ""
msgctxt "#70458"
msgid "Year Desc"
msgstr ""
msgctxt "#70459"
msgid "Year Asc"
msgstr ""
msgctxt "#70460"
msgid "Desc Rating"
msgstr ""
msgctxt "#70461"
msgid "Asc Rating"
msgstr ""
msgctxt "#70462"
msgid "Title [A-Z]"
msgstr ""
msgctxt "#70463"
msgid "Title [Z-A]"
msgstr ""
msgctxt "#70464"
msgid "Set as default filter"
msgstr ""
msgctxt "#70465"
msgid "Key word"
msgstr ""
msgctxt "#70466"
msgid "Country"
msgstr ""
msgctxt "#70467"
msgid "Select a genre"
msgstr ""
msgctxt "#70468"
msgid "Indicate your vote"
msgstr ""
msgctxt "#70469"
msgid "Added"
msgstr ""
msgctxt "#70470"
msgid "Premiere"
msgstr ""
msgctxt "#70471"
msgid "Duration"
msgstr ""
msgctxt "#70472"
msgid "Popularity"
msgstr ""
msgctxt "#70473"
msgid "Rating"
msgstr ""
msgctxt "#70474"
msgid "Votes"
msgstr ""
msgctxt "#70475"
msgid "upward"
msgstr ""
msgctxt "#70476"
msgid "falling"
msgstr ""
msgctxt "#70477"
msgid "Upward"
msgstr ""
msgctxt "#70478"
msgid "Falling"
msgstr ""
msgctxt "#70479"
msgid "Currently watching"
msgstr ""
msgctxt "#70480"
msgid "Completed"
msgstr ""
msgctxt "#70481"
msgid "Anticipated to see"
msgstr ""
msgctxt "#70482"
msgid "Kind"
msgstr ""
msgctxt "#70483"
msgid "Special"
msgstr ""
msgctxt "#70484"
msgid "OVA"
msgstr ""
msgctxt "#70485"
msgid "Status"
msgstr ""
msgctxt "#70486"
msgid "(1) Grotesque"
msgstr ""
msgctxt "#70487"
msgid "(2) Horrible"
msgstr ""
msgctxt "#70488"
msgid "(3) Very bad"
msgstr ""
msgctxt "#70489"
msgid "(4) Bad"
msgstr ""
msgctxt "#70490"
msgid "(5) Regular"
msgstr ""
msgctxt "#70491"
msgid "(6) Pasable"
msgstr ""
msgctxt "#70492"
msgid "(7) Good"
msgstr ""
msgctxt "#70493"
msgid "(8) Very good"
msgstr ""
msgctxt "#70494"
msgid "(9) Genial"
msgstr ""
msgctxt "#70495"
msgid "(10) Masterpiece"
msgstr ""
msgctxt "#70496"
msgid "The search for "
msgstr ""
msgctxt "#70497"
msgid " did not match."
msgstr ""
msgctxt "#70498"
msgid "Producer: "
msgstr ""
msgctxt "#70499"
msgid "Genre: "
msgstr ""
msgctxt "#70500"
msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")"
msgstr ""
msgctxt "#70501"
msgid "Search did not match (%s)"
msgstr ""
msgctxt "#70502"
msgid ">> Next"
msgstr ""
msgctxt "#70503"
msgid "There is no available video"
msgstr ""
msgctxt "#70504"
msgid "Loading trailers..."
msgstr ""
msgctxt "#70505"
msgid "Enter the title to search"
msgstr ""
msgctxt "#70506"
msgid "Searching: "
msgstr ""
msgctxt "#70507"
msgid "Search in Youtube"
msgstr ""
msgctxt "#70508"
msgid "Search in Abandomoviez"
msgstr ""
msgctxt "#70509"
msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)"
msgstr ""
msgctxt "#70510"
msgid "Manual Search in Youtube"
msgstr ""
msgctxt "#70511"
msgid "Manual Search in Abandomoviez"
msgstr ""
msgctxt "#70512"
msgid "Searching in abandomoviez"
msgstr ""
msgctxt "#70513"
msgid "Manual Searching in Filmaffinity"
msgstr ""
msgctxt "#70514"
msgid "Manual Search in Jayhap"
msgstr ""
msgctxt "#70515"
msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]"
msgstr ""
msgctxt "#70516"
msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]"
msgstr ""

View File

@@ -2754,7 +2754,7 @@ msgid "Beginnin"
msgstr "Inizio"
msgctxt "#70013"
msgid "Terror"
msgid "Horror"
msgstr "Orrore"
msgctxt "#70014"
@@ -3846,8 +3846,8 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese
msgstr "Alfa\nCorretto un errore nella sezione adulti, la password è sta resettata a quella di "
msgctxt "#70290"
msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: "
msgstr "default, puoi cambiarla di nuovo se vuoi.\n Scrivi 's', se hai capito: "
msgid "default, you will have to change it again if you want.\nType 's', if you have understood it: "
msgstr "default, puoi cambiarla di nuovo se vuoi.\nScrivi 's', se hai capito: "
msgctxt "#70291"
msgid "Error, during conversion"
@@ -3997,7 +3997,7 @@ msgstr "[FA] Aggiungi o rimuovi da un elenco utenti"
msgctxt "#70327"
msgid "It's part of: %s"
msgstr "E'parte di: %s"
msgstr "Fa parte di: %s"
msgctxt "#70328"
msgid "%ss similarar"
@@ -4261,4 +4261,505 @@ msgstr "Aggiungi alla lista %s"
msgctxt "#70392"
msgid "Rate with a [COLOR %s]%s[/ COLOR]"
msgstr "Dai un punteggio con un [COLOR %s]%s[/COLOR]"
msgstr "Dai un punteggio con un [COLOR %s]%s[/COLOR]"
msgctxt "#70393"
msgid "[%s]: Select the correct %s "
msgstr "[%s]: Seleziona la %s corretta"
msgctxt "#70394"
msgid "Action"
msgstr "Azione"
msgctxt "#70395"
msgid "Sport"
msgstr "Sport"
msgctxt "#70396"
msgid "Documentary"
msgstr "Documentari"
msgctxt "#70397"
msgid "Science fiction"
msgstr "Fantascienza"
msgctxt "#70398"
msgid "Talk Show"
msgstr "Talk Show"
msgctxt "#70399"
msgid "Family"
msgstr "Famiglia"
msgctxt "#70400"
msgid "Film-Noir"
msgstr "Film Noir"
msgctxt "#70401"
msgid "Game-Show"
msgstr "Game Show"
msgctxt "#70402"
msgid "Mystery"
msgstr "Mistero"
msgctxt "#70403"
msgid "Biography"
msgstr "Biografía"
msgctxt "#70404"
msgid "Music"
msgstr "Musica"
msgctxt "#70405"
msgid "History"
msgstr "Storico"
msgctxt "#70406"
msgid "Reality-TV"
msgstr "Reality Show"
msgctxt "#70407"
msgid "War"
msgstr "Guerra"
msgctxt "#70408"
msgid "Musical"
msgstr "Musical"
msgctxt "#70409"
msgid "Romance"
msgstr "Romantico"
msgctxt "#70410"
msgid "Thriller"
msgstr "Thriller"
msgctxt "#70411"
msgid "Western"
msgstr "Western"
msgctxt "#70412"
msgid "Drama"
msgstr "Drammatico"
msgctxt "#70413"
msgid ""
msgstr ""
msgctxt "#70413"
msgid "2. Enter this code on the page and click Allow: %s"
msgstr "2. Inserisci questo codice nella pagina e premi Allow: %s"
msgctxt "#70414"
msgid "Authentication. Do not close this window!!"
msgstr "Autenticazione. Non chiudere questa finestra!!"
msgctxt "#70415"
msgid "Trakt.tv"
msgstr "Trakt.tv"
msgctxt "#70416"
msgid "=== Movies ==="
msgstr "=== Film ==="
msgctxt "#70417"
msgid "=== TV Shows ==="
msgstr "=== Serie TV ==="
msgctxt "#70418"
msgid "Search language in TMDB"
msgstr "Ligua di ricerca in TMDB"
msgctxt "#70419"
msgid "German"
msgstr "Tedesco"
msgctxt "#70420"
msgid "French"
msgstr "Francese"
msgctxt "#70421"
msgid "Portuguese"
msgstr "Portoghese"
msgctxt "#70422"
msgid "Italian"
msgstr "Italiano"
msgctxt "#70423"
msgid "Spanish Latin"
msgstr "Spagnolo Latino"
msgctxt "#70424"
msgid "Catalan"
msgstr "Catalano"
msgctxt "#70425"
msgid "English"
msgstr "Inglese"
msgctxt "#70426"
msgid "Alternative language for TMDB (No main language synopsis)"
msgstr "Linguaggio alternativo per TMDB (sinossi senza lingua principale)"
msgctxt "#70427"
msgid "Language of titles in IMDB"
msgstr "Lingua per i titoli in IMDB"
msgctxt "#70428"
msgid "Filmaffinity website"
msgstr "Sitio Web Filmaffinity"
msgctxt "#70429"
msgid "Colombia"
msgstr "Colombia"
msgctxt "#70430"
msgid "Chile"
msgstr "Cile"
msgctxt "#70431"
msgid "Argentina"
msgstr "Argentina"
msgctxt "#70432"
msgid "Mexico"
msgstr "Messico"
msgctxt "#70433"
msgid "US/UK"
msgstr "US/UK"
msgctxt "#70434"
msgid "Spain"
msgstr "Spagna"
msgctxt "#70435"
msgid "User Filmaaffinity (Optional)"
msgstr "Username Filmaffinity (Opzionale)"
msgctxt "#70436"
msgid "Password Filmaffinity"
msgstr "Password Filmaffinity"
msgctxt "#70437"
msgid "Order personal lists of Filmaffinity by:"
msgstr "Ordina liste personali di Filmaffinity per:"
msgctxt "#70438"
msgid "Position"
msgstr "Posizione"
msgctxt "#70439"
msgid "Vote"
msgstr "Voto"
msgctxt "#70440"
msgid "Average grade"
msgstr "Valutazione media"
msgctxt "#70441"
msgid "User MyAnimeList (Optional)"
msgstr "Username MyAnimeList (Opzionale)"
msgctxt "#70442"
msgid "Password MyAnimeList"
msgstr "Password MyAnimeList"
msgctxt "#70443"
msgid "Show Hentai in MyAnimeList"
msgstr "Mostra Hentai in MyAnimeList"
msgctxt "#70444"
msgid "Profile 3"
msgstr "Perofilo 3"
msgctxt "#70445"
msgid "Profile 2"
msgstr "Profilo 2"
msgctxt "#70446"
msgid "Profile 1"
msgstr "Profilo 1"
msgctxt "#70447"
msgid "[%s] The file has been deleted"
msgstr "[%s] Il file è stato cancellato"
msgctxt "#70448"
msgid "[%s] The file is still in process"
msgstr "[%s] Il file è ancora in elaborazione"
msgctxt "#70449"
msgid "[%s] The file does not exist or has been deleted"
msgstr "[%s] Il file non esiste oppure è stato cancellato"
msgctxt "#70450"
msgid "Anyone"
msgstr "Qualsiasi"
msgctxt "#70451"
msgid "Select one, none or more than one gender"
msgstr "Seleziona uno, nessuno o più di un genere"
msgctxt "#70452"
msgid "Year from"
msgstr "Anno da:"
msgctxt "#70453"
msgid "Year until"
msgstr "Anno fino a:"
msgctxt "#70454"
msgid "Minimum number of votes"
msgstr "Numero minimo di voti"
msgctxt "#70455"
msgid "Order by"
msgstr "Ordina per"
msgctxt "#70456"
msgid "Popularity Desc"
msgstr "Popolarità Desc"
msgctxt "#70457"
msgid "Popularity Asc"
msgstr "Popolarità Asc"
msgctxt "#70458"
msgid "Year Desc"
msgstr "Anno Desc"
msgctxt "#70459"
msgid "Year Asc"
msgstr "Anno Asc"
msgctxt "#70460"
msgid "Desc Rating"
msgstr "Rating Desc"
msgctxt "#70461"
msgid "Asc Rating"
msgstr "Rating Asc"
msgctxt "#70462"
msgid "Title [A-Z]"
msgstr "Titolo [A-Z]"
msgctxt "#70463"
msgid "Title [Z-A]"
msgstr "Titolo[Z-A]"
msgctxt "#70464"
msgid "Set as default filter"
msgstr "Impostare come filtro di default"
msgctxt "#70465"
msgid "Key word"
msgstr "Parola Chiave"
msgctxt "#70466"
msgid "Country"
msgstr "Nazione"
msgctxt "#70467"
msgid "Select a genre"
msgstr "Seleziona un genere"
msgctxt "#70468"
msgid "Indicate your vote"
msgstr "Indica il tuo voto:"
msgctxt "#70469"
msgid "Added"
msgstr "Aggiunto"
msgctxt "#70470"
msgid "Premiere"
msgstr "Premiere"
msgctxt "#70471"
msgid "Duration"
msgstr "Durata"
msgctxt "#70472"
msgid "Popularity"
msgstr "Popolarità"
msgctxt "#70473"
msgid "Rating"
msgstr "Rating"
msgctxt "#70474"
msgid "Votes"
msgstr "Voti"
msgctxt "#70475"
msgid "upward"
msgstr "ascendente"
msgctxt "#70476"
msgid "falling"
msgstr "discendente"
msgctxt "#70477"
msgid "Upward"
msgstr "Ascendente"
msgctxt "#70478"
msgid "Falling"
msgstr "Discendente"
msgctxt "#70479"
msgid "Currently watching"
msgstr "In visione attualmente"
msgctxt "#70480"
msgid "Completed"
msgstr "Completati"
msgctxt "#70481"
msgid "Anticipated to see"
msgstr "Da vedersi"
msgctxt "#70482"
msgid "Kind"
msgstr "Tipo"
msgctxt "#70483"
msgid "Special"
msgstr "Special"
msgctxt "#70484"
msgid "OVA"
msgstr "OVA"
msgctxt "#70485"
msgid "Status"
msgstr "Stato"
msgctxt "#70486"
msgid "(1) Grotesque"
msgstr "(1) Grottesco"
msgctxt "#70487"
msgid "(2) Horrible"
msgstr "(2) orribile"
msgctxt "#70488"
msgid "(3) Very bad"
msgstr "(3) Bruttissimo"
msgctxt "#70489"
msgid "(4) Bad"
msgstr "(4) Brutto"
msgctxt "#70490"
msgid "(5) Regular"
msgstr "(5) Regulare"
msgctxt "#70491"
msgid "(6) Pasable"
msgstr "(6) Passabile"
msgctxt "#70492"
msgid "(7) Good"
msgstr "(7) Buono"
msgctxt "#70493"
msgid "(8) Very good"
msgstr "(8) Ottimo"
msgctxt "#70494"
msgid "(9) Genial"
msgstr "(9) Geniale"
msgctxt "#70495"
msgid "(10) Masterpiece"
msgstr "(10) Capolavoro"
msgctxt "#70496"
msgid "The search for "
msgstr "La ricerca di "
msgctxt "#70497"
msgid " did not match."
msgstr " non ha dato risultati."
msgctxt "#70498"
msgid "Producer: "
msgstr "Produzione: "
msgctxt "#70499"
msgid "Genre: "
msgstr "Genere: "
msgctxt "#70500"
msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")"
msgstr "Notifica([COLOR red][B]Aggiorna Kodi alla sua ultima versione[/B][/COLOR], [COLOR skyblue]per migliori info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")"
msgctxt "#70501"
msgid "Search did not match (%s)"
msgstr "La ricerca non ha dato risultati (%s)"
msgctxt "#70502"
msgid ">> Next"
msgstr ">> Successivo"
msgctxt "#70503"
msgid "There is no available video"
msgstr "Nessun video disponibile"
msgctxt "#70504"
msgid "Loading trailers..."
msgstr "Caricamento trailers..."
msgctxt "#70505"
msgid "Enter the title to search"
msgstr "Inserisci il titolo da cercare"
msgctxt "#70506"
msgid "Searching: "
msgstr "Ricerca: "
msgctxt "#70507"
msgid "Search in Youtube"
msgstr "Ricerca in Youtube"
msgctxt "#70508"
msgid "Search in Abandomoviez"
msgstr "Ricerca inAbandomoviez"
msgctxt "#70509"
msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)"
msgstr "Ricerca in Jayhap (Youtube, Vimeo & Dailymotion)"
msgctxt "#70510"
msgid "Manual Search in Youtube"
msgstr "Ricerca Manuale in Youtube"
msgctxt "#70511"
msgid "Manual Search in Abandomoviez"
msgstr "Ricerca Manuale in Abandomoviez"
msgctxt "#70512"
msgid "Searching in abandomoviez"
msgstr "Ricerca in abandomoviez"
msgctxt "#70513"
msgid "Manual Searching in Filmaffinity"
msgstr "Ricerca Manuale in Filmaffinity"
msgctxt "#70514"
msgid "Manual Search in Jayhap"
msgstr "Ricerca Manuale in Jayhap"
msgctxt "#70515"
msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]Completata %s[/B][/COLOR]"
msgctxt "#70516"
msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]In Corso %s[/B][/COLOR]"

View File

@@ -2766,7 +2766,7 @@ msgid "Beginning"
msgstr "Inìcio"
msgctxt "#70013"
msgid "Terror"
msgid "Horror"
msgstr "Terror"
msgctxt "#70014"
@@ -3255,7 +3255,7 @@ msgstr "Colores Personalizados"
msgctxt "#70137"
msgid "Movies"
msgstr "Peliculas"
msgstr "Películas"
msgctxt "#70138"
msgid "Low Rating"
@@ -3850,7 +3850,7 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese
msgstr "Alfa\nCorregido un error en la seccion adultos, se ha reseteado la contrasena a por "
msgctxt "#70290"
msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: "
msgid "default, you will have to change it again if you want.\n Type 's', if you have understood it: "
msgstr "defecto, tendra que cambiarla de nuevo si lo desea.\n Escriba 's', si lo ha entendido: "
msgctxt "#70291"
@@ -3964,7 +3964,7 @@ msgid "Listen to BSO - List of songs"
msgstr "Escuchar BSO - Lista de canciones"
msgctxt "#70318"
msgid "Manage yor trakt account"
msgid "Manage your trakt account"
msgstr "Gestionar con tu cuenta Trakt"
msgctxt "#70319"
@@ -4266,3 +4266,504 @@ msgstr "Añadir a lista %s"
msgctxt "#70392"
msgid "Rate with a [COLOR %s]%s[/ COLOR]"
msgstr "Puntuar con un [COLOR %s]%s[/COLOR]"
msgctxt "#70393"
msgid "[%s]: Select the correct %s "
msgstr "[%s]: Selecciona la %s correcta"
msgctxt "#70394"
msgid "Action"
msgstr "Accion"
msgctxt "#70395"
msgid "Sport"
msgstr "Deportes"
msgctxt "#70396"
msgid "Documentary"
msgstr "Documental"
msgctxt "#70397"
msgid "Science fiction"
msgstr "Ciencia Ficción"
msgctxt "#70398"
msgid "Talk Show"
msgstr "Entrevistas"
msgctxt "#70399"
msgid "Family"
msgstr "Familia"
msgctxt "#70400"
msgid "Film-Noir"
msgstr "Cine Negro"
msgctxt "#70401"
msgid "Game-Show"
msgstr "Concursos"
msgctxt "#70402"
msgid "Mystery"
msgstr "Intriga"
msgctxt "#70403"
msgid "Biography"
msgstr "Biografía"
msgctxt "#70404"
msgid "Music"
msgstr "Música"
msgctxt "#70405"
msgid "History"
msgstr "Historia"
msgctxt "#70406"
msgid "Reality-TV"
msgstr "Reality"
msgctxt "#70407"
msgid "War"
msgstr "Cine Bélico"
msgctxt "#70408"
msgid "Musical"
msgstr "Musical"
msgctxt "#70409"
msgid "Romance"
msgstr "Romance"
msgctxt "#70410"
msgid "Thriller"
msgstr "Thriller"
msgctxt "#70411"
msgid "Western"
msgstr "Western"
msgctxt "#70412"
msgid "Drama"
msgstr "Drama"
msgctxt "#70413"
msgid "2. Enter this code on the page and click Allow: %s"
msgstr "2. Ingresa este código en la página y presiona Allow: %s"
msgctxt "#70414"
msgid "Authentication. Do not close this window!!"
msgstr "Autentificación. No cierres esta ventana!!"
msgctxt "#70415"
msgid "Trakt.tv"
msgstr "Trakt.tv"
msgctxt "#70416"
msgid "=== Movies ==="
msgstr "=== Peliculas ==="
msgctxt "#70417"
msgid "=== TV Shows ==="
msgstr "=== Series ==="
msgctxt "#70418"
msgid "Search language in TMDB"
msgstr "Idioma de búsqueda en TMDB"
msgctxt "#70419"
msgid "German"
msgstr "Alemán"
msgctxt "#70420"
msgid "French"
msgstr "Francés"
msgctxt "#70421"
msgid "Portuguese"
msgstr "Portugués"
msgctxt "#70422"
msgid "Italian"
msgstr "Italiano"
msgctxt "#70423"
msgid "Spanish Latin"
msgstr "Español Latino"
msgctxt "#70424"
msgid "Catalan"
msgstr "Catalán"
msgctxt "#70425"
msgid "English"
msgstr "Inglés"
msgctxt "#70426"
msgid "Alternative language for TMDB (No main language synopsis)"
msgstr "Idioma alternativo para TMDB (No sinopsis idioma principal)"
msgctxt "#70427"
msgid "Language of titles in IMDB"
msgstr "Idioma de los títulos en IMDB"
msgctxt "#70428"
msgid "Filmaffinity website"
msgstr "Sitio Web Filmaffinity"
msgctxt "#70429"
msgid "Colombia"
msgstr "Colombia"
msgctxt "#70430"
msgid "Chile"
msgstr "Chile"
msgctxt "#70431"
msgid "Argentina"
msgstr "Argentina"
msgctxt "#70432"
msgid "Mexico"
msgstr "México"
msgctxt "#70433"
msgid "US/UK"
msgstr "US/UK"
msgctxt "#70434"
msgid "Spain"
msgstr "España"
msgctxt "#70435"
msgid "User Filmaaffinity (Optional)"
msgstr "Usuario Filmaffinity (Opcional)"
msgctxt "#70436"
msgid "Password Filmaffinity"
msgstr "Contraseña Filmaffinity"
msgctxt "#70437"
msgid "Order personal lists of Filmaffinity by:"
msgstr "Ordenar listas personales de Filmaffinity por:"
msgctxt "#70438"
msgid "Position"
msgstr "Posición"
msgctxt "#70439"
msgid "Vote"
msgstr "Voto"
msgctxt "#70440"
msgid "Average grade"
msgstr "Nota media"
msgctxt "#70441"
msgid "User MyAnimeList (Optional)"
msgstr "Usuario MyAnimeList (Opcional)"
msgctxt "#70442"
msgid "Password MyAnimeList"
msgstr "Contraseña MyAnimeList"
msgctxt "#70443"
msgid "Show Hentai in MyAnimeList"
msgstr "Mostrar Hentais en MyAnimeList"
msgctxt "#70444"
msgid "Profile 3"
msgstr "Perfil 3"
msgctxt "#70445"
msgid "Profile 2"
msgstr "Perfil 2"
msgctxt "#70446"
msgid "Profile 1"
msgstr "Perfil 1"
msgctxt "#70447"
msgid "[%s] The file has been deleted"
msgstr "[%s] El fichero ha sido borrado"
msgctxt "#70448"
msgid "[%s] The file is still in process"
msgstr "[%s] El fichero está en proceso todavía"
msgctxt "#70449"
msgid "[%s] The file does not exist or has been deleted"
msgstr "[%s] El archivo no existe o ha sido borrado"
msgctxt "#70450"
msgid "Anyone"
msgstr "Cualquiera"
msgctxt "#70451"
msgid "Select one, none or more than one gender"
msgstr "Selecciona uno, ninguno o más de un género"
msgctxt "#70452"
msgid "Year from"
msgstr "Año desde:"
msgctxt "#70453"
msgid "Year until"
msgstr "Año hasta:"
msgctxt "#70454"
msgid "Minimum number of votes"
msgstr "Número mínimo de votos"
msgctxt "#70455"
msgid "Order by"
msgstr "Ordenar por"
msgctxt "#70456"
msgid "Popularity Desc"
msgstr "Popularidad Desc"
msgctxt "#70457"
msgid "Popularity Asc"
msgstr "Popularidad Asc"
msgctxt "#70458"
msgid "Year Desc"
msgstr "Año Desc"
msgctxt "#70459"
msgid "Year Asc"
msgstr "Año Asc"
msgctxt "#70460"
msgid "Desc Rating"
msgstr "Valoración Desc"
msgctxt "#70461"
msgid "Asc Rating"
msgstr "Valoración Asc"
msgctxt "#70462"
msgid "Title [A-Z]"
msgstr "Título [A-Z]"
msgctxt "#70463"
msgid "Title [Z-A]"
msgstr "Título [Z-A]"
msgctxt "#70464"
msgid "Set as default filter"
msgstr "Establecer como filtro por defecto"
msgctxt "#70465"
msgid "Key word"
msgstr "Palabra Clave"
msgctxt "#70466"
msgid "Country"
msgstr "País"
msgctxt "#70467"
msgid "Select a genre"
msgstr "Selecciona un género"
msgctxt "#70468"
msgid "Indicate your vote"
msgstr "Indica tu voto:"
msgctxt "#70469"
msgid "Added"
msgstr "Añadido"
msgctxt "#70470"
msgid "Premiere"
msgstr "Estreno"
msgctxt "#70471"
msgid "Duration"
msgstr "Duración"
msgctxt "#70472"
msgid "Popularity"
msgstr "Popularidad"
msgctxt "#70473"
msgid "Rating"
msgstr "Valoración"
msgctxt "#70474"
msgid "Votes"
msgstr "Votos"
msgctxt "#70475"
msgid "upward"
msgstr "ascendente"
msgctxt "#70476"
msgid "falling"
msgstr "descendente"
msgctxt "#70477"
msgid "Upward"
msgstr "Ascendente"
msgctxt "#70478"
msgid "Falling"
msgstr "Descendente"
msgctxt "#70479"
msgid "Currently watching"
msgstr "Viendo Actualmente"
msgctxt "#70480"
msgid "Completed"
msgstr "Completados"
msgctxt "#70481"
msgid "Anticipated to see"
msgstr "Previstos para ver"
msgctxt "#70482"
msgid "Kind"
msgstr "Tipo"
msgctxt "#70483"
msgid "Special"
msgstr "Especial"
msgctxt "#70484"
msgid "OVA"
msgstr "OVA"
msgctxt "#70485"
msgid "Status"
msgstr "Estado"
msgctxt "#70486"
msgid "(1) Grotesque"
msgstr "(1) Grotesca"
msgctxt "#70487"
msgid "(2) Horrible"
msgstr "(2) Horrible"
msgctxt "#70488"
msgid "(3) Very bad"
msgstr "(3) Muy mala"
msgctxt "#70489"
msgid "(4) Bad"
msgstr "(4) Mala"
msgctxt "#70490"
msgid "(5) Regular"
msgstr "(5) Regular"
msgctxt "#70491"
msgid "(6) Pasable"
msgstr "(6) Pasable"
msgctxt "#70492"
msgid "(7) Good"
msgstr "(7) Buena"
msgctxt "#70493"
msgid "(8) Very good"
msgstr "(8) Muy buena"
msgctxt "#70494"
msgid "(9) Genial"
msgstr "(9) Genial"
msgctxt "#70495"
msgid "(10) Masterpiece"
msgstr "(10) Obra maestra"
msgctxt "#70496"
msgid "The search for "
msgstr "La busqueda de "
msgctxt "#70497"
msgid " did not match."
msgstr " no dio resultados."
msgctxt "#70497"
msgid " did not match."
msgstr " no dio resultados."
msgctxt "#70498"
msgid "Producer: "
msgstr "Productora: "
msgctxt "#70499"
msgid "Genre: "
msgstr "Género: "
msgctxt "#70500"
msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")"
msgstr "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")"
msgctxt "#70501"
msgid "Search did not match (%s)"
msgstr "La búsqueda no ha dado resultados (%s)"
msgctxt "#70502"
msgid ">> Next"
msgstr ">> Siguiente"
msgctxt "#70503"
msgid "There is no available video"
msgstr "No hay ningún vídeo disponible"
msgctxt "#70504"
msgid "Loading trailers..."
msgstr "Cargando trailers..."
msgctxt "#70505"
msgid "Enter the title to search"
msgstr "Introduce el título a buscar"
msgctxt "#70506"
msgid "Searching: "
msgstr "Buscando: "
msgctxt "#70507"
msgid "Search in Youtube"
msgstr "Búsqueda en Youtube"
msgctxt "#70508"
msgid "Search in Abandomoviez"
msgstr "Búsqueda en Abandomoviez"
msgctxt "#70509"
msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)"
msgstr "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)"
msgctxt "#70510"
msgid "Manual Search in Youtube"
msgstr "Búsqueda Manual en Youtube"
msgctxt "#70511"
msgid "Manual Search in Abandomoviez"
msgstr "Búsqueda Manual en Abandomoviez"
msgctxt "#70512"
msgid "Searching in abandomoviez"
msgstr "Buscando en abandomoviez"
msgctxt "#70513"
msgid "Manual Searching in Filmaffinity"
msgstr "Búsqueda Manual en Filmaffinity"
msgctxt "#70514"
msgid "Manual Search in Jayhap"
msgstr "Búsqueda Manual en Jayhap"
msgctxt "#70515"
msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]"
msgctxt "#70516"
msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]"

View File

@@ -2766,7 +2766,7 @@ msgid "Beginning"
msgstr "Inìcio"
msgctxt "#70013"
msgid "Terror"
msgid "Horror"
msgstr "Terror"
msgctxt "#70014"
@@ -3255,7 +3255,7 @@ msgstr "Colores Personalizados"
msgctxt "#70137"
msgid "Movies"
msgstr "Peliculas"
msgstr "Películas"
msgctxt "#70138"
msgid "Low Rating"
@@ -3850,7 +3850,7 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese
msgstr "Alfa\nCorregido un error en la seccion adultos, se ha reseteado la contrasena a por "
msgctxt "#70290"
msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: "
msgid "default, you will have to change it again if you want.\n Type 's', if you have understood it: "
msgstr "defecto, tendra que cambiarla de nuevo si lo desea.\n Escriba 's', si lo ha entendido: "
msgctxt "#70291"
@@ -3964,7 +3964,7 @@ msgid "Listen to BSO - List of songs"
msgstr "Escuchar BSO - Lista de canciones"
msgctxt "#70318"
msgid "Manage yor trakt account"
msgid "Manage your trakt account"
msgstr "Gestionar con tu cuenta Trakt"
msgctxt "#70319"
@@ -4266,3 +4266,504 @@ msgstr "Añadir a lista %s"
msgctxt "#70392"
msgid "Rate with a [COLOR %s]%s[/ COLOR]"
msgstr "Puntuar con un [COLOR %s]%s[/COLOR]"
msgctxt "#70393"
msgid "[%s]: Select the correct %s "
msgstr "[%s]: Selecciona la %s correcta"
msgctxt "#70394"
msgid "Action"
msgstr "Accion"
msgctxt "#70395"
msgid "Sport"
msgstr "Deportes"
msgctxt "#70396"
msgid "Documentary"
msgstr "Documental"
msgctxt "#70397"
msgid "Science fiction"
msgstr "Ciencia Ficción"
msgctxt "#70398"
msgid "Talk Show"
msgstr "Entrevistas"
msgctxt "#70399"
msgid "Family"
msgstr "Familia"
msgctxt "#70400"
msgid "Film-Noir"
msgstr "Cine Negro"
msgctxt "#70401"
msgid "Game-Show"
msgstr "Concursos"
msgctxt "#70402"
msgid "Mystery"
msgstr "Intriga"
msgctxt "#70403"
msgid "Biography"
msgstr "Biografía"
msgctxt "#70404"
msgid "Music"
msgstr "Música"
msgctxt "#70405"
msgid "History"
msgstr "Historia"
msgctxt "#70406"
msgid "Reality-TV"
msgstr "Reality"
msgctxt "#70407"
msgid "War"
msgstr "Cine Bélico"
msgctxt "#70408"
msgid "Musical"
msgstr "Musical"
msgctxt "#70409"
msgid "Romance"
msgstr "Romance"
msgctxt "#70410"
msgid "Thriller"
msgstr "Thriller"
msgctxt "#70411"
msgid "Western"
msgstr "Western"
msgctxt "#70412"
msgid "Drama"
msgstr "Drama"
msgctxt "#70413"
msgid "2. Enter this code on the page and click Allow: %s"
msgstr "2. Ingresa este código en la página y presiona Allow: %s"
msgctxt "#70414"
msgid "Authentication. Do not close this window!!"
msgstr "Autentificación. No cierres esta ventana!!"
msgctxt "#70415"
msgid "Trakt.tv"
msgstr "Trakt.tv"
msgctxt "#70416"
msgid "=== Movies ==="
msgstr "=== Peliculas ==="
msgctxt "#70417"
msgid "=== TV Shows ==="
msgstr "=== Series ==="
msgctxt "#70418"
msgid "Search language in TMDB"
msgstr "Idioma de búsqueda en TMDB"
msgctxt "#70419"
msgid "German"
msgstr "Alemán"
msgctxt "#70420"
msgid "French"
msgstr "Francés"
msgctxt "#70421"
msgid "Portuguese"
msgstr "Portugués"
msgctxt "#70422"
msgid "Italian"
msgstr "Italiano"
msgctxt "#70423"
msgid "Spanish Latin"
msgstr "Español Latino"
msgctxt "#70424"
msgid "Catalan"
msgstr "Catalán"
msgctxt "#70425"
msgid "English"
msgstr "Inglés"
msgctxt "#70426"
msgid "Alternative language for TMDB (No main language synopsis)"
msgstr "Idioma alternativo para TMDB (No sinopsis idioma principal)"
msgctxt "#70427"
msgid "Language of titles in IMDB"
msgstr "Idioma de los títulos en IMDB"
msgctxt "#70428"
msgid "Filmaffinity website"
msgstr "Sitio Web Filmaffinity"
msgctxt "#70429"
msgid "Colombia"
msgstr "Colombia"
msgctxt "#70430"
msgid "Chile"
msgstr "Chile"
msgctxt "#70431"
msgid "Argentina"
msgstr "Argentina"
msgctxt "#70432"
msgid "Mexico"
msgstr "México"
msgctxt "#70433"
msgid "US/UK"
msgstr "US/UK"
msgctxt "#70434"
msgid "Spain"
msgstr "España"
msgctxt "#70435"
msgid "User Filmaaffinity (Optional)"
msgstr "Usuario Filmaffinity (Opcional)"
msgctxt "#70436"
msgid "Password Filmaffinity"
msgstr "Contraseña Filmaffinity"
msgctxt "#70437"
msgid "Order personal lists of Filmaffinity by:"
msgstr "Ordenar listas personales de Filmaffinity por:"
msgctxt "#70438"
msgid "Position"
msgstr "Posición"
msgctxt "#70439"
msgid "Vote"
msgstr "Voto"
msgctxt "#70440"
msgid "Average grade"
msgstr "Nota media"
msgctxt "#70441"
msgid "User MyAnimeList (Optional)"
msgstr "Usuario MyAnimeList (Opcional)"
msgctxt "#70442"
msgid "Password MyAnimeList"
msgstr "Contraseña MyAnimeList"
msgctxt "#70443"
msgid "Show Hentai in MyAnimeList"
msgstr "Mostrar Hentais en MyAnimeList"
msgctxt "#70444"
msgid "Profile 3"
msgstr "Perfil 3"
msgctxt "#70445"
msgid "Profile 2"
msgstr "Perfil 2"
msgctxt "#70446"
msgid "Profile 1"
msgstr "Perfil 1"
msgctxt "#70447"
msgid "[%s] The file has been deleted"
msgstr "[%s] El fichero ha sido borrado"
msgctxt "#70448"
msgid "[%s] The file is still in process"
msgstr "[%s] El fichero está en proceso todavía"
msgctxt "#70449"
msgid "[%s] The file does not exist or has been deleted"
msgstr "[%s] El archivo no existe o ha sido borrado"
msgctxt "#70450"
msgid "Anyone"
msgstr "Cualquiera"
msgctxt "#70451"
msgid "Select one, none or more than one gender"
msgstr "Selecciona uno, ninguno o más de un género"
msgctxt "#70452"
msgid "Year from"
msgstr "Año desde:"
msgctxt "#70453"
msgid "Year until"
msgstr "Año hasta:"
msgctxt "#70454"
msgid "Minimum number of votes"
msgstr "Número mínimo de votos"
msgctxt "#70455"
msgid "Order by"
msgstr "Ordenar por"
msgctxt "#70456"
msgid "Popularity Desc"
msgstr "Popularidad Desc"
msgctxt "#70457"
msgid "Popularity Asc"
msgstr "Popularidad Asc"
msgctxt "#70458"
msgid "Year Desc"
msgstr "Año Desc"
msgctxt "#70459"
msgid "Year Asc"
msgstr "Año Asc"
msgctxt "#70460"
msgid "Desc Rating"
msgstr "Valoración Desc"
msgctxt "#70461"
msgid "Asc Rating"
msgstr "Valoración Asc"
msgctxt "#70462"
msgid "Title [A-Z]"
msgstr "Título [A-Z]"
msgctxt "#70463"
msgid "Title [Z-A]"
msgstr "Título [Z-A]"
msgctxt "#70464"
msgid "Set as default filter"
msgstr "Establecer como filtro por defecto"
msgctxt "#70465"
msgid "Key word"
msgstr "Palabra Clave"
msgctxt "#70466"
msgid "Country"
msgstr "País"
msgctxt "#70467"
msgid "Select a genre"
msgstr "Selecciona un género"
msgctxt "#70468"
msgid "Indicate your vote"
msgstr "Indica tu voto:"
msgctxt "#70469"
msgid "Added"
msgstr "Añadido"
msgctxt "#70470"
msgid "Premiere"
msgstr "Estreno"
msgctxt "#70471"
msgid "Duration"
msgstr "Duración"
msgctxt "#70472"
msgid "Popularity"
msgstr "Popularidad"
msgctxt "#70473"
msgid "Rating"
msgstr "Valoración"
msgctxt "#70474"
msgid "Votes"
msgstr "Votos"
msgctxt "#70475"
msgid "upward"
msgstr "ascendente"
msgctxt "#70476"
msgid "falling"
msgstr "descendente"
msgctxt "#70477"
msgid "Upward"
msgstr "Ascendente"
msgctxt "#70478"
msgid "Falling"
msgstr "Descendente"
msgctxt "#70479"
msgid "Currently watching"
msgstr "Viendo Actualmente"
msgctxt "#70480"
msgid "Completed"
msgstr "Completados"
msgctxt "#70481"
msgid "Anticipated to see"
msgstr "Previstos para ver"
msgctxt "#70482"
msgid "Kind"
msgstr "Tipo"
msgctxt "#70483"
msgid "Special"
msgstr "Especial"
msgctxt "#70484"
msgid "OVA"
msgstr "OVA"
msgctxt "#70485"
msgid "Status"
msgstr "Estado"
msgctxt "#70486"
msgid "(1) Grotesque"
msgstr "(1) Grotesca"
msgctxt "#70487"
msgid "(2) Horrible"
msgstr "(2) Horrible"
msgctxt "#70488"
msgid "(3) Very bad"
msgstr "(3) Muy mala"
msgctxt "#70489"
msgid "(4) Bad"
msgstr "(4) Mala"
msgctxt "#70490"
msgid "(5) Regular"
msgstr "(5) Regular"
msgctxt "#70491"
msgid "(6) Pasable"
msgstr "(6) Pasable"
msgctxt "#70492"
msgid "(7) Good"
msgstr "(7) Buena"
msgctxt "#70493"
msgid "(8) Very good"
msgstr "(8) Muy buena"
msgctxt "#70494"
msgid "(9) Genial"
msgstr "(9) Genial"
msgctxt "#70495"
msgid "(10) Masterpiece"
msgstr "(10) Obra maestra"
msgctxt "#70496"
msgid "The search for "
msgstr "La busqueda de "
msgctxt "#70497"
msgid " did not match."
msgstr " no dio resultados."
msgctxt "#70497"
msgid " did not match."
msgstr " no dio resultados."
msgctxt "#70498"
msgid "Producer: "
msgstr "Productora: "
msgctxt "#70499"
msgid "Genre: "
msgstr "Género: "
msgctxt "#70500"
msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")"
msgstr "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")"
msgctxt "#70501"
msgid "Search did not match (%s)"
msgstr "La búsqueda no ha dado resultados (%s)"
msgctxt "#70502"
msgid ">> Next"
msgstr ">> Siguiente"
msgctxt "#70503"
msgid "There is no available video"
msgstr "No hay ningún vídeo disponible"
msgctxt "#70504"
msgid "Loading trailers..."
msgstr "Cargando trailers..."
msgctxt "#70505"
msgid "Enter the title to search"
msgstr "Introduce el título a buscar"
msgctxt "#70506"
msgid "Searching: "
msgstr "Buscando: "
msgctxt "#70507"
msgid "Search in Youtube"
msgstr "Búsqueda en Youtube"
msgctxt "#70508"
msgid "Search in Abandomoviez"
msgstr "Búsqueda en Abandomoviez"
msgctxt "#70509"
msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)"
msgstr "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)"
msgctxt "#70510"
msgid "Manual Search in Youtube"
msgstr "Búsqueda Manual en Youtube"
msgctxt "#70511"
msgid "Manual Search in Abandomoviez"
msgstr "Búsqueda Manual en Abandomoviez"
msgctxt "#70512"
msgid "Searching in abandomoviez"
msgstr "Buscando en abandomoviez"
msgctxt "#70513"
msgid "Manual Searching in Filmaffinity"
msgstr "Búsqueda Manual en Filmaffinity"
msgctxt "#70514"
msgid "Manual Search in Jayhap"
msgstr "Búsqueda Manual en Jayhap"
msgctxt "#70515"
msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]"
msgctxt "#70516"
msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]"

View File

@@ -2766,7 +2766,7 @@ msgid "Beginning"
msgstr "Inìcio"
msgctxt "#70013"
msgid "Terror"
msgid "Horror"
msgstr "Terror"
msgctxt "#70014"
@@ -3255,7 +3255,7 @@ msgstr "Colores Personalizados"
msgctxt "#70137"
msgid "Movies"
msgstr "Peliculas"
msgstr "Películas"
msgctxt "#70138"
msgid "Low Rating"
@@ -3850,7 +3850,7 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese
msgstr "Alfa\nCorregido un error en la seccion adultos, se ha reseteado la contrasena a por "
msgctxt "#70290"
msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: "
msgid "default, you will have to change it again if you want.\n Type 's', if you have understood it: "
msgstr "defecto, tendra que cambiarla de nuevo si lo desea.\n Escriba 's', si lo ha entendido: "
msgctxt "#70291"
@@ -3964,7 +3964,7 @@ msgid "Listen to BSO - List of songs"
msgstr "Escuchar BSO - Lista de canciones"
msgctxt "#70318"
msgid "Manage yor trakt account"
msgid "Manage your trakt account"
msgstr "Gestionar con tu cuenta Trakt"
msgctxt "#70319"
@@ -4266,3 +4266,504 @@ msgstr "Añadir a lista %s"
msgctxt "#70392"
msgid "Rate with a [COLOR %s]%s[/ COLOR]"
msgstr "Puntuar con un [COLOR %s]%s[/COLOR]"
msgctxt "#70393"
msgid "[%s]: Select the correct %s "
msgstr "[%s]: Selecciona la %s correcta"
msgctxt "#70394"
msgid "Action"
msgstr "Accion"
msgctxt "#70395"
msgid "Sport"
msgstr "Deportes"
msgctxt "#70396"
msgid "Documentary"
msgstr "Documental"
msgctxt "#70397"
msgid "Science fiction"
msgstr "Ciencia Ficción"
msgctxt "#70398"
msgid "Talk Show"
msgstr "Entrevistas"
msgctxt "#70399"
msgid "Family"
msgstr "Familia"
msgctxt "#70400"
msgid "Film-Noir"
msgstr "Cine Negro"
msgctxt "#70401"
msgid "Game-Show"
msgstr "Concursos"
msgctxt "#70402"
msgid "Mystery"
msgstr "Intriga"
msgctxt "#70403"
msgid "Biography"
msgstr "Biografía"
msgctxt "#70404"
msgid "Music"
msgstr "Música"
msgctxt "#70405"
msgid "History"
msgstr "Historia"
msgctxt "#70406"
msgid "Reality-TV"
msgstr "Reality"
msgctxt "#70407"
msgid "War"
msgstr "Cine Bélico"
msgctxt "#70408"
msgid "Musical"
msgstr "Musical"
msgctxt "#70409"
msgid "Romance"
msgstr "Romance"
msgctxt "#70410"
msgid "Thriller"
msgstr "Thriller"
msgctxt "#70411"
msgid "Western"
msgstr "Western"
msgctxt "#70412"
msgid "Drama"
msgstr "Drama"
msgctxt "#70413"
msgid "2. Enter this code on the page and click Allow: %s"
msgstr "2. Ingresa este código en la página y presiona Allow: %s"
msgctxt "#70414"
msgid "Authentication. Do not close this window!!"
msgstr "Autentificación. No cierres esta ventana!!"
msgctxt "#70415"
msgid "Trakt.tv"
msgstr "Trakt.tv"
msgctxt "#70416"
msgid "=== Movies ==="
msgstr "=== Peliculas ==="
msgctxt "#70417"
msgid "=== TV Shows ==="
msgstr "=== Series ==="
msgctxt "#70418"
msgid "Search language in TMDB"
msgstr "Idioma de búsqueda en TMDB"
msgctxt "#70419"
msgid "German"
msgstr "Alemán"
msgctxt "#70420"
msgid "French"
msgstr "Francés"
msgctxt "#70421"
msgid "Portuguese"
msgstr "Portugués"
msgctxt "#70422"
msgid "Italian"
msgstr "Italiano"
msgctxt "#70423"
msgid "Spanish Latin"
msgstr "Español Latino"
msgctxt "#70424"
msgid "Catalan"
msgstr "Catalán"
msgctxt "#70425"
msgid "English"
msgstr "Inglés"
msgctxt "#70426"
msgid "Alternative language for TMDB (No main language synopsis)"
msgstr "Idioma alternativo para TMDB (No sinopsis idioma principal)"
msgctxt "#70427"
msgid "Language of titles in IMDB"
msgstr "Idioma de los títulos en IMDB"
msgctxt "#70428"
msgid "Filmaffinity website"
msgstr "Sitio Web Filmaffinity"
msgctxt "#70429"
msgid "Colombia"
msgstr "Colombia"
msgctxt "#70430"
msgid "Chile"
msgstr "Chile"
msgctxt "#70431"
msgid "Argentina"
msgstr "Argentina"
msgctxt "#70432"
msgid "Mexico"
msgstr "México"
msgctxt "#70433"
msgid "US/UK"
msgstr "US/UK"
msgctxt "#70434"
msgid "Spain"
msgstr "España"
msgctxt "#70435"
msgid "User Filmaaffinity (Optional)"
msgstr "Usuario Filmaffinity (Opcional)"
msgctxt "#70436"
msgid "Password Filmaffinity"
msgstr "Contraseña Filmaffinity"
msgctxt "#70437"
msgid "Order personal lists of Filmaffinity by:"
msgstr "Ordenar listas personales de Filmaffinity por:"
msgctxt "#70438"
msgid "Position"
msgstr "Posición"
msgctxt "#70439"
msgid "Vote"
msgstr "Voto"
msgctxt "#70440"
msgid "Average grade"
msgstr "Nota media"
msgctxt "#70441"
msgid "User MyAnimeList (Optional)"
msgstr "Usuario MyAnimeList (Opcional)"
msgctxt "#70442"
msgid "Password MyAnimeList"
msgstr "Contraseña MyAnimeList"
msgctxt "#70443"
msgid "Show Hentai in MyAnimeList"
msgstr "Mostrar Hentais en MyAnimeList"
msgctxt "#70444"
msgid "Profile 3"
msgstr "Perfil 3"
msgctxt "#70445"
msgid "Profile 2"
msgstr "Perfil 2"
msgctxt "#70446"
msgid "Profile 1"
msgstr "Perfil 1"
msgctxt "#70447"
msgid "[%s] The file has been deleted"
msgstr "[%s] El fichero ha sido borrado"
msgctxt "#70448"
msgid "[%s] The file is still in process"
msgstr "[%s] El fichero está en proceso todavía"
msgctxt "#70449"
msgid "[%s] The file does not exist or has been deleted"
msgstr "[%s] El archivo no existe o ha sido borrado"
msgctxt "#70450"
msgid "Anyone"
msgstr "Cualquiera"
msgctxt "#70451"
msgid "Select one, none or more than one gender"
msgstr "Selecciona uno, ninguno o más de un género"
msgctxt "#70452"
msgid "Year from"
msgstr "Año desde:"
msgctxt "#70453"
msgid "Year until"
msgstr "Año hasta:"
msgctxt "#70454"
msgid "Minimum number of votes"
msgstr "Número mínimo de votos"
msgctxt "#70455"
msgid "Order by"
msgstr "Ordenar por"
msgctxt "#70456"
msgid "Popularity Desc"
msgstr "Popularidad Desc"
msgctxt "#70457"
msgid "Popularity Asc"
msgstr "Popularidad Asc"
msgctxt "#70458"
msgid "Year Desc"
msgstr "Año Desc"
msgctxt "#70459"
msgid "Year Asc"
msgstr "Año Asc"
msgctxt "#70460"
msgid "Desc Rating"
msgstr "Valoración Desc"
msgctxt "#70461"
msgid "Asc Rating"
msgstr "Valoración Asc"
msgctxt "#70462"
msgid "Title [A-Z]"
msgstr "Título [A-Z]"
msgctxt "#70463"
msgid "Title [Z-A]"
msgstr "Título [Z-A]"
msgctxt "#70464"
msgid "Set as default filter"
msgstr "Establecer como filtro por defecto"
msgctxt "#70465"
msgid "Key word"
msgstr "Palabra Clave"
msgctxt "#70466"
msgid "Country"
msgstr "País"
msgctxt "#70467"
msgid "Select a genre"
msgstr "Selecciona un género"
msgctxt "#70468"
msgid "Indicate your vote"
msgstr "Indica tu voto:"
msgctxt "#70469"
msgid "Added"
msgstr "Añadido"
msgctxt "#70470"
msgid "Premiere"
msgstr "Estreno"
msgctxt "#70471"
msgid "Duration"
msgstr "Duración"
msgctxt "#70472"
msgid "Popularity"
msgstr "Popularidad"
msgctxt "#70473"
msgid "Rating"
msgstr "Valoración"
msgctxt "#70474"
msgid "Votes"
msgstr "Votos"
msgctxt "#70475"
msgid "upward"
msgstr "ascendente"
msgctxt "#70476"
msgid "falling"
msgstr "descendente"
msgctxt "#70477"
msgid "Upward"
msgstr "Ascendente"
msgctxt "#70478"
msgid "Falling"
msgstr "Descendente"
msgctxt "#70479"
msgid "Currently watching"
msgstr "Viendo Actualmente"
msgctxt "#70480"
msgid "Completed"
msgstr "Completados"
msgctxt "#70481"
msgid "Anticipated to see"
msgstr "Previstos para ver"
msgctxt "#70482"
msgid "Kind"
msgstr "Tipo"
msgctxt "#70483"
msgid "Special"
msgstr "Especial"
msgctxt "#70484"
msgid "OVA"
msgstr "OVA"
msgctxt "#70485"
msgid "Status"
msgstr "Estado"
msgctxt "#70486"
msgid "(1) Grotesque"
msgstr "(1) Grotesca"
msgctxt "#70487"
msgid "(2) Horrible"
msgstr "(2) Horrible"
msgctxt "#70488"
msgid "(3) Very bad"
msgstr "(3) Muy mala"
msgctxt "#70489"
msgid "(4) Bad"
msgstr "(4) Mala"
msgctxt "#70490"
msgid "(5) Regular"
msgstr "(5) Regular"
msgctxt "#70491"
msgid "(6) Pasable"
msgstr "(6) Pasable"
msgctxt "#70492"
msgid "(7) Good"
msgstr "(7) Buena"
msgctxt "#70493"
msgid "(8) Very good"
msgstr "(8) Muy buena"
msgctxt "#70494"
msgid "(9) Genial"
msgstr "(9) Genial"
msgctxt "#70495"
msgid "(10) Masterpiece"
msgstr "(10) Obra maestra"
msgctxt "#70496"
msgid "The search for "
msgstr "La busqueda de "
msgctxt "#70497"
msgid " did not match."
msgstr " no dio resultados."
msgctxt "#70497"
msgid " did not match."
msgstr " no dio resultados."
msgctxt "#70498"
msgid "Producer: "
msgstr "Productora: "
msgctxt "#70499"
msgid "Genre: "
msgstr "Género: "
msgctxt "#70500"
msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")"
msgstr "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")"
msgctxt "#70501"
msgid "Search did not match (%s)"
msgstr "La búsqueda no ha dado resultados (%s)"
msgctxt "#70502"
msgid ">> Next"
msgstr ">> Siguiente"
msgctxt "#70503"
msgid "There is no available video"
msgstr "No hay ningún vídeo disponible"
msgctxt "#70504"
msgid "Loading trailers..."
msgstr "Cargando trailers..."
msgctxt "#70505"
msgid "Enter the title to search"
msgstr "Introduce el título a buscar"
msgctxt "#70506"
msgid "Searching: "
msgstr "Buscando: "
msgctxt "#70507"
msgid "Search in Youtube"
msgstr "Búsqueda en Youtube"
msgctxt "#70508"
msgid "Search in Abandomoviez"
msgstr "Búsqueda en Abandomoviez"
msgctxt "#70509"
msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)"
msgstr "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)"
msgctxt "#70510"
msgid "Manual Search in Youtube"
msgstr "Búsqueda Manual en Youtube"
msgctxt "#70511"
msgid "Manual Search in Abandomoviez"
msgstr "Búsqueda Manual en Abandomoviez"
msgctxt "#70512"
msgid "Searching in abandomoviez"
msgstr "Buscando en abandomoviez"
msgctxt "#70513"
msgid "Manual Searching in Filmaffinity"
msgstr "Búsqueda Manual en Filmaffinity"
msgctxt "#70514"
msgid "Manual Search in Jayhap"
msgstr "Búsqueda Manual en Jayhap"
msgctxt "#70515"
msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]"
msgctxt "#70516"
msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]"
msgstr "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]"

View File

@@ -94,10 +94,10 @@ def authentication():
device_code = data["device_code"]
intervalo = data["interval"]
dialog_auth = platformtools.dialog_progress("Autentificación. No cierres esta ventana!!",
"1. Entra en la siguiente url: %s" % verify_url,
"2. Ingresa este código en la página y presiona Allow: %s" % user_code,
"3. Espera a que se cierre esta ventana")
dialog_auth = platformtools.dialog_progress(config.get_localized_string(70414),
config.get_localized_string(60252) % verify_url,
config.get_localized_string(70413) % user_code,
config.get_localized_string(60254))
# Generalmente cada 5 segundos se intenta comprobar si el usuario ha introducido el código
while True: