Página 1 de 1

Sincronizar Series

Publicado: 24 Jul 2011, 21:38
por mrfloffy
Como Mantener las series actualizadas

Imagen
Imagen

Paso 1

Añadir al fichero C:\Documents and Settings\[Nombre de Usuario]\Datos de programa\XBMC\addons\plugin.video.pelisalacarta\pelisalacarta\chanels

Código: Seleccionar todo

def actualizar(params,url,category):
	
    logger.info("[seriesyonkis.py] addlist2Library")

    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 = ""
		
	# Descarga la página
	
	Serie2=Serie.replace(" ",'-')
	url = "http://www.seriesyonkis.com/serie/"+Serie2+"/"
    data = scrapertools.cachePage(url)
    #logger.info(data)

    # 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].replace(Serie,"")
        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()
    
	
Paso 2

Añadir al fichero DialogVideoInfo.xml de nuestro skin en mi caso Confluence
C:\Archivos de programa\XBMC\addons\skin.confluence\720p\DialogVideoInfo.xml

Código: Seleccionar todo

<control type="button" id="13">
<description>Home Cinema Experience</description>
<include>ButtonInfoDialogsCommonValues</include>
<label>Sincronizar</label>
<onclick>Dialog.Close(MovieInformation)</onclick>
<onclick>Playlist.Clear</onclick>
<onclick>RunPlugin(plugin://plugin.video.pelisalacarta/?channel=seriesyonkis&action=actualizar&category=seriesyonkis&server=Megavideo&Serie=$INFO[ListItem.Title])</onclick>
</control>

Re: Sincronizar Series

Publicado: 28 Jul 2011, 02:04
por jesus
¡Gracias!

Lo de modificar el diálogo del skin no me gusta demasiado, pero incorporaré el código de sincronizar a pelisalacarta.

Es algo que hace tiempo quiero hacer, pero la verdad es que no tengo muchos ratos libres desde hace semanas :(