From fa5bb51759ef78a80bc11b0d874bc6dd168a389d Mon Sep 17 00:00:00 2001
From: Kingbox <37674310+lopezvg@users.noreply.github.com>
Date: Wed, 8 Aug 2018 20:28:19 +0200
Subject: [PATCH] NewPct1: Agrupa los episodios por Temporadas
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
En el método Episodios se agrupan los episodios por Temporadas, siempre que haya más de una Temporada.
El 99% de código reside el generictools.post_tmdb_seasons
Por diseño de la web, no reperesenta un ahorro de tiempo, solo clarifica el contenido de la pantalla
---
plugin.video.alfa/channels/newpct1.json | 4 +-
plugin.video.alfa/channels/newpct1.py | 67 ++++++---
plugin.video.alfa/lib/generictools.py | 176 +++++++++++++++++++++++-
3 files changed, 224 insertions(+), 23 deletions(-)
diff --git a/plugin.video.alfa/channels/newpct1.json b/plugin.video.alfa/channels/newpct1.json
index cff73741..c01d3a25 100644
--- a/plugin.video.alfa/channels/newpct1.json
+++ b/plugin.video.alfa/channels/newpct1.json
@@ -41,8 +41,8 @@
"visible": true,
"lvalues": [
"Torrentrapid",
- "Torrentlocura",
"Tumejortorrent",
+ "Torrentlocura",
"Tvsinpagar",
"Descargas2020",
"Mispelisyseries"
@@ -52,7 +52,7 @@
"id": "clonenewpct1_channels_list",
"type": "text",
"label": "Lista de clones de NewPct1 y orden de uso",
- "default": "('1', 'torrentrapid', 'http://torrentrapid.com/', 'movie, tvshow, season, episode', 'serie_episodios'), ('1', 'torrentlocura', 'http://torrentlocura.com/', 'movie, tvshow, season, episode', ''), ('1', 'tumejortorrent', 'http://tumejortorrent.com/', 'movie, tvshow, season, episode', ''), ('1', 'tvsinpagar', 'http://www.tvsinpagar.com/', 'tvshow, season, episode', ''), ('1', 'descargas2020', 'http://descargas2020.com/', 'movie, tvshow, season, episode', ''), ('1', 'mispelisyseries', 'http://mispelisyseries.com/', 'movie', 'search, listado_busqueda')",
+ "default": "('1', 'torrentrapid', 'http://torrentrapid.com/', 'movie, tvshow, season, episode', 'serie_episodios'), ('1', 'tumejortorrent', 'http://tumejortorrent.com/', 'movie, tvshow, season, episode', ''), ('1', 'torrentlocura', 'http://torrentlocura.com/', 'movie, tvshow, season, episode', ''), ('1', 'tvsinpagar', 'http://www.tvsinpagar.com/', 'tvshow, season, episode', ''), ('1', 'descargas2020', 'http://descargas2020.com/', 'movie, tvshow, season, episode', ''), ('1', 'mispelisyseries', 'http://mispelisyseries.com/', 'movie', 'search, listado_busqueda')",
"enabled": true,
"visible": false
},
diff --git a/plugin.video.alfa/channels/newpct1.py b/plugin.video.alfa/channels/newpct1.py
index 3da3f9d4..cc34b3d1 100644
--- a/plugin.video.alfa/channels/newpct1.py
+++ b/plugin.video.alfa/channels/newpct1.py
@@ -373,6 +373,7 @@ def listado(item):
elif item.extra == "series" and not "/miniseries" in item.url:
item.action = "episodios"
item.contentType = "tvshow"
+ item.season_colapse = True
pag = True
elif item.extra == "varios" or "/miniseries" in item.url:
item.action = "findvideos"
@@ -827,7 +828,7 @@ def listado_busqueda(item):
title_lista += [scrapedurl_alt]
else:
title_lista += [scrapedurl]
- if "juego/" in scrapedurl or "xbox" in scrapedurl.lower() or "xbox" in scrapedtitle.lower() or "windows" in scrapedtitle.lower() or "windows" in calidad.lower() or "nintendo" in scrapedtitle.lower() or "xbox" in calidad.lower() or "epub" in calidad.lower() or "pdf" in calidad.lower() or "pcdvd" in calidad.lower() or "crack" in calidad.lower(): # no mostramos lo que no sean videos
+ if ("juego/" in scrapedurl or "xbox" in scrapedurl.lower()) and not "/serie" in scrapedurl or "xbox" in scrapedtitle.lower() or "windows" in scrapedtitle.lower() or "windows" in calidad.lower() or "nintendo" in scrapedtitle.lower() or "xbox" in calidad.lower() or "epub" in calidad.lower() or "pdf" in calidad.lower() or "pcdvd" in calidad.lower() or "crack" in calidad.lower(): # no mostramos lo que no sean videos
continue
cnt_title += 1 # Sería una línea real más para Itemlist
@@ -863,7 +864,7 @@ def listado_busqueda(item):
item_local.url = url
item_local.extra2 = 'serie_episodios' #Creamos acción temporal excluyente para otros clones
if item_local.category == 'Mispelisyseries': #Esta web no gestiona bien el cambio de episodio a Serie
- pattern = 'class="btn-torrent">.*?window.location.href = "(.*?)";' #Patron para .torrent
+ pattern = 'class="btn-torrent">.*?window.location.href = "([^"]+)";' #Patron para .torrent
#Como no hay datos consistentes, llamamos al método de fail_over para que encuentre un canal que esté activo y pueda gestionar el cambio de episodio por serie
item_local, data_serie = generictools.fail_over_newpct1(item_local, pattern)
else:
@@ -872,7 +873,7 @@ def listado_busqueda(item):
except:
pass
- pattern = 'class="btn-torrent">.*?window.location.href = "(.*?)";' #Patron para .torrent
+ pattern = 'class="btn-torrent">.*?window.location.href = "([^"]+)";' #Patron para .torrent
if not data_serie or (not scrapertools.find_single_match(data_serie, pattern) and not '
( 0 ) Resultados encontrados ' in data and not '' in data):
logger.error("ERROR 01: LISTADO_BUSQUEDA: La Web no responde o ha cambiado de URL: " + item_local.url + " / DATA: " + data_serie)
#Si no hay datos consistentes, llamamos al método de fail_over para que encuentre un canal que esté activo y pueda gestionar el cambio de episodio por serie
@@ -892,7 +893,7 @@ def listado_busqueda(item):
item_local.url = item_local.url.replace('/series/', '/series-vo/')
#item_local.url = re.sub(r'\/\d+$', '/', item_local.url) #Quitamos el ID de la serie por compatib.
if item_local.url:
- title_subs += ["Episodio %sx%s" % (scrapertools.find_single_match(url, '\/temp.*?-(\d+)\/cap.*?-(\d+)\/'))]
+ title_subs += ["Episodio %sx%s" % (scrapertools.find_single_match(url, '\/temp.*?-(\d+)-?\/cap.*?-(\d+(?:-al-\d+)?)-?\/'))]
url = item_local.url
except:
pass
@@ -900,8 +901,8 @@ def listado_busqueda(item):
if item.extra == "novedades" and "/serie" in url:
if not item_local.url or episodio_serie == 0:
item_local.url = url
- if scrapertools.find_single_match(url, '\/temp.*?-(\d+)\/cap.*?-(\d+)\/'):
- title_subs += ["Episodio %sx%s" % (scrapertools.find_single_match(url, '\/temp.*?-(\d+)\/cap.*?-(\d+)\/'))]
+ if scrapertools.find_single_match(url, '\/temp.*?-(\d+)-?\/cap.*?-(\d+(?:-al-\d+)?)-?\/'):
+ title_subs += ["Episodio %sx%s" % (scrapertools.find_single_match(url, '\/temp.*?-(\d+)-?\/cap.*?-(\d+(?:-al-\d+)?)-?\/'))]
else:
title_subs += ["Episodio 1x01"]
@@ -909,6 +910,7 @@ def listado_busqueda(item):
if (".com/serie" in url or "/serie" in url or "-serie" in url) and not "/miniseries" in url and (not "/capitulo" in url or "pelisyseries.com" in item_local.channel_host): #Series
item_local.action = "episodios"
item_local.contentType = "tvshow"
+ item_local.season_colapse = True
item_local.extra = "series"
elif "varios/" in url or "/miniseries" in url: #Documentales y varios
item_local.action = "findvideos"
@@ -963,6 +965,7 @@ def listado_busqueda(item):
title = re.sub(r' - [t|T]emp\w+.*?\d+', '', title)
title = re.sub(r' [t|T]emp.*?\d+[x|X]\d+', '', title)
title = re.sub(r' [t|T]emp.*?\d+', '', title)
+ title = re.sub(r' [c|C]ap.*?\d+ al \d+', '', title)
title = re.sub(r' [c|C]ap.*?\d+', '', title)
if "audio" in title.lower(): #Reservamos info de audio para después de TMDB
title_subs += ['[%s]' % scrapertools.find_single_match(title, r'(\[[a|A]udio.*?\])')]
@@ -1531,24 +1534,40 @@ def episodios(item):
item, data = generictools.fail_over_newpct1(item, verify_fo)
#Limpiamos num. Temporada y Episodio que ha podido quedar por Novedades
+ season_display = 0
if item.contentSeason:
+ if item.season_colapse: #Si viene del menú de Temporadas...
+ season_display = item.contentSeason #... salvamos el num de sesión a pintar
+ item.from_num_season_colapse = season_display
+ del item.season_colapse
+ item.contentType = "tvshow"
+ if item.from_title_season_colapse:
+ item.title = item.from_title_season_colapse
+ del item.from_title_season_colapse
+ if item.infoLabels['title']:
+ del item.infoLabels['title']
del item.infoLabels['season']
if item.contentEpisodeNumber:
del item.infoLabels['episode']
+ if season_display == 0 and item.from_num_season_colapse:
+ season_display = item.from_num_season_colapse
# Obtener la información actualizada de la Serie. TMDB es imprescindible para Videoteca
if not item.infoLabels['tmdb_id']:
- tmdb.set_infoLabels(item, True)
+ try:
+ tmdb.set_infoLabels(item, True) #TMDB de cada Temp
+ except:
+ pass
modo_ultima_temp_alt = modo_ultima_temp
- if item.ow_force == "1": #Si hay un traspaso de canal o url, se actualiza todo
+ if item.ow_force == "1": #Si hay un traspaso de canal o url, se actualiza todo
modo_ultima_temp_alt = False
max_temp = 1
if item.infoLabels['number_of_seasons']:
max_temp = item.infoLabels['number_of_seasons']
y = []
- if modo_ultima_temp_alt and item.library_playcounts: #Averiguar cuantas temporadas hay en Videoteca
+ if modo_ultima_temp_alt and item.library_playcounts: #Averiguar cuantas temporadas hay en Videoteca
patron = 'season (\d+)'
matches = re.compile(patron, re.DOTALL).findall(str(item.library_playcounts))
for x in matches:
@@ -1664,9 +1683,7 @@ def episodios(item):
estado = True #Buena calidad de datos por defecto
if "\d+)?)<.+?]+>(?P.*?)?<\/span>\s*Calidad\s*]+>" \
- "[\[]\s*(?P.*?)?\s*[\]]<\/span>"
+ pattern = "[^>]+>.*?Temporada\s*(?:]+>\[\s?)?(?P\d+)?.*?Capitulo(?:s)?\s*(?:]+>\[\s?)?(?P\d+)?(?:.*?(?P\d+)?)<.*?]+>(?P.*?)?<\/span>\s*Calidad\s*]+>[\[]\s*(?P.*?)?\s*[\]]<\/span>"
if not scrapertools.find_single_match(info, pattern):
if "especial" in info.lower(): # Capitulos Especiales
pattern = ".*?[^>]+>.*?Temporada.*?\[.*?(?P\d+).*?\].*?Capitulo.*?\[\s*(?P\d+).*?\]?(?:.*?(?P\d+)?)<.+?]+>(?P.*?)?<\/span>\s*Calidad\s*]+>[\[]\s*(?P.*?)?\s*[\]]<\/span>"
@@ -1768,11 +1785,19 @@ def episodios(item):
break #Sale del bucle actual del FOR de episodios por página
#if ('%sx%s' % (str(item_local.contentSeason), str(item_local.contentEpisodeNumber).zfill(2))) in item.library_playcounts:
# continue
-
+
+ if season_display > 0:
+ if item_local.contentSeason > season_display:
+ continue
+ elif item_local.contentSeason < season_display:
+ break
+
if item_local.active:
del item_local.active
if item_local.contentTitle:
del item_local.infoLabels['title']
+ if item_local.season_colapse:
+ del item_local.season_colapse
item_local.context = "['buscar_trailer']"
item_local.action = "findvideos"
item_local.contentType = "episode"
@@ -1780,19 +1805,25 @@ def episodios(item):
itemlist.append(item_local.clone())
+ #logger.debug(item_local)
+
data = ''
if len(itemlist) > 1:
itemlist = sorted(itemlist, key=lambda it: (int(it.contentSeason), int(it.contentEpisodeNumber))) #clasificamos
+
+ if item.season_colapse and not item.add_videolibrary: #Si viene de listado, mostramos solo Temporadas
+ item, itemlist = generictools.post_tmdb_seasons(item, itemlist)
- # Pasada por TMDB y clasificación de lista por temporada y episodio
- tmdb.set_infoLabels(itemlist, True)
+ if not item.season_colapse: #Si no es pantalla de Temporadas, pintamos todo
+ # Pasada por TMDB y clasificación de lista por temporada y episodio
+ tmdb.set_infoLabels(itemlist, True)
+
+ #Llamamos al método para el maquillaje de los títulos obtenidos desde TMDB
+ item, itemlist = generictools.post_tmdb_episodios(item, itemlist)
#logger.debug(item)
- #Llamamos al método para el maquillaje de los títulos obtenidos desde TMDB
- item, itemlist = generictools.post_tmdb_episodios(item, itemlist)
-
return itemlist
diff --git a/plugin.video.alfa/lib/generictools.py b/plugin.video.alfa/lib/generictools.py
index 0148dfa0..8f1c130e 100644
--- a/plugin.video.alfa/lib/generictools.py
+++ b/plugin.video.alfa/lib/generictools.py
@@ -75,6 +75,9 @@ def update_title(item):
else:
item.add_videolibrary = True #Estamos Añadiendo a la Videoteca. Indicador para control de uso de los Canales
if item.add_videolibrary:
+ if item.season_colapse: del item.season_colapse
+ if item.from_num_season_colapse: del item.from_num_season_colapse
+ if item.from_title_season_colapse: del item.from_title_season_colapse
if item.contentType == "movie":
if item.from_title_tmdb: #Si se salvó el título del contenido devuelto por TMDB, se restaura.
item.title = item.from_title_tmdb
@@ -169,11 +172,11 @@ def update_title(item):
if new_item.infoLabels['rating']: #Actualizamos en Rating en el título
try:
rating_old = ''
- if new_item.infoLabels['rating'] and new_item.infoLabels['rating'] != '0.0':
+ if new_item.infoLabels['rating'] and new_item.infoLabels['rating'] != 0.0:
rating_old = float(new_item.infoLabels['rating'])
rating_old = round(rating_old, 1)
rating_new = ''
- if item.infoLabels['rating'] and item.infoLabels['rating'] != '0.0':
+ if item.infoLabels['rating'] and item.infoLabels['rating'] != 0.0:
rating_new = float(item.infoLabels['rating'])
rating_new = round(rating_new, 1)
item.title = item.title.replace("[" + str(rating_old) + "]", "[" + str(rating_new) + "]")
@@ -290,6 +293,8 @@ def post_tmdb_listado(item, itemlist):
if item_local.infoLabels['rating'] and item_local.infoLabels['rating'] != 0.0:
rating = float(item_local.infoLabels['rating'])
rating = round(rating, 1)
+ if rating == 0.0:
+ rating = ''
except:
pass
@@ -396,6 +401,160 @@ def post_tmdb_listado(item, itemlist):
return (item, itemlist)
+def post_tmdb_seasons(item, itemlist):
+ logger.info()
+
+ """
+
+ Pasada para gestión del menú de Temporadas de una Serie
+
+ La clave de activación de este método es la variable item.season_colapse que pone el canal en el Item de Listado.
+ Esta variable tendrá que desaparecer cuando se aña a la Videoteca para que se analicen los episodios de la forma tradicional
+
+ Repasa todos los episodios producidos en itemlist por "episodios" del canal para extraer las temporadas. Pone un título para Todas la Temps.
+ Crea un menú con las diferentes temporadas, así como con los títulos de Actualización de Título y de Añadir a Videoteca
+ Si ha habido un Fail-over o una Intervención Judicial, también lo anuncia
+
+ La llamada al método desde Episodios, antes de pasar Itemlist pot TMDB, es:
+
+ from lib import generictools
+ item, itemlist = generictools.post_tmdb_seasons(item, itemlist)
+
+ Si solo hay una temporada, devuelte el itemlist original para que se pinten los episodios de la forma tradicional
+
+ """
+ #logger.debug(item)
+
+ season = 0
+ itemlist_temporadas = []
+ itemlist_fo = []
+
+ #Restauramos valores si ha habido fail-over
+ channel_alt = ''
+ if item.channel == channel_py:
+ if item.channel_alt:
+ channel_alt = item.category
+ item.category = item.channel_alt.capitalize()
+ del item.channel_alt
+ else:
+ if item.channel_alt:
+ channel_alt = item.channel
+ item.channel = item.channel_alt
+ item.category = item.channel_alt.capitalize()
+ del item.channel_alt
+ if item.url_alt:
+ item.url = item.url_alt
+ del item.url_alt
+
+ # Primero creamos un título para TODAS las Temporadas
+ # Pasada por TMDB a Serie, para datos adicionales
+ try:
+ tmdb.set_infoLabels(item, True) #TMDB de cada Temp
+ except:
+ pass
+
+ item_season = item.clone()
+ if item_season.season_colapse: #Quitamos el indicador de listado por Temporadas
+ del item_season.season_colapse
+ title = '** Todas las Temporadas' #Agregamos título de TODAS las Temporadas (modo tradicional)
+ if item_season.infoLabels['number_of_episodes']: #Ponemos el núm de episodios de la Serie
+ title += ' [%s epi]' % str(item_season.infoLabels['number_of_episodes'])
+
+ rating = '' #Ponemos el rating, si es diferente del de la Serie
+ if item_season.infoLabels['rating'] and item_season.infoLabels['rating'] != 0.0:
+ try:
+ rating = float(item_season.infoLabels['rating'])
+ rating = round(rating, 1)
+ except:
+ pass
+ if rating and rating == 0.0:
+ rating = ''
+
+ if not config.get_setting("unify"): #Si Titulos Inteligentes NO seleccionados:
+ title = '%s [COLOR yellow][%s][/COLOR] [%s] [COLOR limegreen][%s][/COLOR] [COLOR red]%s[/COLOR]' % (title, str(item_season.infoLabels['year']), rating, item_season.quality, str(item_season.language))
+ else: #Lo arreglamos un poco para Unify
+ title = title.replace('[', '-').replace(']', '-').replace('.', ',').strip()
+ title = title.replace("--", "").replace("[]", "").replace("()", "").replace("(/)", "").replace("[/]", "").strip()
+
+ itemlist_temporadas.append(item_season.clone(title=title, from_title_season_colapse=item.title))
+
+ #Repasamos todos los episodios para detectar las diferentes temporadas
+ for item_local in itemlist:
+ if item_local.contentSeason != season:
+ season = item_local.contentSeason #Si se detecta una temporada distinta se prepara un título
+ item_season = item.clone()
+ item_season.contentSeason = item_local.contentSeason #Se pone el núm de Temporada para obtener mejores datos de TMDB
+ item_season.title = 'Temporada %s' % item_season.contentSeason
+ itemlist_temporadas.append(item_season.clone(from_title_season_colapse=item.title))
+
+ #Si hay más de una temporada se sigue, si no se devuelve el Itemlist original
+ if len(itemlist_temporadas) > 2:
+ for item_local in itemlist_temporadas:
+ if "** Todas las Temporadas" in item_local.title: #Si es el título de TODAS las Temporadas, lo ignoramos
+ continue
+
+ # Pasada por TMDB a las Temporada
+ try:
+ tmdb.set_infoLabels(item_local, True) #TMDB de cada Temp
+ except:
+ pass
+
+ if item_local.infoLabels['temporada_air_date']: #Fecha de emisión de la Temp
+ item_local.title += ' [%s]' % str(scrapertools.find_single_match(str(item_local.infoLabels['temporada_air_date']), r'\/(\d{4})'))
+
+ #rating = '' #Ponemos el rating, si es diferente del de la Serie
+ #if item_local.infoLabels['rating'] and item_local.infoLabels['rating'] != 0.0:
+ # try:
+ # rating = float(item_local.infoLabels['rating'])
+ # rating = round(rating, 1)
+ # except:
+ # pass
+ #if rating and rating > 0.0:
+ # item_local.title += ' [%s]' % str(rating)
+
+ if item_local.infoLabels['temporada_num_episodios']: #Núm. de episodios de la Temp
+ item_local.title += ' [%s epi]' % str(item_local.infoLabels['temporada_num_episodios'])
+
+ if not config.get_setting("unify"): #Si Titulos Inteligentes NO seleccionados:
+ item_local.title = '%s [COLOR limegreen][%s][/COLOR] [COLOR red]%s[/COLOR]' % (item_local.title, item_local.quality, str(item_local.language))
+ else: #Lo arreglamos un poco para Unify
+ item_local.title = item_local.title.replace('[', '-').replace(']', '-').replace('.', ',').strip()
+ item_local.title = item_local.title.replace("--", "").replace("[]", "").replace("()", "").replace("(/)", "").replace("[/]", "").strip()
+
+ #logger.debug(item_local)
+
+ else: #Si hay más de una temporada se sigue, si no se devuelve el Itemlist original
+ if item.season_colapse:
+ del item.season_colapse
+ return (item, itemlist)
+
+ #Permitimos la actualización de los títulos, bien para uso inmediato, o para añadir a la videoteca
+ itemlist_temporadas.append(item.clone(title="** [COLOR yelow]Actualizar Títulos - vista previa videoteca[/COLOR] **", action="actualizar_titulos", tmdb_stat=False, from_action=item.action, from_title_tmdb=item.title, from_update=True))
+
+ #Es un canal estándar, sólo una linea de Añadir a Videoteca
+ title = ''
+ if item.infoLabels['status'] and item.infoLabels['status'].lower() == "ended":
+ title += ' [TERMINADA]'
+ itemlist_temporadas.append(item_season.clone(title="[COLOR yellow]Añadir esta serie a videoteca-[/COLOR]" + title, action="add_serie_to_library", extra="episodios", add_menu=True))
+
+ #Si intervención judicial, alerto!!!
+ if item.intervencion:
+ for clone_inter, autoridad in item.intervencion:
+ thumb_intervenido = get_thumb(autoridad)
+ itemlist_fo.append(item.clone(action='', title="[COLOR yellow]" + clone_inter.capitalize() + ': [/COLOR]' + intervenido_judicial + '. Reportar el problema en el foro', thumbnail=thumb_intervenido))
+ del item.intervencion
+
+ #Si ha habido fail-over, lo comento
+ if channel_alt:
+ itemlist_fo.append(item.clone(action='', title="[COLOR yellow]" + channel_alt.capitalize() + '[/COLOR] [ALT ] en uso'))
+ itemlist_fo.append(item.clone(action='', title="[COLOR yellow]" + item.category.capitalize() + '[/COLOR] inaccesible'))
+
+ if len(itemlist_fo) > 0:
+ itemlist_temporadas = itemlist_fo + itemlist_temporadas
+
+ return (item, itemlist_temporadas)
+
+
def post_tmdb_episodios(item, itemlist):
logger.info()
itemlist_fo = []
@@ -463,6 +622,8 @@ def post_tmdb_episodios(item, itemlist):
del item.title_from_channel
if item.ow_force:
del item.ow_force
+ if item.season_colapse:
+ del item.season_colapse
for item_local in itemlist: #Recorremos el Itemlist generado por el canal
if item_local.add_videolibrary:
@@ -491,6 +652,8 @@ def post_tmdb_episodios(item, itemlist):
del item_local.intervencion
if item_local.ow_force:
del item_local.ow_force
+ if item_local.season_colapse:
+ del item_local.season_colapse
#logger.debug(item_local)
#Ajustamos el nombre de la categoría si es un clone de NewPct1
@@ -548,6 +711,8 @@ def post_tmdb_episodios(item, itemlist):
if item_local.infoLabels['rating'] and item_local.infoLabels['rating'] != 0.0:
rating = float(item_local.infoLabels['rating'])
rating = round(rating, 1)
+ if rating == 0.0:
+ rating = ''
except:
pass
@@ -733,7 +898,10 @@ def post_tmdb_findvideos(item, itemlist):
# tmdb.set_infoLabels(item, True)
#elif (not item.infoLabels['tvdb_id'] and item.contentType == 'episode') or item.contentChannel == "videolibrary":
# tmdb.set_infoLabels(item, True)
- tmdb.set_infoLabels(item, True)
+ try:
+ tmdb.set_infoLabels(item, True) #TMDB de cada Temp
+ except:
+ pass
#Restauramos la información de max num. de episodios por temporada despues de TMDB
try:
if item.infoLabels['temporada_num_episodios']:
@@ -762,6 +930,8 @@ def post_tmdb_findvideos(item, itemlist):
if item.infoLabels['rating'] and item.infoLabels['rating'] != 0.0:
rating = float(item.infoLabels['rating'])
rating = round(rating, 1)
+ if rating == 0.0:
+ rating = ''
except:
pass