el añadido de series ha dejado de funcionar en pelisalacarta 3 o en las últimas versiones de XBMC4XBOX.
Hay dos problemas.
El primero es que ahora los ficheros se guardan en UserData/addons_data pero es fácilmente movible a la ruta que le toca en plugins/video/.
El segundo problema es que sigo teniendo que modificar SeriesYonkis.py para que el formato de nombre de fichero sea correcto en XBOX pero aún así ya no funciona. Resulta que ahora se guarda tanto el nombre de la serie como de los capítulos sin espacios. He revisado la función y no veo dónde puede estar ocurriendo pero eso impide que luego el Scrapper encuentre la serie y/o los números de capítulo.
No sé si me he explicado correctamente. Por poner un ejemplo, si se intenta guardar el capitulo "CSI LAS VEGAS 2x01" el nombre de fichero queda "CSILASVEGAS2x01"
Pongo aquí el código de la función addlist2Library que estoy usando ahora mismo por si alguien ve qué está ocurriendo (he marcado entre comentarios el código que he insertado yo para el correcto funcionamiento en XBOX). Yo sospecho que ahora library.savelibrary() funciona internamente de manera distinta, pero me parece un cambio un tanto extraño...
Código: Seleccionar todo
def addlist2Library(params,url,category):
logger.info("[seriesyonkis.py] addlist2Library")
# Descarga la p·gina
data = scrapertools.cachePage(url)
#logger.info(data)
if params.has_key("Serie"):
Serie = params.get("Serie")
else:
Serie = ""
if params.has_key("server"):
server = params.get("server")
else:
server = ""
if params.has_key("thumbnail"):
thumbnail = params.get("thumbnail")
else:
thumbnail = ""
# Extrae las entradas (carpetas)
patronvideos = '<a href="(http://www.seriesyonkis.com/capitulo[^"]+)"[^>]+>([^<]+)</a>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
pDialog = xbmcgui.DialogProgress()
ret = pDialog.create('pelisalacarta', 'AÒadiendo episodios...')
pDialog.update(0, 'AÒadiendo episodio...')
totalepisodes = len(matches)
logger.info ("[seriesyonkis.py - addlist2Library] Total Episodios:"+str(totalepisodes))
i = 0
errores = 0
nuevos = 0
for match in matches:
# Titulo
scrapedtitle = match[1]
# PARTE AÑADIDA POR DARTANYAN
# Eliminamos el caracter ,
scrapedtitle = scrapedtitle.replace(",","")
# Eliminamos el caracter -
scrapedtitle = scrapedtitle.replace("-","")
# Nos quedamos con el nombre de la serie y con el num capitulo
mo = re.match("^(.*) ([\d]{1,2}[x|X][\d]{1,3}) (.*)$", scrapedtitle)
if mo == None:
errores = errores + 1
continue
if (DEBUG):
xbmc.output("CAPITULO="+ mo.group(2))
# Cortamos el nombre del fichero
# porque XBOX FATX no soporta mas de 42 caracteres
# Cortamos hasta llegar a los caracteres del num. capitulo
# típico de nombres como CSI 2x13 - Titulo del capitulo
# en otro caso partimos a 30 caracteres
posSeparador = mo.group(1).find(mo.group(2))
if posSeparador > 30 or posSeparador == -1:
posSeparador = 30
if (DEBUG):
xbmc.output("SEPARADOR="+ str(posSeparador))
scrapedtitle = mo.group(1)[:posSeparador] + " " + mo.group(2)
# FIN PARTE AÑADIDA POR DARTANYAN
i = i + 1
pDialog.update(i*100/totalepisodes, 'AÒadiendo episodio...',scrapedtitle)
if (pDialog.iscanceled()):
return
# URL
# Tenemos 2 opciones. Scrapear todos los episodios en el momento de aÒadirlos
# a la biblioteca o bien dejarlo para cuando se vea cada episodio. Esto segundo
# aÒade los episodios mucho m·s r·pido, pero implica aÒadir una funciÛn
# strm_detail en cada mÛdulo de canal. Por el bien del rendimiento elijo la
# segunda opciÛn de momento (hacer la primera es simplemente descomentar un par de
# lÌneas.
# QUIZ¡ SEA BUENO PARAMETRIZARLO (PONER OPCI”N EN LA CONFIGURACI”N DEL PLUGIN)
# PARA DEJAR QUE EL USUARIO DECIDA DONDE Y CUANDO QUIERE ESPERAR.
url = match [0]
# JUR-Las 3 lÌneas siguientes son para OPCI”N 1
#scrapedurl = scrapvideoURL(url)
#if scrapedurl == "":
# errores = errores + 1
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapedplot = ""
# Depuracion
if (DEBUG):
logger.info("scrapedtitle="+scrapedtitle)
# logger.info("scrapedurl="+scrapedurl) #OPCION 1.
logger.info("url="+url) #OPCION 2.
logger.info("scrapedthumbnail="+scrapedthumbnail)
logger.info("Serie="+Serie)
logger.info("Episodio "+str(i)+" de "+str(totalepisodes)+"("+str(i*100/totalepisodes)+"%)")
# AÒade a la librerÌa #Comentada la opciÛn 2. Para cambiar invertir los comentarios
#OPCION 1:
#library.savelibrary(scrapedtitle,scrapedurl,scrapedthumbnail,server,scrapedplot,canal=CHANNELNAME,category="Series",Serie=Serie,verbose=False)
#OPCION 2
try:
nuevos = nuevos + library.savelibrary(scrapedtitle,url,scrapedthumbnail,server,scrapedplot,canal=CHANNELNAME,category="Series",Serie=Serie,verbose=False,accion="strm_detail",pedirnombre=False)
except IOError:
logger.info("Error al grabar el archivo "+scrapedtitle)
errores = errores + 1
# xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
pDialog.close()
#ActualizaciÛn de la biblioteca
if errores > 0:
logger.info ("[seriesyonkis.py - addlist2Library] No se pudo aÒadir "+str(errores)+" episodios")
library.update(totalepisodes,errores,nuevos)
return nuevos