Mi madre viendo una serie me reportó que le daba error al ver un capítulo.
Por si queréis reproducirlo os facilito los datos:
Serie: Elisa di Rivombrosa (capitulo 5)
------------------------------------------------------
Al lío, SeriesYonkis por defecto esta utilizando para decriptar los ID la función "decryptID_series".
Por lo que he visto los id de Yonkis de un unico archivo (o parte) tienen una longitud de 24 caracteres, y son los que se traga bien el "decryptID_series".
Por otra parte los id de Yonkies que apuntan a mas de un archivo (o parte) tienen una longitud de 51 caracteres y al "decryptID_series" da error.
Mirando el sistema de PeliculasYonkis vi que hacia distinción y usaba decryptID o decryptID_series en función del servidor, y me he basado en esto para usar el decryptID_series para los ID unicos (de 24 caracteres) y el decryptID para los ID variables (de 51 caracteres).
No se si es la mejor solución, pero de momento es una solución.
-------------------------------------------------------
Cambios realizados en seriesyonkis.py
1) Si llegan 2 códigos para reproducir del mismo vídeo, ahora saltará la pantalla de elección (Part 1, Part .... ), en vez de dar error.
2) Si el server es un pymeno y el ID es de 51 caracteres se usa el decryptID, en el resto de IDs se sigue usando el decryptID_series.
Nota: Estaría bien hacer una función genérica que funcionara para cualquier Longitud de ID, así si cambian algo, modificando esta se arreglaría todo.
---------------------------------------------
Código canal seriesyonkis.py modificado:
1) Añadida la función "choiceOnePart(matches)" que muestra la lista con las partes disponibles
Código: Seleccionar todo
def choiceOnePart(matches):
opciones = []
Nro = 0
for codigo in matches:
Nro = Nro + 1
opciones.append("Parte %s " % Nro)
dia = xbmcgui.Dialog()
seleccion = dia.select("Selecciona uno ", opciones)
logger.info("seleccion=%d" % seleccion)
if seleccion == -1 : return ""
id = matches[seleccion]
return id
Código: Seleccionar todo
def detail(params,url,category):
logger.info("[seriesyonkis.py] detail")
title = urllib.unquote_plus( params.get("title") )
thumbnail = urllib.unquote_plus( params.get("thumbnail") )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
Serie = urllib.unquote_plus( params.get("Serie") )
# ------------------------------------------------------------------------------------
# Busca los enlaces a los videos
# ------------------------------------------------------------------------------------
#server = "Megavideo"
server,url = scrapvideoURL(url)
if (":" in url):
match = url.split(":")
url = choiceOnePart(match)
if url == "":return
logger.info("[seriesyonkis - detail] url="+url)
xbmctools.playvideo(CHANNELNAME,server,url,category,title,thumbnail,plot,Serie=Serie)
# ------------------------------------------------------------------------------------
Código: Seleccionar todo
if servlist[seleccion] in ["pymeno2","pymeno3","pymeno4","pymeno5","pymeno6"]:
cortar = IDlist[seleccion].split("&")
id = cortar[0]
logger.info("[seriesyonkis.py] id="+id)
dec = Yonkis.DecryptYonkis()
if(len(id)==51):
id = dec.decryptID(dec.charting(dec.unescape(id)))
else:
id = dec.decryptID_series(dec.unescape(id))