SeriesYonkis/PeliculasYonkis -- Mejoras
Publicado: 20 Feb 2011, 00:31
Buenas,
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
2) Modificada la función "detail(params,url,category)" para que pregunte que parte reproducir (en caso de haber mas de una)
3) En la función "choiceOne(matches)" si el servidor es un pymeno, mirar la longitud del Id y en función de esta ejecutar el decryptID que toca
Saludos
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))