Página 2 de 3

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 26 Mar 2011, 13:10
por SpAiK
Pues he introducido los cambios que comentáis y parece que no me funciona. Os dejo un pastebin.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 09 Abr 2011, 18:22
por dartanyan
Hola,

No estoy seguro de que hayas podido recopilar todo correctamente con tanto jaleo así que te pongo aquí la función addlist2Library completa del fichero SeriesYonkis.py (cuidado con el código entre PARTE NUEVA porque veo que no se ha copiado correctamente, falta un tabulador a toda esa región):

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 = ""

    Serie = normalize('NFKD', unicode(Serie, 'utf-8')).encode('ASCII','ignore')

    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 NUEVA 

	# Nos quedamos por un lado con el nombre de la serie y 
	# por otro 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))	            
	
	
	scrapedtitle = mo.group(2)

        # FIN PARTE NUEVA

        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

Recuerda poner en la cabecera del fichero lo que puse en mi anterior post.

Saludos.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 10 Abr 2011, 08:56
por SpAiK
Hola, gracias voy a probarlo y os comentó. De todas formas, estos cambios no han sido introducidos en git?

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 11 Abr 2011, 23:49
por jesus
svn... aún no tenemos git :)

No, no han sido subidos. Cuando estén confirmados los subo, ya que yo no puedo probarlos.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 12 Abr 2011, 20:01
por SpAiK
Parece ser que me sigue fallando, segúnel log:

Código: Seleccionar todo

ERROR: Error Type: exceptions.SyntaxError
ERROR: Error Contents: invalid syntax (seriesyonkis.py, line 531)

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 14 Abr 2011, 21:36
por dartanyan
SpAiK, tiene pinta que no tabulaste el código como te comenté en mi anterior post ;)

Saludos.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 14 Abr 2011, 22:43
por SpAiK
Tabulé toda la parte nueva entendiendo que pertenece a la estructura "for", no? Es que me pierdo un poco con el código.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 14 Abr 2011, 22:49
por dartanyan
Pusiste en la cabecera del fichero lo siguiente?

Código: Seleccionar todo

from unicodedata import normalize
¿Cuál es la línea 531 de tu fichero?

Saludos.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 15 Abr 2011, 15:26
por SpAiK
Hola, por fin he podido echarle un vistazo al tema. Sí que añadí el código a la cabecera. La línea 531 es:

Código: Seleccionar todo

mo = re.match("^(.*) ([\d]{1,2}[x|X][\d]{1,3}) (.*)$", scrapedtitle)
La verdad es que esto de no poder acceder a Seriesyonkis me está matando.

Re: Biblioteca de series en XBOX y pelisalacarta 3 no funcio

Publicado: 16 Abr 2011, 08:47
por dartanyan
Hola,

a mi el código me funciona perfecto. Puedo usar y añadir las series sin ningún problema.

Ahora mismo tengo instalado el XBMC4XBOX del 12 de febrero, no sé si esa puede ser la diferencia...

Extrañamente la línea que te da error es la primera que está mal tabulada en mi post. Pongo aquí de nuevo esa parte del código. Espero que ahora esté bien corregida la tabulación:

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 = ""

    Serie = normalize('NFKD', unicode(Serie, 'utf-8')).encode('ASCII','ignore')

    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 NUEVA 

        # Nos quedamos por un lado con el nombre de la serie y 
        # por otro 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))	            
	
	
        scrapedtitle = mo.group(2)

        # FIN PARTE NUEVA

        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


Saludos.