Beispiel #1
0
def mainlist(params, url, category):
    logger.info("[series21.py] mainlist")

    # Añade al listado de XBMC
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category,
                                "Series - Novedades",
                                "http://www.series21.com", "", "", "novedades")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category,
                                "Series - Estrenos", "http://www.series21.com",
                                "", "", "estrenos")
    #xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , "Spoilers ","http://www.series21.com/","","","spoilers")
    xbmctools.addnewfolder(
        CHANNELNAME, "seriesalfa", category,
        "Series - Lista alfabética (Con Sinopsis y Poster)", "", "", "")
    xbmctools.addnewfolder(
        CHANNELNAME, "SeriesBuscaAlfa", category,
        "Series - Busqueda Alfabética (toda la base de datos)",
        "http://www.series21.com/listado-series/", "", "")
    #xbmctools.addnewfolder( CHANNELNAME , "listaActoresMasBuscados" , category , "Actores - Lista Los Más Buscados"     ,"http://www.series21.com/","","")
    #xbmctools.addnewfolder( CHANNELNAME , "buscaporletraActor"      , category , "Actores - Busqueda Alfabética"  ,"http://www.series21.com/actores/","","")
    xbmctools.addnewfolder(CHANNELNAME, "search", category, "Series - Buscar",
                           "", "", "")

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
def home(params, url, category):
    logger.info("[mcanime.py] listvideos")

    # Descarga la página
    data = scrapertools.cachePage(url)
    # logger.info(data)

    # Extrae las entradas (carpetas)
    patronvideos = '<div class="release" style="background-image.url\(\'([^\']+)\'\)\;">[^<]+'
    patronvideos += '<h4>([^<]+)<a href="([^"]+)">([^<]+)</a> <span class="date">([^<]+)</span></h4>[^<]+'
    patronvideos += '<div class="rimg"><img src="([^"]+)"[^>]+></div>[^<]+'
    patronvideos += '<div class="rtext">(.*?)</div>[^<]+'
    patronvideos += '<div class="rfinfo">(.*?)</div>[^<]+'
    patronvideos += '<div class="rflinks">(.*?)</div>[^<]+'
    patronvideos += '<div class="rinfo">(.*?)</div>'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)

    for match in matches:
        if match[0].endswith("anime.gif"):
            scrapedtitle = match[3].strip() + " " + match[1].strip() + " (" + match[4] + ")"
            scrapedurl = urlparse.urljoin(url, match[2])
            scrapedthumbnail = urlparse.urljoin(url, match[5])
            scrapedplot = scrapertools.htmlclean(match[6])
            scrapedextra = match[8]
            if DEBUG:
                logger.info(
                    "title=[" + scrapedtitle + "], url=[" + scrapedurl + "], thumbnail=[" + scrapedthumbnail + "]"
                )

            # Añade al listado de XBMC
            xbmctools.addnewfolderextra(
                CHANNELNAME,
                "homedetail",
                category,
                scrapedtitle,
                scrapedurl,
                scrapedthumbnail,
                scrapedplot,
                scrapedextra,
            )

            # Extrae la marca de siguiente página
    patronvideos = '<span class="next"><a href="([^"]+)">Anteriores</a>...</span>'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)

    if len(matches) > 0:
        scrapedtitle = "Página siguiente"
        scrapedurl = urlparse.urljoin(url, matches[0])
        scrapedthumbnail = ""
        scrapedplot = ""
        xbmctools.addnewfolder(CHANNELNAME, "home", category, scrapedtitle, scrapedurl, scrapedthumbnail, scrapedplot)

        # Propiedades
    xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=category)
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]), sortMethod=xbmcplugin.SORT_METHOD_NONE)
    xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
Beispiel #3
0
def home(params, url, category):
    logger.info("[mcanime.py] listvideos")

    # Descarga la p·gina
    data = scrapertools.cachePage(url)
    #logger.info(data)

    # Extrae las entradas (carpetas)
    patronvideos = '<div class="release" style="background-image.url\(\'([^\']+)\'\)\;">[^<]+'
    patronvideos += '<h4>([^<]+)<a href="([^"]+)">([^<]+)</a> <span class="date">([^<]+)</span></h4>[^<]+'
    patronvideos += '<div class="rimg"><img src="([^"]+)"[^>]+></div>[^<]+'
    patronvideos += '<div class="rtext">(.*?)</div>[^<]+'
    patronvideos += '<div class="rfinfo">(.*?)</div>[^<]+'
    patronvideos += '<div class="rflinks">(.*?)</div>[^<]+'
    patronvideos += '<div class="rinfo">(.*?)</div>'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)

    for match in matches:
        if match[0].endswith("anime.gif"):
            scrapedtitle = match[3].strip() + " " + match[1].strip(
            ) + " (" + match[4] + ")"
            scrapedurl = urlparse.urljoin(url, match[2])
            scrapedthumbnail = urlparse.urljoin(url, match[5])
            scrapedplot = scrapertools.htmlclean(match[6])
            scrapedextra = match[8]
            if (DEBUG):
                logger.info("title=[" + scrapedtitle + "], url=[" +
                            scrapedurl + "], thumbnail=[" + scrapedthumbnail +
                            "]")

            # AÒade al listado de XBMC
            xbmctools.addnewfolderextra(CHANNELNAME, "homedetail", category,
                                        scrapedtitle, scrapedurl,
                                        scrapedthumbnail, scrapedplot,
                                        scrapedextra)

    # Extrae la marca de siguiente p·gina
    patronvideos = '<span class="next"><a href="([^"]+)">Anteriores</a>...</span>'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)

    if len(matches) > 0:
        scrapedtitle = "P·gina siguiente"
        scrapedurl = urlparse.urljoin(url, matches[0])
        scrapedthumbnail = ""
        scrapedplot = ""
        xbmctools.addnewfolder(CHANNELNAME, "home", category, scrapedtitle,
                               scrapedurl, scrapedthumbnail, scrapedplot)

    # Propiedades
    xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=category)
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)
    xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
Beispiel #4
0
def listaActoresMasBuscados(params, url, category):
    logger.info("[series21.py] listaActoresMasBuscados")
    extra = "actor"
    url1 = "http://www.series21.com"
    # Descarga la página
    data = scrapertools.cachePage(url)
    patronvideos = 'Los m&aacute;s buscados:    <br />(.*?)</div>'
    matches1 = re.compile(patronvideos, re.DOTALL).findall(data)
    patronvideos = '<a href="([^"]+)">([^<]+)</a>'
    matches = re.compile(patronvideos, re.DOTALL).findall(matches1[0])
    scrapertools.printMatches(matches)
    for match in matches:
        # Titulo
        scrapedtitle = match[1]
        # URL
        scrapedurl = urlparse.urljoin(url1, match[0])
        # Thumbnail
        scrapedthumbnail = ""

        # Argumento
        scrapedplot = "Busca las Series existentes de este Actor ó Actriz"

        # Depuracion
        if (DEBUG):
            logger.info("scrapedtitle=" + scrapedtitle)
            logger.info("scrapedurl=" + scrapedurl)
            logger.info("scrapedthumbnail=" + scrapedthumbnail)

        # Añade al listado de XBMC
        xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category,
                                    scrapedtitle, scrapedurl, scrapedthumbnail,
                                    scrapedplot, extra)

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=pluginhandle, category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=pluginhandle,
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)
Beispiel #5
0
def mainlist(params,url,category):
	logger.info("[series21.py] mainlist")

	# Añade al listado de XBMC
	xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , "Series - Novedades"            ,"http://www.series21.com","","","novedades")
	xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , "Series - Estrenos"             ,"http://www.series21.com","","","estrenos")
	#xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , "Spoilers ","http://www.series21.com/","","","spoilers")
	xbmctools.addnewfolder( CHANNELNAME , "seriesalfa"  , category , "Series - Lista alfabética (Con Sinopsis y Poster)"     ,"","","")
	xbmctools.addnewfolder( CHANNELNAME , "SeriesBuscaAlfa"   , category , "Series - Busqueda Alfabética (toda la base de datos)" ,"http://www.series21.com/listado-series/","","")
	#xbmctools.addnewfolder( CHANNELNAME , "listaActoresMasBuscados" , category , "Actores - Lista Los Más Buscados"     ,"http://www.series21.com/","","")
	#xbmctools.addnewfolder( CHANNELNAME , "buscaporletraActor"      , category , "Actores - Busqueda Alfabética"  ,"http://www.series21.com/actores/","","")	
	xbmctools.addnewfolder( CHANNELNAME , "search"                  , category , "Series - Buscar"                           ,"","","")

	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
Beispiel #6
0
def listaActoresMasBuscados(params,url,category):
	logger.info("[series21.py] listaActoresMasBuscados")
	extra="actor"
	url1 = "http://www.series21.com"
	# Descarga la página
	data = scrapertools.cachePage(url)
	patronvideos = 'Los m&aacute;s buscados:    <br />(.*?)</div>'
	matches1 = re.compile(patronvideos,re.DOTALL).findall(data)
	patronvideos = '<a href="([^"]+)">([^<]+)</a>'
	matches =  re.compile(patronvideos,re.DOTALL).findall(matches1[0])
	scrapertools.printMatches(matches)
	for match in matches:
		# Titulo
		scrapedtitle = match[1]
		# URL
		scrapedurl = urlparse.urljoin(url1,match[0])
		# Thumbnail
		scrapedthumbnail = ""
        
		# Argumento
		scrapedplot = "Busca las Series existentes de este Actor ó Actriz"

		# Depuracion
		if (DEBUG):
			logger.info("scrapedtitle="+scrapedtitle)
			logger.info("scrapedurl="+scrapedurl)
			logger.info("scrapedthumbnail="+scrapedthumbnail)

		# Añade al listado de XBMC
		xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot,extra )
		
	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )
		
	# Disable sorting...
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
Beispiel #7
0
def seriesalfa(params, url, category):

	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "0-9","http://www.series21.com/0-9/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "A","http://www.series21.com/a/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "B","http://www.series21.com/b/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "C","http://www.series21.com/c/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "D","http://www.series21.com/d/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "E","http://www.series21.com/e/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "F","http://www.series21.com/f/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "G","http://www.series21.com/g/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "H","http://www.series21.com/h/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "I","http://www.series21.com/i/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "J","http://www.series21.com/j/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "K","http://www.series21.com/k/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "L","http://www.series21.com/l/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "M","http://www.series21.com/m/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "N","http://www.series21.com/n/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "O","http://www.series21.com/o/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "P","http://www.series21.com/p/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "Q","http://www.series21.com/q/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "R","http://www.series21.com/r/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "S","http://www.series21.com/s/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "T","http://www.series21.com/t/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "U","http://www.series21.com/u/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "V","http://www.series21.com/v/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "W","http://www.series21.com/w/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "X","http://www.series21.com/x/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "Y","http://www.series21.com/y/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listsimple", category , "Z","http://www.series21.com/z/","","","")

	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
Beispiel #8
0
def buscaporletraActor(params, url, category):
    logger.info("[series21.py] buscaporletra")
    data = scrapertools.cachePage(url)
    patron = '<div class="title">Listado de Actores</div><br/>(.*?)<ul class="menustyle">'
    matches = re.compile(patron, re.DOTALL).findall(data)
    patron = '<a href="(.*?)">(.*?)</a>'
    matches = re.compile(patron, re.DOTALL).findall(matches[0])

    letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    opciones = []
    opciones.append("Buscar por palabras (Teclado)")
    #opciones.append("0-9")
    for letra in letras:
        opciones.append(letra)
    dia = xbmcgui.Dialog()
    seleccion = dia.select("busqueda rapida, elige uno : ", opciones)
    logger.info("seleccion=%d" % seleccion)
    if seleccion == -1: return
    if seleccion == 0:
        keyboard = xbmc.Keyboard('')
        keyboard.doModal()
        if (keyboard.isConfirmed()):
            tecleado = keyboard.getText()
            if len(tecleado) > 0:
                logger.info("Nuevo string tecleado   " + tecleado)
                for match in matches:
                    if (string.lower(tecleado)) in (string.lower(match[1])):
                        scrapedurl = "http://www.series21.com" + match[0]
                        scrapedtitle = match[1]
                        scrapedthumbnail = ""
                        scrapedplot = " "
                        if (DEBUG):
                            logger.info("scrapedtitle=" + scrapedtitle)
                            logger.info("scrapedurl=" + scrapedurl)
                            logger.info("scrapedthumbnail=" + scrapedthumbnail)
                            #  Añade al listado de XBMC
                            xbmctools.addnewfolderextra(
                                CHANNELNAME, "listsimple", category,
                                scrapedtitle, scrapedurl, scrapedthumbnail,
                                scrapedplot, "actor")

    else:
        for match in matches:
            if match[1][0:1] == letras[seleccion - 1]:
                scrapedurl = "http://www.series21.com" + match[0]
                scrapedtitle = match[1]
                scrapedthumbnail = ""
                scrapedplot = " "
                if (DEBUG):
                    logger.info("scrapedtitle=" + scrapedtitle)
                    logger.info("scrapedurl=" + scrapedurl)
                    logger.info("scrapedthumbnail=" + scrapedthumbnail)
                    #  Añade al listado de XBMC
                    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple",
                                                category, scrapedtitle,
                                                scrapedurl, scrapedthumbnail,
                                                scrapedplot, "actor")

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=pluginhandle, category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=pluginhandle,
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)
Beispiel #9
0
def seriesalfa(params, url, category):

    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "0-9",
                                "http://www.series21.com/0-9/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "A",
                                "http://www.series21.com/a/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "B",
                                "http://www.series21.com/b/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "C",
                                "http://www.series21.com/c/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "D",
                                "http://www.series21.com/d/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "E",
                                "http://www.series21.com/e/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "F",
                                "http://www.series21.com/f/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "G",
                                "http://www.series21.com/g/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "H",
                                "http://www.series21.com/h/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "I",
                                "http://www.series21.com/i/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "J",
                                "http://www.series21.com/j/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "K",
                                "http://www.series21.com/k/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "L",
                                "http://www.series21.com/l/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "M",
                                "http://www.series21.com/m/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "N",
                                "http://www.series21.com/n/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "O",
                                "http://www.series21.com/o/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "P",
                                "http://www.series21.com/p/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "Q",
                                "http://www.series21.com/q/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "R",
                                "http://www.series21.com/r/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "S",
                                "http://www.series21.com/s/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "T",
                                "http://www.series21.com/t/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "U",
                                "http://www.series21.com/u/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "V",
                                "http://www.series21.com/v/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "W",
                                "http://www.series21.com/w/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "X",
                                "http://www.series21.com/x/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "Y",
                                "http://www.series21.com/y/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category, "Z",
                                "http://www.series21.com/z/", "", "", "")

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
Beispiel #10
0
def ListarVideos(params, url, category):
    url1 = "http://www.series21.com"
    url1 = urlparse.urljoin(url1, url)
    title = urllib.unquote_plus(params.get("title"))
    thumbnail = urllib.unquote_plus(params.get("thumbnail"))
    plot = urllib.unquote_plus(params.get("plot"))
    data = scrapertools.cachePage(url1)
    # Busca el area donde estan los videos y la descripcion
    patronvideos = '<div id="content">(.*?)<!-- FIN #content-->'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    matchesBK = matches[0]

    # Extrae las entradas (videos) para megavideo
    patronvideos = '<span  style="font-size:12px;"><strong>(.*?)</strong></span><br/>.*?'
    patronvideos += '<span.*?>.*?<a href="http\:\/\/www.megavideo.com\/([\?v=|v/|\?d=]+)([A-Z0-9]{8}).*?" target'

    matches = re.compile(patronvideos, re.DOTALL).findall(matches[0])
    scrapertools.printMatches(matches)
    encontrados = set()
    for match in matches:
        if match[2] not in encontrados:
            encontrados.add(match[2])
            if 'v' in match[1]:
                server = "Megavideo"
            else:
                server = "Megaupload"
            doblaje = scrapertools.entityunescape(match[0])
            # Titulo
            scrapedtitle = title + " -   [" + doblaje + "]" + " (" + server + ")"
            # URL
            scrapedurl = match[2]
            # Thumbnail
            scrapedthumbnail = thumbnail
            # Argumento
            #print 'este es el plot %s ' %plot
            #print ' doblaje %s ' %doblaje
            scrapedplot = plot
            if ("Español" in plot) and not (doblaje in plot):
                scrapedplot = scrapedplot.replace("Español", doblaje)
            elif "subtitulado" in plot and not (doblaje in plot):
                scrapedplot = scrapedplot.replace(
                    "Versión original (subtitulado)", doblaje)
            elif not doblaje in plot:
                scrapedplot += "\n" + "Doblaje : " + doblaje

            # Depuracion
            if (DEBUG):
                logger.info("scrapedtitle=" + scrapedtitle)
                logger.info("scrapedurl=" + scrapedurl)
                logger.info("scrapedthumbnail=" + scrapedthumbnail)

            # Añade al listado de XBMC
            xbmctools.addnewvideo(CHANNELNAME, "play", category, server,
                                  scrapedtitle, scrapedurl, scrapedthumbnail,
                                  scrapedplot)
    if len(matches) == 0:
        listavideos = servertools.findvideos(data)
        encontrados = set()
        for titulo, scrapedurl, servidor in listavideos:
            if scrapedurl.strip() not in encontrados:
                encontrados.add(scrapedurl.strip())
                xbmctools.addnewvideo(CHANNELNAME, "play", category, servidor,
                                      title + " - %s" % titulo, scrapedurl,
                                      thumbnail, plot)
    patronvideos = '<span class="bloque-doblaje">(.+?)</span>[^<]+'
    patronvideos += '<span class="bloque-link">[^<]+<a href="javascript\:goTo\(\'([^\']+)\'\, \'([^\']+)\'\)"(.+?)</span>'
    #patronvideos +='(?:\| <a href="javascript\:goTo\(\'([^\']+)\'\, \'([^\']+)\'\)".*?)</span>'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)
    for match in matches:

        # URL
        if "megavideo" in match[2]:
            server = "Megavideo"
        elif "megaupload" in match[2]:
            server = "Megaupload"
        if "esp.gif" in match[0]:
            doblaje = "Español"

        else:
            doblaje = match[0].strip()
        base64 = decrypt21.Base64()
        try:
            url2 = re.compile(
                "javascript\:goTo\(\'([^\']+)\'\, \'([^\']+)\'\)").findall(
                    match[3])[0]
            scrapedurl2 = base64._extract_code(base64.decode(url2[0]))
            scrapedurl = base64._extract_code(base64.decode(match[1]))
            part1 = " Parte 1 "
            part2 = " Parte 2 "
            scrapedtitle2 = title + part2 + " -   [" + doblaje + "]" + " (" + server + ")"
            #print match[3]
        except:
            scrapedurl = base64._extract_code(base64.decode(match[1]))
            part1 = ""
            part2 = ""

        scrapedtitle = title + part1 + " -   [" + doblaje + "]" + " (" + server + ")"

        # Thumbnail
        scrapedthumbnail = thumbnail
        # Argumento
        scrapedplot = plot

        # Depuracion
        if (DEBUG):
            logger.info("scrapedtitle=" + scrapedtitle)
            logger.info("scrapedurl=" + scrapedurl)
            logger.info("scrapedthumbnail=" + scrapedthumbnail)

        # Añade al listado de XBMC
        xbmctools.addnewvideo(CHANNELNAME, "play", category, server,
                              scrapedtitle, scrapedurl, scrapedthumbnail,
                              scrapedplot)
        if part2:
            xbmctools.addnewvideo(CHANNELNAME, "play", category, server,
                                  scrapedtitle2, scrapedurl2, scrapedthumbnail,
                                  scrapedplot)

    # Extrae las entradas (videos) directos
    patronvideos = 'flashvars="file=([^\&]+)\&amp;controlbar=over'
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)
    if len(matches) > 0:

        data1 = scrapertools.cachePage(matches[0])
        #logger.info(data)
        patron = 'author">(.*?)</media:credit>.*?<media\:content url="([^"]+)"'
        matches = re.compile(patron, re.DOTALL).findall(data1)
        scrapertools.printMatches(matches)

        for match in matches:
            # Añade al listado de XBMC
            xbmctools.addnewvideo(
                CHANNELNAME, "play", category, "Directo",
                title + " -  [" + match[0] + "]" + " (Directo)", match[1],
                thumbnail, plot)
    # Busca el Spoiler
    patronvideos = '(http://www.youtube.com[^"]+)"'
    matchSpoiler = re.compile(patronvideos, re.DOTALL).findall(data)
    if len(matchSpoiler) > 0:
        encontrados = set()
        for match in matchSpoiler:
            if match not in encontrados:
                encontrados.add(match)
                # Añade al listado de XBMC
                xbmctools.addnewvideo(CHANNELNAME, "youtubeplay", category,
                                      "Directo",
                                      "Ver El Spoiler de : " + title, match,
                                      thumbnail, "Ver Video Spoiler")

    # Lista series relacionadas
    titulo = "Ver otros capitulos de esta temporada"
    matches = buscarelacionados(matchesBK)
    plot2 = "CAPITULOS DE ESTA TEMPORADA :\n\n"
    for match in matches:
        plot2 = plot2 + "-" + match[2] + "\n"
    xbmctools.addnewfolderextra(CHANNELNAME, "listarelacionados", category,
                                titulo, url, thumbnail, plot2, matchesBK)
    #<div class="film"><a href="/house/#t_57"><img src="/thumbs/temporadas/95/120/57.jpg"
    # Cambiar de Temporada
    patron = 'div class="film"><a href="([^"]+)"><img src="([^"]+)" style'
    matchSerie = re.compile(patron, re.DOTALL).findall(matchesBK)
    if len(matchSerie) > 1:
        for temp in matchSerie:
            url2 = urlparse.urljoin(url1, temp[0])
            thumbnail = urlparse.urljoin(url1, temp[1])
            titulo = "Cambiar a otras temporadas"
            titulo_serie = temp[0].split("/")
            titulo2 = titulo_serie[1].replace("-", " ")
            #print ' titulo%s ' %titulo2
            xbmctools.addnewfolderextra(CHANNELNAME, "listarTemporada",
                                        category, titulo, url2, thumbnail,
                                        plot, titulo2)
            break

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=pluginhandle, category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=pluginhandle,
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)
Beispiel #11
0
def listarTemporada(params, url, category):
    logger.info("[series21.py] listvideos")
    url1 = "http://www.series21.com"
    if url == "":
        url = "http://www.series21.com"

    # Descarga la página
    data = scrapertools.cachePage(url)
    #logger.info(data)
    titulo_serie = urllib.unquote_plus(params.get("title"))
    if titulo_serie == "Cambiar a otras temporadas":
        titulo_serie = urllib.unquote_plus(params.get("extradata"))
    #thumbnail = urllib.unquote_plus(params.get("thumbnail"))
    #plot = urllib.unquote_plus(params.get("plot"))
    actor = ""
    # Busca el area donde estan los videos y la descripcion
    patronvideos = '<h3>(.*?)</h3>'  # Temporada de la Serie
    patronvideos += '.*?<img.+?src="([^"]+)"  width=.*?/>'  # Thumbnail de la Serie
    patronvideos += '.*?<ul(.*?)</ul>'  # Capitulos de la Serie
    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    patroncapit = '<li><a href="([^"]+)".+?>(.+?)</a>(.+?)</li>'

    patronplot = '<div style="margin:0px; padding:0px; text-align:justify;">(.*?)</div>'
    sinopsis = re.compile(patronplot, re.DOTALL).findall(data)
    plot = "Serie : " + titulo_serie + "\n"

    # Busca los actores
    patronactor = '<div id="actores">(.*?)cursor:pointer'
    matchesactor = re.compile(patronactor, re.DOTALL).findall(data)
    matchesactores = ""
    if len(matchesactor) > 0:
        matchesactores = buscactores(matchesactor[0])
        print ' actores: %s' % str(len(matchesactores))
    if len(matchesactores) > 0:
        actor = "Actores:   "
        c = 0
        actores = "ACTORES DE ESTA SERIE :\n\n"
        for match in matchesactores:
            c = c + 1
            actores = actores + "-" + match[1] + "\n"
            if c == 3 or c == 6:
                actor = actor + match[1] + "\n"
            elif c == 4 or c == 7:
                actor = actor + "*              " + match[1] + " , "
            else:
                actor = actor + match[1] + " , "

    # Abre ventana de eleccion de temporadas

    if len(matches) > 1:
        opciones = []
        opciones.append(" Todas las Temporadas")
        for match in matches:
            temporada = re.sub("<[^>]+>", " ",
                               match[0]).replace("-", "").replace(">", "")
            opciones.append(temporada)
        dia = xbmcgui.Dialog()
        seleccion = dia.select("Elige un tipo de Listado", opciones)
        logger.info("seleccion=%d" % seleccion)
    else:
        seleccion = 0
    if seleccion == -1:
        return
    if seleccion == 0:
        for match in matches:
            print 'esta es la %s' % match[0]
            print 'este es el thumbnail %s ' % match[1]
            thumbnail = urlparse.urljoin(url1, match[1])
            temporada = re.sub("<[^>]+>", " ",
                               match[0]).replace("-", "").replace(">", "")

            temporada += "\n" + actor + "\n" + "Sinopsis : " + str(
                sinopsis[0].replace("\n\t\t\t\t\t", ""))
            matchescapit = re.compile(patroncapit, re.DOTALL).findall(match[2])
            for match1 in matchescapit:
                esp = ""
                subt = ""
                url = match1[0]
                if "esp.gif" in match1[2]:
                    esp = " (Español)"
                if "Subtitulado" in match1[2]:
                    subt = " (VOS)"

                titulo = titulo_serie + " - " + match1[1] + esp + subt
                xbmctools.addnewfolder(CHANNELNAME, "ListarVideos", category,
                                       titulo, url, thumbnail,
                                       plot + temporada)

    else:
        thumbnail = urlparse.urljoin(url1, matches[seleccion - 1][1])
        temporada = re.sub("<[^>]+>", " ", matches[seleccion - 1][0]).replace(
            "-", "").replace(">", "")
        #logger.info("matches "+matches[seleccion-1][2])
        matchescapit = re.compile(patroncapit,
                                  re.DOTALL).findall(matches[seleccion - 1][2])
        plot += temporada + "\n"
        plot += actor + "\n" + "Sinopsis : " + str(sinopsis[0].replace(
            "\n\t\t\t\t\t", ""))
        if len(matchescapit) > 0:
            for match1 in matchescapit:
                url = match1[0]
                titulo = titulo_serie + " - " + match1[1]

                xbmctools.addnewfolder(CHANNELNAME, "ListarVideos", category,
                                       titulo, url, thumbnail, plot)

    # Busca Series relacionadas con los actores
    if len(matchesactores) > 0:
        titulo = "Lista Series relacionadas con los actores"
        xbmctools.addnewfolderextra(CHANNELNAME, "listaractores", category,
                                    titulo, url, thumbnail, actores,
                                    matchesactor[0])

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=pluginhandle, category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=pluginhandle,
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)
def listsimple(params,url,category):
	xbmc.output("[series21.py] listsimple")
	url1 = "http://www.series21.com"
	extra= urllib.unquote_plus(params.get("extradata"))
	title = urllib.unquote_plus(params.get("title"))
	# Descarga la página
	data = scrapertools.cachePage(url)
	xbmc.output("esta es la url: "+url)
	# Extrae las entradas (carpetas)
	patronvideos = ""
	if title in ("Series - Novedades","Spoilers ") or  url1+"/nuevo" in url:
		patronvideos  = '<div class="serietemporadas">.*?<a href="([^"]+)"  target="_blank" ' # url
		patronvideos += 'class="titulo"><img src="([^"]+)"  '                              # Imagen
		patronvideos += 'width=[^>]+>([^<]+)</a>.*?<[^/]+/>.*?'                            # Titulo 
		patronvideos += '<b>(Serie:</b>[^<]+)<.*?<a href="([^"]+)">.*?</a>--><br/>'        # Nombre de la Serie 
		patronvideos += '.*?<b>(Temporada:</b>.*?)<.*?</a>--><br/>'                        
		#patronvideos += '.*?<div style=[^>]+>'                                            # Genero
		patronvideos += '.*?<b>(Doblaje:</b>.*?)<.*?-->'                                   # Idioma
		
	elif title in "0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ" or extra=="actor":
		patronvideos  = '<div class="serietemporadas">.*?<a href="([^"]+)"  target="_blank" ' # url
		patronvideos += 'class="titulo">.*?<img src="([^"]+)"  '                              # Imagen
		patronvideos += 'width=[^>]+>([^<]+)</a>.*?<[^/]+/>.*?'                               # Titulo
		patronvideos += '<b>(Sinopsis:</b>.*?)<br /><br />.*?--></div>'	                      # Sinopsis
		
	elif title == "Series - Estrenos":
		patronvideos  = '<div class="film"  ><a href="([^"]+)" >'
		patronvideos += '<img src="([^"]+)" style.*?/>'
		patronvideos += '<br /><b>(.*?)</b><br />(.*?)</a></div>'
	xbmc.output("[ listsimple  patronvideos: "+patronvideos)
	
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)
	solo_capitulo = False
	#xbmc.output("[ listsimple  matches")
	for match in matches:
		# Atributos
		scrapedtitle = match[2]
		#scrapedtitle = scrapedtitle.replace("<span class='style4'>","")
		#scrapedtitle = scrapedtitle.replace("</span>","")
		scrapedurl = urlparse.urljoin(url1,match[0])
		scrapedthumbnail = urlparse.urljoin(url1,match[1])
		scrapedthumbnail = scrapedthumbnail.replace(" ","")
		if title in "0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ" or extra=="actor":
			scrapedplot  = match[3].replace("\n"," ")+"\n"
		if title == "Series - Estrenos":
			solo_capitulo = True
			scrapedplot  = "Serie:    "+match[2]+"\n"
			scrapedplot += "Capitulo: "+match[3]
			scrapedtitle += " - "+match[3]
		if title in ("Series - Novedades","Spoilers ")   or  url1+"/nuevo" in url:
			solo_capitulo = True
			scrapedplot = match[3].replace("\n","")+"\n"	
			scrapedplot  = scrapedplot.replace(":",":          ")
			scrapedplot += match[5].replace("\n"," ")+"\n"
			scrapedplot += match[6].replace(":",":      ")
		scrapedplot  = re.sub("<[^>]+>"," ",scrapedplot)
		scrapedplot  = scrapedplot.replace("&eacute;","é")
		scrapedplot  = scrapedplot.replace("&oacute;","ó")
		scrapedplot  = scrapedplot.replace("&ntilde;","ñ")
		if (DEBUG): xbmc.output("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")


		# Añade al listado de XBMC
		if solo_capitulo:
			xbmctools.addnewfolder( CHANNELNAME , "ListarVideos" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
		else:
			xbmctools.addnewfolder( CHANNELNAME , "listarTemporada" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
		#<div class="pagination" align="center" ><p><span  class='current'>1</span><a  href='/estrenos/2/'>2</a><a  href='/estrenos/2/'>Siguiente &raquo;</a><a  href='/estrenos/2/'></a>
	# Extrae la marca de siguiente página
	if title == "Series - Novedades" or "http://www.series21.com/nuevo" in url:
		patronvideos = '<div class="pagination" align="center" ><div.*?<a href="([^"]+)">Más series'
	
		matches = re.compile(patronvideos,re.DOTALL).findall(data)
		scrapertools.printMatches(matches)

		if len(matches)>0:
			extra = "siguiente"
			scrapedtitle = "Página siguiente"
			scrapedurl = urlparse.urljoin(url1,matches[0])
			scrapedthumbnail = ""
			scrapedplot = ""
			xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot,extra )
	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
Beispiel #13
0
def listsimple(params, url, category):
    logger.info("[series21.py] listsimple")
    url1 = "http://www.series21.com"
    extra = urllib.unquote_plus(params.get("extradata"))
    title = urllib.unquote_plus(params.get("title"))
    # Descarga la página
    data = scrapertools.cachePage(url)
    logger.info("esta es la url: " + url)
    # Extrae las entradas (carpetas)
    scrapedplot = ""
    patronvideos = ""
    if (title == "Series - Estrenos") or url1 + "/nuevo" in url:
        patronvideos = '<div class="film2"[^>]+>.*?'
        patronvideos += '<img src="([^"]+)".*?'  # Imagen
        patronvideos += '<a href="([^"]+)".*?'  # Url
        patronvideos += '<b>([^<]+)</b>.*?'  # Nombre de la serie
        patronvideos += '<div style[^>]+>([^<]+)</div>'  # Titulo del capitulo
        #patronvideos += '.*?<b>(Temporada:</b>.*?)<.*?</a>--><br/>'
        #patronvideos += '.*?<div style=[^>]+>'                                            # Genero
        #patronvideos += '.*?<b>(Doblaje:</b>.*?)<.*?-->'                                   # Idioma

    elif title in "0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ" or extra == "actor":
        patronvideos = '<a href="([^"]+)"'  # url
        patronvideos += '.*?<img src="([^"]+)".*?'  # Imagen
        patronvideos += 'class="titulo">([^<]+)</a>.*?'  # Titulo
        patronvideos += '<b>(Sinopsis: </b>.*?)</div>'  # Sinopsis
    #<li style="margin:0px; padding:0px;  height:18px; margin-left:5px;">
    #						<b>Dexter</b>: <a href="/dexter/5x10-in-the-beginning/">5x10 -  In the Beginning</a>  | Subtitulado
    elif title == "Series - Novedades":
        patronvideos = '<li style=.*?margin-left[^>]+>[^<]+'
        patronvideos += '<b>([^<]+)</b>\: <a href="([^"]+)"'
        patronvideos += '>([^<]+)</a>(.+?)</li>'
        #patronvideos += '<br /><b>(.*?)</b><br />(.*?)</a></div>'
    logger.info("[ listsimple  patronvideos: " + patronvideos)
    #<li style="margin:0px; padding:0px;  height:18px; margin-left:5px;"><a style="text-decoration:none;" href="/bella-calamidades/1x124-capitulo-124/">Bella calamidades 1x124 - Capitulo - 124</a></li>

    matches = re.compile(patronvideos, re.DOTALL).findall(data)
    scrapertools.printMatches(matches)
    solo_capitulo = False
    #logger.info("[ listsimple  matches")
    for match in matches:
        # Atributos
        #scrapedtitle = match[2]
        #scrapedtitle = scrapedtitle.replace("<span class='style4'>","")
        #scrapedtitle = scrapedtitle.replace("</span>","")
        scrapedurl = urlparse.urljoin(url1, match[1])
        scrapedthumbnail = urlparse.urljoin(url1, match[0])
        scrapedthumbnail = scrapedthumbnail.replace(" ", "")
        if title in "0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ" or extra == "actor":
            scrapedtitle = match[2].replace("\n\t", "")
            scrapedplot = match[3].replace("\n", " ") + "\n"
            scrapedurl = urlparse.urljoin(url1, match[0])
            scrapedthumbnail = urlparse.urljoin(url1, match[1])
            scrapedthumbnail = scrapedthumbnail.replace(" ", "")
        if title == "Series - Novedades":
            scrapedurl = urlparse.urljoin(url1, match[1])
            scrapedthumbnail = ""
            #scrapedthumbnail = scrapedthumbnail.replace(" ","")
            solo_capitulo = True
            #scrapedplot  = "Serie:    "+match[2]+"\n"
            #scrapedplot += "Capitulo: "+match[3]
            if "esp.gif" in match[3]:
                idioma = "Español"
            else:
                idioma = match[3].replace("  | ",
                                          "").replace("\t\t\t\t\t\t", "")

            scrapedtitle = "%s - %s (%s)" % (match[0], match[2], idioma)
        if (title == "Series - Estrenos") or url1 + "/nuevo" in url:
            scrapedtitle = match[2]
            scrapedurl = urlparse.urljoin(url1, match[1])
            scrapedthumbnail = urlparse.urljoin(url1, match[0])
            scrapedthumbnail = scrapedthumbnail.replace(" ", "")
            solo_capitulo = True
            scrapedtitle = scrapedtitle + " - " + match[3].replace("\t\t", "")
            #scrapedplot = match[3].replace("\n","")+"\n"
            #scrapedplot  = scrapedplot.replace(":",":          ")
            #scrapedplot += match[5].replace("\n"," ")+"\n"
            #scrapedplot += match[6].replace(":",":      ")
        #scrapedtitle = scrapedtitle.replace("\n\t"," ")
        scrapedplot = re.sub("<[^>]+>", " ", scrapedplot)
        scrapedplot = scrapedplot.replace("&eacute;", "é")
        scrapedplot = scrapedplot.replace("&oacute;", "ó")
        scrapedplot = scrapedplot.replace("&ntilde;", "ñ")
        if (DEBUG):
            logger.info("title=[" + scrapedtitle + "], url=[" + scrapedurl +
                        "], thumbnail=[" + scrapedthumbnail + "]")

        # Añade al listado de XBMC
        if solo_capitulo:
            xbmctools.addnewfolder(CHANNELNAME, "ListarVideos", category,
                                   scrapedtitle, scrapedurl, scrapedthumbnail,
                                   scrapedplot)
        else:
            xbmctools.addnewfolder(CHANNELNAME, "listarTemporada", category,
                                   scrapedtitle, scrapedurl, scrapedthumbnail,
                                   scrapedplot)
        #<div class="pagination" align="center" ><p><span  class='current'>1</span><a  href='/estrenos/2/'>2</a><a  href='/estrenos/2/'>Siguiente &raquo;</a><a  href='/estrenos/2/'></a>
    # Extrae la marca de siguiente página
    if title == "Series - Novedades" or "http://www.series21.com/nuevo" in url:
        patronvideos = '<div class="pagination" align="center" ><div.*?<a href="([^"]+)">Más series'

        matches = re.compile(patronvideos, re.DOTALL).findall(data)
        scrapertools.printMatches(matches)

        if len(matches) > 0:
            extra = "siguiente"
            scrapedtitle = "Página siguiente"
            scrapedurl = urlparse.urljoin(url1, matches[0])
            scrapedthumbnail = ""
            scrapedplot = ""
            xbmctools.addnewfolderextra(CHANNELNAME, "listsimple", category,
                                        scrapedtitle, scrapedurl,
                                        scrapedthumbnail, scrapedplot, extra)
    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=pluginhandle, category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=pluginhandle,
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)
Beispiel #14
0
def buscaporletraActor(params,url,category):
	logger.info("[series21.py] buscaporletra")
	data = scrapertools.cachePage(url)
	patron  = '<div class="title">Listado de Actores</div><br/>(.*?)<ul class="menustyle">'
	matches = re.compile(patron,re.DOTALL).findall(data)
	patron  = '<a href="(.*?)">(.*?)</a>'
	matches = re.compile(patron,re.DOTALL).findall(matches[0])
        
	letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        
	opciones = []
	opciones.append("Buscar por palabras (Teclado)")
	#opciones.append("0-9")
	for letra in letras:
		opciones.append(letra)
	dia = xbmcgui.Dialog()
	seleccion = dia.select("busqueda rapida, elige uno : ", opciones)
	logger.info("seleccion=%d" % seleccion)
	if seleccion == -1 :return
	if seleccion == 0:
		keyboard = xbmc.Keyboard('')
		keyboard.doModal()
		if (keyboard.isConfirmed()):
			tecleado = keyboard.getText()
			if len(tecleado)>0:
				logger.info("Nuevo string tecleado   "+tecleado)
				for match in matches:
					if (string.lower(tecleado)) in (string.lower(match[1])):
						scrapedurl   = "http://www.series21.com"+match[0]
						scrapedtitle = match[1]
						scrapedthumbnail = ""
						scrapedplot = " "
						if (DEBUG):
							logger.info("scrapedtitle="+scrapedtitle)
							logger.info("scrapedurl="+scrapedurl)
							logger.info("scrapedthumbnail="+scrapedthumbnail)
							#  Añade al listado de XBMC
							xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot,"actor" )
								
	else:
		for match in matches:
			if match[1][0:1] == letras[seleccion-1]:
				scrapedurl   = "http://www.series21.com"+match[0]
				scrapedtitle = match[1]
				scrapedthumbnail = ""
				scrapedplot = " "
				if (DEBUG):
					logger.info("scrapedtitle="+scrapedtitle)
					logger.info("scrapedurl="+scrapedurl)
					logger.info("scrapedthumbnail="+scrapedthumbnail)
					#  Añade al listado de XBMC
					xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot,"actor" )
				
	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )
		
	# Disable sorting...
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
Beispiel #15
0
def listalfa(params, url, category):
    logger.info("[filmesonlinebr.py] listalfa")

    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "0-9",
        "http://www.filmesonlinebr.com/search/label/0-9/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "A",
        "http://www.filmesonlinebr.com/search/label/a/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "B",
        "http://www.filmesonlinebr.com/search/label/B/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "C",
        "http://www.filmesonlinebr.com/search/label/C/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "D",
        "http://www.filmesonlinebr.com/search/label/D/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "E",
        "http://www.filmesonlinebr.com/search/label/E/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "F",
        "http://www.filmesonlinebr.com/search/label/F/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "G",
        "http://www.filmesonlinebr.com/search/label/G/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "H",
        "http://www.filmesonlinebr.com/search/label/H/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "I",
        "http://www.filmesonlinebr.com/search/label/I/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "J",
        "http://www.filmesonlinebr.com/search/label/J/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "K",
        "http://www.filmesonlinebr.com/search/label/K/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "L",
        "http://www.filmesonlinebr.com/search/label/L/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "M",
        "http://www.filmesonlinebr.com/search/label/M/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "N",
        "http://www.filmesonlinebr.com/search/label/N/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "O",
        "http://www.filmesonlinebr.com/search/label/O/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "P",
        "http://www.filmesonlinebr.com/search/label/P/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "Q",
        "http://www.filmesonlinebr.com/search/label/Q/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "R",
        "http://www.filmesonlinebr.com/search/label/R/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "S",
        "http://www.filmesonlinebr.com/search/label/S/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "T",
        "http://www.filmesonlinebr.com/search/label/T/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "U",
        "http://www.filmesonlinebr.com/search/label/U/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "V",
        "http://www.filmesonlinebr.com/search/label/V/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "W",
        "http://www.filmesonlinebr.com/search/label/W/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "X",
        "http://www.filmesonlinebr.com/search/label/X/", "", "", "")
    xbmctools.addnewfolderextra(CHANNELNAME, "listvideos", category, "Y",
                                "http://www.filmesonlinebr.com/", "", "", "")
    xbmctools.addnewfolderextra(
        CHANNELNAME, "listvideos", category, "Z",
        "http://www.filmesonlinebr.com/search/label/Z/", "", "", "")

    # Label (top-right)...
    xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=category)

    # Disable sorting...
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)

    # End of directory...
    xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
Beispiel #16
0
def ListarVideos(params,url,category):
	url1 = "http://www.series21.com"
	url1 = urlparse.urljoin(url1,url)
	title = urllib.unquote_plus(params.get("title"))
	thumbnail = urllib.unquote_plus(params.get("thumbnail"))
	plot = urllib.unquote_plus(params.get("plot"))			
	data = scrapertools.cachePage(url1)
	# Busca el area donde estan los videos y la descripcion
	patronvideos = '<div id="content">(.*?)<!-- FIN #content-->'
	matches      = re.compile(patronvideos,re.DOTALL).findall(data)
	matchesBK = matches[0]


	# Extrae las entradas (videos) para megavideo
	patronvideos  = '<span  style="font-size:12px;"><strong>(.*?)</strong></span><br/>.*?'
	patronvideos += '<span.*?>.*?<a href="http\:\/\/www.megavideo.com\/([\?v=|v/|\?d=]+)([A-Z0-9]{8}).*?" target'
	
	matches = re.compile(patronvideos,re.DOTALL).findall(matches[0])
	scrapertools.printMatches(matches)
	encontrados = set()
	for match in matches:
		if match[2] not in encontrados:
			encontrados.add(match[2])
			if 'v' in match[1]:
				server = "Megavideo"
			else:
				server = "Megaupload"
			doblaje = scrapertools.entityunescape(match[0])
			# Titulo
			scrapedtitle = title + " -   [" +doblaje+ "]" + " ("+server+")"
			# URL
			scrapedurl = match[2]
			# Thumbnail
			scrapedthumbnail = thumbnail
			# Argumento
			#print 'este es el plot %s ' %plot
			#print ' doblaje %s ' %doblaje
			scrapedplot = plot
			if ("Español" in plot) and not (doblaje in plot):
				scrapedplot = scrapedplot.replace("Español",doblaje)
			elif "subtitulado" in plot and not (doblaje in plot):
				scrapedplot = scrapedplot.replace("Versión original (subtitulado)",doblaje)
			elif not doblaje in plot:
				scrapedplot += "\n" + "Doblaje : " + doblaje
			
			# Depuracion
			if (DEBUG):
				logger.info("scrapedtitle="+scrapedtitle)
				logger.info("scrapedurl="+scrapedurl)
				logger.info("scrapedthumbnail="+scrapedthumbnail)

			# Añade al listado de XBMC
			xbmctools.addnewvideo( CHANNELNAME , "play" , category ,server, scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
	if len(matches)==0:
		listavideos = servertools.findvideos(data)
		encontrados = set()
		for titulo,scrapedurl,servidor in listavideos:
			if scrapedurl.strip() not in encontrados:
				encontrados.add(scrapedurl.strip())
				xbmctools.addnewvideo( CHANNELNAME , "play" , category ,servidor, title+ " - %s" %titulo , scrapedurl , thumbnail, plot )
	patronvideos = '<span class="bloque-doblaje">(.+?)</span>[^<]+'
	patronvideos +='<span class="bloque-link">[^<]+<a href="javascript\:goTo\(\'([^\']+)\'\, \'([^\']+)\'\)"(.+?)</span>'
	#patronvideos +='(?:\| <a href="javascript\:goTo\(\'([^\']+)\'\, \'([^\']+)\'\)".*?)</span>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)
	for match in matches:
	
		# URL
		if "megavideo" in match[2]:
			server = "Megavideo"
		elif "megaupload" in match[2]:
			server = "Megaupload"
		if "esp.gif" in match[0]:
			doblaje = "Español"
			
		else:
			doblaje = match[0].strip()			
		base64 = decrypt21.Base64()
		try:
			url2 = re.compile("javascript\:goTo\(\'([^\']+)\'\, \'([^\']+)\'\)").findall(match[3])[0]
			scrapedurl2 = base64._extract_code(base64.decode(url2[0]))
			scrapedurl = base64._extract_code(base64.decode(match[1]))
			part1 = " Parte 1 "
			part2 = " Parte 2 "
			scrapedtitle2 = title + part2+ " -   [" +doblaje+ "]" + " ("+server+")"
			#print match[3]
		except:
			scrapedurl = base64._extract_code(base64.decode(match[1]))
			part1 = ""
			part2 = ""			
			
		

		scrapedtitle = title + part1+ " -   [" +doblaje+ "]" + " ("+server+")"


		# Thumbnail
		scrapedthumbnail = thumbnail
		# Argumento
		scrapedplot = plot

		# Depuracion
		if (DEBUG):
			logger.info("scrapedtitle="+scrapedtitle)
			logger.info("scrapedurl="+scrapedurl)
			logger.info("scrapedthumbnail="+scrapedthumbnail)

		# Añade al listado de XBMC
		xbmctools.addnewvideo( CHANNELNAME , "play" , category ,server, scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
		if part2:
			xbmctools.addnewvideo( CHANNELNAME , "play" , category ,server, scrapedtitle2 , scrapedurl2 , scrapedthumbnail, scrapedplot )
	
	
	# Extrae las entradas (videos) directos
	patronvideos = 'flashvars="file=([^\&]+)\&amp;controlbar=over'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)
	if len(matches)>0:
		
		data1 = scrapertools.cachePage(matches[0])
		#logger.info(data)
		patron = 'author">(.*?)</media:credit>.*?<media\:content url="([^"]+)"'
		matches = re.compile(patron,re.DOTALL).findall(data1)
		scrapertools.printMatches(matches)
		
		for match in matches:
			# Añade al listado de XBMC
			xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title +" -  ["+match[0]+"]"+ " (Directo)" , match[1] , thumbnail , plot )
	# Busca el Spoiler 
	patronvideos = '(http://www.youtube.com[^"]+)"'
	matchSpoiler = re.compile(patronvideos,re.DOTALL).findall(data)
	if len(matchSpoiler)>0:
		encontrados = set()
		for match in matchSpoiler:
			if match not in encontrados:
				encontrados.add(match)
				# Añade al listado de XBMC
				xbmctools.addnewvideo( CHANNELNAME , "youtubeplay" , category ,"Directo", "Ver El Spoiler de : "+title , match , thumbnail, "Ver Video Spoiler" )
			

		
	# Lista series relacionadas
	titulo = "Ver otros capitulos de esta temporada" 
	matches = buscarelacionados(matchesBK)
	plot2 = "CAPITULOS DE ESTA TEMPORADA :\n\n"
	for match in matches:
		plot2 = plot2 + "-"+match[2]+"\n"
	xbmctools.addnewfolderextra( CHANNELNAME , "listarelacionados" , category , titulo , url , thumbnail, plot2,matchesBK )
	#<div class="film"><a href="/house/#t_57"><img src="/thumbs/temporadas/95/120/57.jpg"
	# Cambiar de Temporada
	patron = 'div class="film"><a href="([^"]+)"><img src="([^"]+)" style'
	matchSerie= re.compile(patron,re.DOTALL).findall(matchesBK)
	if len(matchSerie)>1:
		for temp in matchSerie:
			url2      = urlparse.urljoin(url1,temp[0])
			thumbnail = urlparse.urljoin(url1,temp[1])
			titulo = "Cambiar a otras temporadas"
			titulo_serie = temp[0].split("/")
			titulo2 = titulo_serie[1].replace("-"," ")
			#print ' titulo%s ' %titulo2
			xbmctools.addnewfolderextra( CHANNELNAME , "listarTemporada" , category , titulo , url2 , thumbnail, plot,titulo2 )
			break	
		
	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
Beispiel #17
0
def listarTemporada(params,url,category):
	logger.info("[series21.py] listvideos")
	url1 = "http://www.series21.com"
	if url=="":
		url = "http://www.series21.com"
	
	# Descarga la página
	data = scrapertools.cachePage(url)
	#logger.info(data)
	titulo_serie  = urllib.unquote_plus(params.get("title"))
	if titulo_serie == "Cambiar a otras temporadas":
		titulo_serie = urllib.unquote_plus(params.get("extradata"))
	#thumbnail = urllib.unquote_plus(params.get("thumbnail"))
	#plot = urllib.unquote_plus(params.get("plot"))
	actor=""
	# Busca el area donde estan los videos y la descripcion
	patronvideos   = '<h3>(.*?)</h3>'                                            # Temporada de la Serie
	patronvideos  += '.*?<img.+?src="([^"]+)"  width=.*?/>'                        # Thumbnail de la Serie
	patronvideos  += '.*?<ul(.*?)</ul>'                                          # Capitulos de la Serie  
	matches        = re.compile(patronvideos,re.DOTALL).findall(data)
	patroncapit    = '<li><a href="([^"]+)".+?>(.+?)</a>(.+?)</li>'
	
		
	patronplot     = '<div style="margin:0px; padding:0px; text-align:justify;">(.*?)</div>'
	sinopsis       = re.compile(patronplot,re.DOTALL).findall(data)
	plot           = "Serie : "+titulo_serie+"\n"
	
	# Busca los actores
	patronactor    = '<div id="actores">(.*?)cursor:pointer'
	matchesactor   = re.compile(patronactor,re.DOTALL).findall(data)
	matchesactores = ""
	if len(matchesactor)>0:
		matchesactores = buscactores(matchesactor[0]) 
		print ' actores: %s' %str(len(matchesactores))
	if len(matchesactores)>0:
		actor =  "Actores:   "
		c = 0
		actores = "ACTORES DE ESTA SERIE :\n\n"
		for match in matchesactores:
			c       =  c + 1
			actores = actores + "-"+match[1] + "\n"
			if   c == 3 or c == 6 :
				actor = actor + match[1] + "\n"
			elif c == 4 or c == 7:
				actor = actor + "*              "  + match[1]+" , "
			else:
				actor = actor + match[1]+ " , "
				

	# Abre ventana de eleccion de temporadas			
				
	if len(matches)>1:
		opciones = []
		opciones.append(" Todas las Temporadas")
		for match in matches:
			temporada = re.sub("<[^>]+>"," ",match[0]).replace("-","").replace(">","")
			opciones.append(temporada)
		dia = xbmcgui.Dialog()
		seleccion = dia.select("Elige un tipo de Listado", opciones)
		logger.info("seleccion=%d" % seleccion)
	else:
		seleccion = 0
	if seleccion == -1:
		return
	if seleccion == 0:
		for match in matches:
			print 'esta es la %s' %match[0]
			print 'este es el thumbnail %s ' %match[1]
			thumbnail =  urlparse.urljoin(url1,match[1])
			temporada = re.sub("<[^>]+>"," ",match[0]).replace("-","").replace(">","")
			
			temporada += "\n" +actor+"\n"+ "Sinopsis : " + str(sinopsis[0].replace("\n\t\t\t\t\t",""))
			matchescapit = re.compile(patroncapit,re.DOTALL).findall(match[2])
			for match1 in matchescapit:
				esp  = ""
				subt = ""
				url  = match1[0]
				if "esp.gif" in match1[2]:
					esp = " (Español)"
				if "Subtitulado" in match1[2]:
					subt = " (VOS)"
					
				titulo = titulo_serie+" - "+match1[1]+ esp + subt
				xbmctools.addnewfolder( CHANNELNAME , "ListarVideos" , category , titulo , url , thumbnail, plot+temporada )
				
	else:
		thumbnail = urlparse.urljoin(url1,matches[seleccion-1][1])
		temporada = re.sub("<[^>]+>"," ",matches[seleccion-1][0]).replace("-","").replace(">","")
		#logger.info("matches "+matches[seleccion-1][2])
		matchescapit = re.compile(patroncapit,re.DOTALL).findall(matches[seleccion-1][2])
		plot   += temporada + "\n"
		plot   += actor+"\n"+"Sinopsis : " + str(sinopsis[0].replace("\n\t\t\t\t\t",""))
		if len(matchescapit)>0:
			for match1 in matchescapit:
				url    = match1[0]
				titulo = titulo_serie + " - " + match1[1]
				
				xbmctools.addnewfolder( CHANNELNAME , "ListarVideos" , category , titulo , url , thumbnail, plot )
				
	# Busca Series relacionadas con los actores
	if len(matchesactores)>0:
		titulo = "Lista Series relacionadas con los actores"
		xbmctools.addnewfolderextra( CHANNELNAME , "listaractores" , category , titulo , url , thumbnail, actores,matchesactor[0] )	
				
	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
Beispiel #18
0
def listsimple(params,url,category):
	logger.info("[series21.py] listsimple")
	url1 = "http://www.series21.com"
	extra= urllib.unquote_plus(params.get("extradata"))
	title = urllib.unquote_plus(params.get("title"))
	# Descarga la página
	data = scrapertools.cachePage(url)
	logger.info("esta es la url: "+url)
	# Extrae las entradas (carpetas)
	scrapedplot = ""
	patronvideos = ""
	if (title == "Series - Estrenos") or  url1+"/nuevo" in url:
		patronvideos  = '<div class="film2"[^>]+>.*?' 
		patronvideos += '<img src="([^"]+)".*?'                             # Imagen
		patronvideos += '<a href="([^"]+)".*?'                                  # Url
		patronvideos += '<b>([^<]+)</b>.*?'                            # Nombre de la serie 
		patronvideos += '<div style[^>]+>([^<]+)</div>'                     # Titulo del capitulo 
		#patronvideos += '.*?<b>(Temporada:</b>.*?)<.*?</a>--><br/>'                        
		#patronvideos += '.*?<div style=[^>]+>'                                            # Genero
		#patronvideos += '.*?<b>(Doblaje:</b>.*?)<.*?-->'                                   # Idioma
		
	elif title in "0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ" or extra=="actor":
		patronvideos  = '<a href="([^"]+)"'                                # url
		patronvideos += '.*?<img src="([^"]+)".*?'                              # Imagen
		patronvideos += 'class="titulo">([^<]+)</a>.*?'                               # Titulo
		patronvideos += '<b>(Sinopsis: </b>.*?)</div>'	                      # Sinopsis
	#<li style="margin:0px; padding:0px;  height:18px; margin-left:5px;">
	#						<b>Dexter</b>: <a href="/dexter/5x10-in-the-beginning/">5x10 -  In the Beginning</a>  | Subtitulado	
	elif title == "Series - Novedades":
		patronvideos  = '<li style=.*?margin-left[^>]+>[^<]+'
		patronvideos += '<b>([^<]+)</b>\: <a href="([^"]+)"'
		patronvideos += '>([^<]+)</a>(.+?)</li>'
		#patronvideos += '<br /><b>(.*?)</b><br />(.*?)</a></div>'
	logger.info("[ listsimple  patronvideos: "+patronvideos)
	#<li style="margin:0px; padding:0px;  height:18px; margin-left:5px;"><a style="text-decoration:none;" href="/bella-calamidades/1x124-capitulo-124/">Bella calamidades 1x124 - Capitulo - 124</a></li>
	
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)
	solo_capitulo = False
	#logger.info("[ listsimple  matches")
	for match in matches:
		# Atributos
		#scrapedtitle = match[2]
		#scrapedtitle = scrapedtitle.replace("<span class='style4'>","")
		#scrapedtitle = scrapedtitle.replace("</span>","")
		scrapedurl = urlparse.urljoin(url1,match[1])
		scrapedthumbnail = urlparse.urljoin(url1,match[0])
		scrapedthumbnail = scrapedthumbnail.replace(" ","")
		if title in "0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ" or extra=="actor":
			scrapedtitle = match[2].replace("\n\t","")
			scrapedplot  = match[3].replace("\n"," ")+"\n"
			scrapedurl = urlparse.urljoin(url1,match[0])
			scrapedthumbnail = urlparse.urljoin(url1,match[1])
			scrapedthumbnail = scrapedthumbnail.replace(" ","")			
		if title == "Series - Novedades":
			scrapedurl = urlparse.urljoin(url1,match[1])
			scrapedthumbnail = ""
			#scrapedthumbnail = scrapedthumbnail.replace(" ","")
			solo_capitulo = True
			#scrapedplot  = "Serie:    "+match[2]+"\n"
			#scrapedplot += "Capitulo: "+match[3]
			if "esp.gif" in match[3]:
				idioma = "Español"
			else:
				idioma = match[3].replace("  | ","").replace("\t\t\t\t\t\t","")
				
			scrapedtitle = "%s - %s (%s)" %(match[0],match[2],idioma)
		if (title == "Series - Estrenos")   or  url1+"/nuevo" in url:
			scrapedtitle = match[2]
			scrapedurl = urlparse.urljoin(url1,match[1])
			scrapedthumbnail = urlparse.urljoin(url1,match[0])
			scrapedthumbnail = scrapedthumbnail.replace(" ","")
			solo_capitulo = True
			scrapedtitle = scrapedtitle + " - " + match[3].replace("\t\t","")
			#scrapedplot = match[3].replace("\n","")+"\n"	
			#scrapedplot  = scrapedplot.replace(":",":          ")
			#scrapedplot += match[5].replace("\n"," ")+"\n"
			#scrapedplot += match[6].replace(":",":      ")
		#scrapedtitle = scrapedtitle.replace("\n\t"," ")	
		scrapedplot  = re.sub("<[^>]+>"," ",scrapedplot)
		scrapedplot  = scrapedplot.replace("&eacute;","é")
		scrapedplot  = scrapedplot.replace("&oacute;","ó")
		scrapedplot  = scrapedplot.replace("&ntilde;","ñ")
		if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")


		# Añade al listado de XBMC
		if solo_capitulo:
			xbmctools.addnewfolder( CHANNELNAME , "ListarVideos" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
		else:
			xbmctools.addnewfolder( CHANNELNAME , "listarTemporada" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
		#<div class="pagination" align="center" ><p><span  class='current'>1</span><a  href='/estrenos/2/'>2</a><a  href='/estrenos/2/'>Siguiente &raquo;</a><a  href='/estrenos/2/'></a>
	# Extrae la marca de siguiente página
	if title == "Series - Novedades" or "http://www.series21.com/nuevo" in url:
		patronvideos = '<div class="pagination" align="center" ><div.*?<a href="([^"]+)">Más series'
	
		matches = re.compile(patronvideos,re.DOTALL).findall(data)
		scrapertools.printMatches(matches)

		if len(matches)>0:
			extra = "siguiente"
			scrapedtitle = "Página siguiente"
			scrapedurl = urlparse.urljoin(url1,matches[0])
			scrapedthumbnail = ""
			scrapedplot = ""
			xbmctools.addnewfolderextra( CHANNELNAME , "listsimple" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot,extra )
	# Label (top-right)...
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
def listalfa(params,url,category):
	xbmc.output("[filmesonlinebr.py] listalfa")
	
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "0-9","http://www.filmesonlinebr.com/search/label/0-9/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "A","http://www.filmesonlinebr.com/search/label/a/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "B","http://www.filmesonlinebr.com/search/label/B/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "C","http://www.filmesonlinebr.com/search/label/C/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "D","http://www.filmesonlinebr.com/search/label/D/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "E","http://www.filmesonlinebr.com/search/label/E/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "F","http://www.filmesonlinebr.com/search/label/F/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "G","http://www.filmesonlinebr.com/search/label/G/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "H","http://www.filmesonlinebr.com/search/label/H/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "I","http://www.filmesonlinebr.com/search/label/I/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "J","http://www.filmesonlinebr.com/search/label/J/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "K","http://www.filmesonlinebr.com/search/label/K/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "L","http://www.filmesonlinebr.com/search/label/L/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "M","http://www.filmesonlinebr.com/search/label/M/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "N","http://www.filmesonlinebr.com/search/label/N/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "O","http://www.filmesonlinebr.com/search/label/O/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "P","http://www.filmesonlinebr.com/search/label/P/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "Q","http://www.filmesonlinebr.com/search/label/Q/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "R","http://www.filmesonlinebr.com/search/label/R/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "S","http://www.filmesonlinebr.com/search/label/S/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "T","http://www.filmesonlinebr.com/search/label/T/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "U","http://www.filmesonlinebr.com/search/label/U/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "V","http://www.filmesonlinebr.com/search/label/V/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "W","http://www.filmesonlinebr.com/search/label/W/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "X","http://www.filmesonlinebr.com/search/label/X/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "Y","http://www.filmesonlinebr.com/","","","")
	xbmctools.addnewfolderextra( CHANNELNAME ,"listvideos", category , "Z","http://www.filmesonlinebr.com/search/label/Z/","","","")

        # Label (top-right)...
	xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )

	# Disable sorting...
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )

	# End of directory...
	xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )