Página 1 de 2

Canal PeliculasYonkis

Publicado: 08 Feb 2011, 22:43
por Chumy
Buenas a tod@s,

Aqui os dejo la pre-alpha del canal peliculas yonkis. No están implementados los sistemas de busqueda.

Comentad todos los defectos y/o mejoras que encontreis.

Código: Seleccionar todo

# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para peliculasyonkis
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys
import scrapertools
import megavideo
import servertools
import binascii
import DecryptYonkis as Yonkis
import config
import logger
import buscador
from item import Item

CHANNELNAME = "peliculasyonkis"
SERVER = {'pymeno2'   :'Megavideo' ,'pymeno3':'Megavideo','pymeno4':'Megavideo','pymeno5':'Megavideo','pymeno6':'Megavideo',
          'svueno'    :'Stagevu'   ,
          'manueno'   :'Movshare'  ,
          'videoweed' :'Videoweed' ,
          'veoh2'     :'Veoh'      ,
          'megaupload':'Megaupload',
          'pfflano'   :'Directo'   ,
          }
CALIDAD = {'f-1':u'\u2776','f-2':u'\u2777','f-3':u'\u2778','f-4':u'\u0002\u2779\u0002','f-5':u'\u277A'}
    
# Traza el inicio del canal
logger.info("[peliculasyonkis.py] init")
DEBUG = True

def isGeneric():
    return True
    
def mainlist(item):
	logger.info("[peliculasyonkis.py] mainlist")

	itemlist = []
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Estrenos de cartelera" ,url="http://www.peliculasyonkis.com/ultimas-peliculas/cartelera/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Estrenos de DVD" ,url="http://www.peliculasyonkis.com/ultimas-peliculas/estrenos-dvd/"))
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Ultimas Peliculas Actualizadas",url="http://www.peliculasyonkis.com/ultimas-peliculas/actualizadas/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Ultimas peliculas añadidas a la web",url="http://www.peliculasyonkis.com/ultimas-peliculas/estrenos-web/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="listcategorias" , title="Listado por categorias",url="http://www.peliculasyonkis.com/") ) 
	itemlist.append( Item ( channel=CHANNELNAME , action="listalfabetico" , title="Listado alfabético",url="http://www.peliculasyonkis.com/") )
	#~ itemlist.append( Item ( channel=CHANNELNAME , action="buscaporanyo"   , title="Busqueda por Año",url="http://www.peliculasyonkis.com/") )
	#~ itemlist.append( Item ( channel=CHANNELNAME , action="search"         , title="Buscar") )
	
	return itemlist

def search(params,url,category):
    logger.info("[peliculasyonkis.py] search")    
    buscador.listar_busquedas(params,url,category)

def performsearch(texto):
    logger.info("[peliculasyonkis.py] performsearch")
    url = "http://www.peliculasyonkis.com/buscarPelicula.php?s="+texto
    
    # Descarga la página
    data = scrapertools.cachePage(url)

    # Extrae las entradas (carpetas)
    patronvideos  = '<li> <a href="([^"]+)" title="([^"]+)"><img.*?src="([^"]+)"'
    matches = re.compile(patronvideos,re.DOTALL).findall(data)
    scrapertools.printMatches(matches)
    
    resultados = []

    for match in matches:
        # Atributos
        scrapedtitle = match[1]
        scrapedurl = match[0]
        scrapedthumbnail = match[2]
        scrapedplot = ""
        if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")

        # Añade al listado de XBMC
        resultados.append( [CHANNELNAME , "detailfolder" , "buscador" , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot ] )
        
    return resultados

def searchresults(params,Url,category):
	logger.info("[peliculasyonkis.py] searchresults")

	buscador.salvar_busquedas(params,Url,category)

	url = "http://www.peliculasyonkis.com/buscarPelicula.php?s="+Url.replace(" ", "+")

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

	# Extrae las entradas (carpetas)
	#<li> <a href="http://www.peliculasyonkis.com/pelicula/las-edades-de-lulu-1990/" title="Las edades de Lulú (1990)"><img width="77" height="110" src="http://images.peliculasyonkis.com/thumbs/las-edades-de-lulu-1990.jpg" alt="Las edades de Lulú (1990)" align="right" />

	patronvideos  = '<li> <a href="([^"]+)" title="([^"]+)"><img.*?src="([^"]+)"'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		scrapedtitle = match[1]
		scrapedurl = match[0]
		scrapedthumbnail = match[2]
		scrapedplot = ""
		if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
		xbmctools.addnewvideo( CHANNELNAME , "detail" , category , "Megavideo" , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot )

	# 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 listalfabetico(item):

	itemlist=[]
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="0-9",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasNumeric.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="A",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasA.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="B",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasB.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="C",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasC.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="D",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasD.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="E",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasE.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="F",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasF.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="G",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasG.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="H",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasH.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="I",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasI.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="J",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasJ.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="K",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasK.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="L",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasL.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="M",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasM.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="N",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasN.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="O",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasO.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="P",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasP.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="Q",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasQ.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="R",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasR.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="S",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasS.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="T",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasT.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="U",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasU.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="V",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasV.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="W",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasW.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="X",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasX.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="Y",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasY.php") )
	itemlist.append( Item ( chanel=CHANNELNAME ,action="listvideos", title="Z",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasZ.php") )
	
	return itemlist

def listnovedades(item):
	logger.info("[peliculasyonkis.py] listnovedades")

	# Descarga la página
	data = scrapertools.cachePage(item.url)
	#logger.info(data)
	itemlist=[]
	# Extrae las entradas (carpetas)
	'''
	<td align='center'>
	<center><span style='font-size: 0.7em'>
	<a href="http://www.peliculasyonkis.com/pelicula/otra-vez-tu-you-again-2010-/" title="Otra vez tu (You again) (2010 )">
	<img width='100' height='144' src='http://simages.peliculasyonkis.com/thumbs/otra-vez-tu-you-again-2010-.jpg' alt='Otra vez tu (You again) (2010 )'/><br />Otra vez tu (You again) (2010 )</a></span><br />
	<img height="30" src="http://simages.seriesyonkis.com/images/f/latino.png" alt="Audio Latino" style="vertical-align: middle;" /><img height="30" src="http://simages.peliculasyonkis.com/images/tdescargar2.png" title="Tiene Descarga Directa" style="vertical-align: middle;"/></center></td>
	'''
	patronvideos  = '<td align=\'center\'>'
	patronvideos += '<center><span style=\'font-size: 0.7em\'>'
	patronvideos += '<a href="([^"]+)" title="([^"]+)">'
	patronvideos += '<img.*?src=\'([^\']+)\'[^>]+>.*?'
	patronvideos += '<img.*?src="(http://simages[^"]+)"'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		try:
			scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedtitle = match[1]

		# URL
		scrapedurl = match[0]

		# Thumbnail
		scrapedthumbnail = match[2]

		# procesa el resto
		scrapedplot = ""

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

		itemlist.append( Item ( channel=CHANNELNAME , action="detail" , server="Megavideo" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )
		
	return itemlist

def listcategorias(item):
	logger.info("[peliculasyonkis.py] listcategorias")
	itemlist=[]
	# Descarga la página
	data = scrapertools.cachePage(item.url)
	#logger.info(data)

	# Extrae las entradas (carpetas)
	patronvideos  = '<li class="page_item"><a href="(http\://www.peliculasyonkis.com/genero/[^"]+)"[^>]+>([^<]+)</a></li>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		try:
			scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedtitle = match[1]

		# URL
		scrapedurl = match[0]
		
		# Thumbnail
		scrapedthumbnail = match[0]
		
		# procesa el resto
		scrapedplot = ""

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

		# Añade al listado de XBMC
		itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

	return itemlist
	
def buscaporanyo(params,url,category):
    logger.info("[peliculasyonkis.py] buscaporanyo")
    itemlist=[]
    anho=2010
    anyoactual = anho
    anyoinic   = 1920
    opciones = []
    for i in range(anyoactual-anyoinic+1):
        opciones.append(str(anyoactual))
        anyoactual = anyoactual - 1           
    dia = xbmcgui.Dialog()
    seleccion = dia.select("Listar desde el Año: ", opciones)
    logger.info("seleccion=%d" % seleccion)
    if seleccion == -1 :return
    if seleccion == 0:
        url = "http://www.peliculasyonkis.com/estreno/"+opciones[seleccion]+"/"+opciones[seleccion]+"/0/"
        listvideos(params,url,category)
        return
    if seleccion>30:
        anyoactual = anho + 30 - seleccion
        rangonuevo = 31
    else:
        anyoactual = anho
        rangonuevo = seleccion + 1
    desde      = opciones[seleccion]
    
    opciones2 = []
    for j in range(rangonuevo):
        opciones2.append(str(anyoactual))
        anyoactual = anyoactual - 1
    dia2 = xbmcgui.Dialog()
    seleccion2 = dia2.select("Listar hasta el año:",opciones2)
    if seleccion == -1 :
        url = "http://www.peliculasyonkis.com/estreno/"+desde+"/"+desde+"/0/"
        listvideos(params,url,category)
        return
    url = "http://www.peliculasyonkis.com/estreno/"+desde+"/"+opciones2[seleccion2]+"/0/"
    listvideos(params,url,category)
    
    return itemlist

def listvideos(item):
	logger.info("[peliculasyonkis.py] listvideos")
	itemlist=[]
	# Descarga la página
	data = scrapertools.cachePage(item.url)
	#logger.info(data)

	# Extrae las entradas (carpetas)
	patronvideos  = "<a href='([^']+)'>Siguiente >></a>"
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		scrapedtitle = "#Siguiente"

		# URL
		scrapedurl = match
		
		# Thumbnail
		scrapedthumbnail = ""
		
		# procesa el resto
		scrapedplot = ""

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

		# Añade al listado de XBMC
		itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" ,  title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

	# Extrae las entradas (carpetas)
	patronvideos  = '<li>[^<]+<a href="([^"]+)" title="([^"]+)"><img.*?src="([^"]+)"[^>]+>.*?<span[^>]+>(.*?)</span>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		try:
			scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedtitle = match[1]

		# URL
		scrapedurl = match[0]
		
		# Thumbnail
		scrapedthumbnail = match[2]
		
		# procesa el resto
		try:
			scrapedplot = unicode( match[3], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedplot = match[3]
		
		scrapedplot = scrapedplot.replace("\r"," ")
		scrapedplot = scrapedplot.replace("\n"," ")
		scrapedplot = scrapedplot.replace(""","'")
		scrapedplot = scrapedplot.replace("<br />","|")
		patronhtml = re.compile( '<img[^>]+>' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( 'Uploader:[^\|]+\|' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( 'Idioma:[^\|]+\|' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( 'Tiene descarga directa:[^\|]+\|' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( '\W*\|\W*' )
		scrapedplot = patronhtml.sub( "|", scrapedplot )
		patronhtml = re.compile( '\|Descripci.n:' )
		scrapedplot = patronhtml.sub( "\n\n", scrapedplot )
		
		scrapedplot = scrapedplot.replace("|b>Servidor:</b|","")
		scrapedplot = re.sub('<[^>]+>',"",scrapedplot)
		scrapedplot = scrapedplot.replace("b>","\n")
		# Depuracion
		if (DEBUG):
			logger.info("scrapedtitle="+scrapedtitle)
			logger.info("scrapedurl="+scrapedurl)
			logger.info("scrapedthumbnail="+scrapedthumbnail)

		# Añade al listado de XBMC
		itemlist.append( Item ( channel=CHANNELNAME , action="detail" , server="Megavideo" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

	return itemlist

def detailfolder(params,url,category):
    logger.info("[peliculasyonkis.py] detail")

    title = urllib.unquote_plus( params.get("title") )
    thumbnail = urllib.unquote_plus( params.get("thumbnail") )
    plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )

    xbmctools.addnewvideo( CHANNELNAME , "detail" , category , "Megavideo" , title , url , thumbnail , plot )

    # Label (top-right)...
    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 )

def detail(item):
	logger.info("[peliculasyonkis.py] detail")

	
	listafinal = []
	itemlist=[] # Lista de videos
	listapartes=[] # Lista para las partes
	title = item.title 
	thumbnail = item.thumbnail 
	plot = item.plot

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

	# ------------------------------------------------------------------------------------
	# Busca los enlaces a los videos
	# ------------------------------------------------------------------------------------
	patronvideos  = 'href="http://www.peliculasyonkis.com/player/visor_([^\.]+).php.*?'
	patronvideos += 'id=([^"]+)".*?'
	patronvideos += 'alt="([^"]+)"'
	patronvideos += '(.*?)</tr>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)

	
	if len(matches)>0:
		print "MATCHES %d" % len(matches)
		itemlist = ChoiceOneVideo(matches,title)

	return itemlist





def choiceOnePart(item, opciones):

    Nro = 0
    matches = item.url.split(":")
    print "Elige bien %02d " % len(matches)
    for url in matches:
		print " URL " + url
		Nro = Nro + 1
		titulo = item.title  + "Parte %s " % Nro
		opciones.append(Item (channel=CHANNELNAME, title=titulo, server=item.server, url=url, action=item.action))
    
    return opciones
    
def ChoiceOneVideo(matches,title):
    logger.info("[peliculasyonkis.py] ChoiceOneVideo")
    
    opciones = []
    Nro = 0
    fmt=duracion=id=""
    
    for server,codigo,audio,data in matches:
        try:
            ql= ""
            servidor = SERVER[server]
            Nro = Nro + 1
            regexp = re.compile(r"title='([^']+)'")
            match = regexp.search(data)
            if match is not None:
                fmt = match.group(1)
                fmt = fmt.replace("Calidad","").strip()
            regexp = re.compile(r"Duraci\xc3\xb3n:([^<]+)<")
            match = regexp.search(data)
            if match is not None:
                duracion = match.group(1).replace(".",":")
                if len(duracion.strip())>0:
                    duracion = duracion + " minutos"
            audio = audio.replace("Subt\xc3\xadtulos en Espa\xc3\xb1ol","Subtitulado") 
            audio = audio.replace("Audio","").strip()
            data2 =  re.sub("<[^>]+>",">",data)
            data2 = data2.replace(">>>","").replace(">>","<")
            data2 = re.sub("[0-9:.]+","",data2)
            print data2
            Video_info = ""
            regexp = re.compile(r"<(.+?)<")
            match = regexp.search(data2)
            if match is not None:
                
                Video_info = match.group(1)
                print Video_info 
                Video_info = "-%s" %Video_info.replace("Duraci\xc3\xb3n","").strip()
            else:
                regexp = re.compile(r">(.+?)<")
                match = regexp.search(data2)
                if match is not None:
                
                    Video_info = match.group(1)
                    print Video_info 
                    Video_info = "-%s" %Video_info.replace("Duraci\xc3\xb3n","").strip()                
            #opciones.append("%02d) [%s] - [%s] %s (%s%s)" % (Nro , audio,servidor,duracion,fmt,Video_info))
            title = "%02d) [%s] - [%s] %s (%s%s)" % (Nro , audio,servidor,duracion,fmt,Video_info)
            
            print "Codigo " + codigo
            if '&al=' in codigo:
				codigos = codigo.split('&al=')			
				url = Decrypt_Server(codigos[0],server)
				if ":" in url:
					itemPartes = Item (title=title, url=url, server=servidor, action="play")
					opciones = choiceOnePart(itemPartes, opciones)
					#opciones.append(listaPartes)
				#~ Nro += 1
				#~ title= "%02d) [%s] - [%s] %s (%s-%s)" % (Nro , audio,"MegaUpload",duracion,fmt,Video_info)
				#~ opciones.append(Item (title=title, server="megaupload", url=codigo[1], action="play") )
				
            else:
				url = Decrypt_Server(codigo,server)
				opciones.append(Item (channel=CHANNELNAME, title=title, server=servidor, url=url, action="play") )
				
        except urllib2.URLError,e:
            logger.info("[peliculasyonkis.py] error:%s (%s)" % (e.code,server))
            
    return opciones
    
    
def Decrypt_Server(id_encoded,servidor):
    id = id_encoded
    DEC = Yonkis.DecryptYonkis()
    print "Recibimos " + servidor + " y " + id_encoded
    
    if   'pymeno2'   == servidor: idd=DEC.decryptID(DEC.charting(DEC.unescape(id)))   
    elif 'pymeno3'   == servidor: idd=DEC.decryptID(DEC.charting(DEC.unescape(id)))   
    elif 'pymeno4'   == servidor: idd=DEC.decryptID(DEC.charting(DEC.unescape(id)))   
    elif 'pymeno5'   == servidor: idd=DEC.decryptID_series(DEC.unescape(id))          
    elif 'pymeno6'   == servidor: idd=DEC.decryptID_series(DEC.unescape(id))      
    elif 'svueno'    == servidor:
        idd=DEC.decryptALT(DEC.charting(DEC.unescape(id)))
        if ":" in idd:
            ids = idd.split(":")
            idd = "http://stagevu.com/video/%s" %choiceOnePart(ids).strip()
        else:
            idd = "http://stagevu.com/video/%s" %idd
    elif 'manueno'   == servidor:
        idd=DEC.decryptALT(DEC.charting(DEC.unescape(id)))
        if len(idd)>50:
            ids = idd.split()
            idd = choiceOnePart(ids).strip()
        
    elif 'videoweed' == servidor:
        idd= DEC.decryptID(DEC.charting(DEC.unescape(id))) 
        if ":" in idd:
            ids = idd.split(":")
            idd = "http://www.videoweed.com/file/%s" %choiceOnePart(ids).strip()        
        else:
            idd = "http://www.videoweed.com/file/%s" %idd
    elif 'veoh2'     == servidor: idd=DEC.decryptALT(DEC.charting(DEC.unescape(id))) 
    elif 'megaupload'== servidor: 
        idd=DEC.ccM(DEC.unescape(id))
        if ":" in idd:
            idd = choiceOnePart(idd.split(":"))
        
    elif 'pfflano'   == servidor: 
        idd=DEC.decryptALT(DEC.charting(DEC.unescape(id)))
        print idd
        ids = idd.split()
        idd = choiceOnePart(ids).strip()
        return idd
        
    else:
        return ""
    
    return idd
    
    
    
    
def Activar_Novedades(params,activar,category):
    if activar == "false":
        config.setSetting("activar","true")
    else:
        config.setSetting("activar","false")
    print "opcion menu novedades :%s" %config.getSetting("activar")
    
    #xbmc.executebuiltin('Container.Update')    
    xbmc.executebuiltin('Container.Refresh')
    
Un saludo

Re: Canal PeliculasYonkis

Publicado: 09 Feb 2011, 01:20
por juancarlos_mad
Hola Chumy, primero decirte que es un trabajo excepcional.
Tras poner el canal y navegar por los menues de pelisyonkis, a la hora de pinchar en una peli sale el siguiente error:

[scrapertools.py] Descargando http://www.peliculasyonkis.com/pelicula/el-ultimo-
testigo-1974/
[scrapertools.py] Descargado en 1 segundos
MATCHES 1
[peliculasyonkis.py] ChoiceOneVideo
style="vertical-align middle;" / spanish no
> Duraci├│n <DVD-Rip< >Carioca

DVD-Rip
Codigo %C8%C7%A6%A9%F6%CC%C1%E7
----------------------------------------
Exception happened during processing of request from ('123.120.2.14', 60478)
Traceback (most recent call last):
File "d:\DESCARGAS\python\lib\SocketServer.py", line 284, in _handle_request_n
oblock
self.process_request(request, client_address)
File "d:\DESCARGAS\python\lib\SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "d:\DESCARGAS\python\lib\SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "d:\DESCARGAS\python\lib\SocketServer.py", line 639, in __init__
self.handle()
File "d:\DESCARGAS\python\lib\BaseHTTPServer.py", line 337, in handle
self.handle_one_request()
File "d:\DESCARGAS\python\lib\BaseHTTPServer.py", line 325, in handle_one_requ
est
method()
File "D:\DESCARGAS\python\pelisalacarta-wii\pelisalacarta.py", line 57, in do_
GET
itemlist,channel = wiitools.getitems(self.path)
File "D:\DESCARGAS\python\pelisalacarta-wii\wiitools.py", line 70, in getitems

exec "itemlist = "+channel+"."+accion+"(senderitem)"
File "<string>", line 1, in <module>
File "D:\DESCARGAS\python\pelisalacarta-wii\peliculasyonkis.py", line 411, in
detail
itemlist = ChoiceOneVideo(matches,title)
File "D:\DESCARGAS\python\pelisalacarta-wii\peliculasyonkis.py", line 484, in
ChoiceOneVideo
if ":" in url:
UnboundLocalError: local variable 'url' referenced before assignment
----------------------------------------

Re: Canal PeliculasYonkis

Publicado: 09 Feb 2011, 11:35
por Dalim
Te da error de nuevo por un error con los espacios Dentro de peliculasyonkis.py en ChoiceOneVideo busca esta seccion de codigo y revisa que este bien agrupado

ChoiceOneVideo

Código: Seleccionar todo

            if '&al=' in codigo:
                codigos = codigo.split('&al=')         
                url = Decrypt_Server(codigos[0],server)
                if ":" in url:
                    itemPartes = Item (title=title, url=url, server=servidor, action="play")
                    opciones = choiceOnePart(itemPartes, opciones)
                    #opciones.append(listaPartes)
            #~ Nro += 1
En ese error te dice que haces referencia a "url" antes de definirla o asignarle un valor, "if ":" in url:" tiene que estar dentro del anterior if.

Es lo que tiene el python, al no tener end if y demas te pierdes un poco al copiar codigo.

Un saludo

Re: Canal PeliculasYonkis

Publicado: 09 Feb 2011, 11:46
por juancarlos_mad
Gracias.
Al copiarlo literal del mensaje anterior y venir los dos if al mismo nivel, no lo vi.

Un saludo.

Re: Canal PeliculasYonkis

Publicado: 09 Feb 2011, 12:06
por Dalim
De nada.

De momento yo lo veo muy estable el canal como lo ha dejado Chumy.

Añado:
-------------------------


Te comiste una "n" de channel en el listado alfabético , debirar ir asi:

listalfabetico

Código: Seleccionar todo

def listalfabetico(item):
    logger.info("[peliculasyonkis.py] listalfabetico")
    
    itemlist=[]
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="0-9",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasNumeric.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="A",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasA.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="B",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasB.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="C",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasC.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="D",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasD.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="E",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasE.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="F",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasF.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="G",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasG.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="H",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasH.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="I",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasI.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="J",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasJ.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="K",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasK.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="L",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasL.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="M",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasM.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="N",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasN.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="O",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasO.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="P",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasP.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="Q",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasQ.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="R",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasR.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="S",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasS.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="T",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasT.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="U",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasU.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="V",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasV.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="W",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasW.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="X",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasX.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="Y",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasY.php") )
    itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="Z",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasZ.php") )
   
    return itemlist

Re: Canal PeliculasYonkis

Publicado: 09 Feb 2011, 13:20
por jesus
Gracias @Chumy, un buen trabajo :)

Re: Canal PeliculasYonkis

Publicado: 09 Feb 2011, 19:19
por Chumy
Gracias Dalim por el detalle de la N.

@Juancarlos entiendo que ya te va bien?

Le incorporaré el buscador en breve si no se detectan mas fallos :D

Un saludo

Edito: que ya esta la versión con el buscador (llamemoslo buscador 1.0)

Código: Seleccionar todo

# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para peliculasyonkis
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys
import scrapertools
import megavideo
import servertools
import binascii
import DecryptYonkis as Yonkis
import config
import logger
import buscador
from item import Item

CHANNELNAME = "peliculasyonkis"
SERVER = {'pymeno2'   :'Megavideo' ,'pymeno3':'Megavideo','pymeno4':'Megavideo','pymeno5':'Megavideo','pymeno6':'Megavideo',
          'svueno'    :'Stagevu'   ,
          'manueno'   :'Movshare'  ,
          'videoweed' :'Videoweed' ,
          'veoh2'     :'Veoh'      ,
          'megaupload':'Megaupload',
          'pfflano'   :'Directo'   ,
          }
CALIDAD = {'f-1':u'\u2776','f-2':u'\u2777','f-3':u'\u2778','f-4':u'\u0002\u2779\u0002','f-5':u'\u277A'}
    
# Traza el inicio del canal
logger.info("[peliculasyonkis.py] init")
DEBUG = True

def isGeneric():
    return True
    
def mainlist(item):
	logger.info("[peliculasyonkis.py] mainlist")

	itemlist = []
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Estrenos de cartelera" ,url="http://www.peliculasyonkis.com/ultimas-peliculas/cartelera/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Estrenos de DVD" ,url="http://www.peliculasyonkis.com/ultimas-peliculas/estrenos-dvd/"))
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Ultimas Peliculas Actualizadas",url="http://www.peliculasyonkis.com/ultimas-peliculas/actualizadas/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Ultimas peliculas añadidas a la web",url="http://www.peliculasyonkis.com/ultimas-peliculas/estrenos-web/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="listcategorias" , title="Listado por categorias",url="http://www.peliculasyonkis.com/") ) 
	itemlist.append( Item ( channel=CHANNELNAME , action="listalfabetico" , title="Listado alfabético",url="http://www.peliculasyonkis.com/") )
	#~ itemlist.append( Item ( channel=CHANNELNAME , action="buscaporanyo"   , title="Busqueda por Año",url="http://www.peliculasyonkis.com/") )
	itemlist.append( Item ( channel=CHANNELNAME , action="search"         , title="Buscar" , url="http://www.peliculasyonkis.com/") )
	
	return itemlist

def search(item):
    logger.info("[peliculasyonkis.py] search")    
    #buscador.listar_busquedas(params,url,category)
    tecleado = item.extra.replace(" ", "+")
    print "Buscando ... " + tecleado
    item.url = "http://www.peliculasyonkis.com/buscarPelicula.php?s="+tecleado
    itemlist = performsearch(item)
    #xbmctools.renderItems(itemlist, params, url, category)
    return itemlist


def performsearch(item):
    logger.info("[peliculasyonkis.py] performsearch")
    #url = "http://www.peliculasyonkis.com/buscarPelicula.php?s="+texto
    
    # Descarga la página
    data = scrapertools.cachePage(item.url)

    # Extrae las entradas (carpetas)
    patronvideos  = '<li> <a href="([^"]+)" title="([^"]+)"><img.*?src="([^"]+)"'
    matches = re.compile(patronvideos,re.DOTALL).findall(data)
    scrapertools.printMatches(matches)
    print "Encontrados %d" % len(matches)
    resultados = []

    for match in matches:
        # Atributos
        scrapedtitle = match[1]
        scrapedurl = match[0]
        scrapedthumbnail = match[2]
        scrapedplot = ""
        if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")

        # Añade al listado de XBMC
        resultados.append( Item ( channel=CHANNELNAME , action="detailfolder" , server="buscador" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail, plot=scrapedplot ) )
        
    return resultados

def searchresults(params,Url,category):
	logger.info("[peliculasyonkis.py] searchresults")

	buscador.salvar_busquedas(params,Url,category)

	url = "http://www.peliculasyonkis.com/buscarPelicula.php?s="+Url.replace(" ", "+")

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

	# Extrae las entradas (carpetas)
	#<li> <a href="http://www.peliculasyonkis.com/pelicula/las-edades-de-lulu-1990/" title="Las edades de Lulú (1990)"><img width="77" height="110" src="http://images.peliculasyonkis.com/thumbs/las-edades-de-lulu-1990.jpg" alt="Las edades de Lulú (1990)" align="right" />

	patronvideos  = '<li> <a href="([^"]+)" title="([^"]+)"><img.*?src="([^"]+)"'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		scrapedtitle = match[1]
		scrapedurl = match[0]
		scrapedthumbnail = match[2]
		scrapedplot = ""
		if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
		xbmctools.addnewvideo( CHANNELNAME , "detail" , category , "Megavideo" , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot )

	# 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 listalfabetico(item):

	itemlist=[]
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="0-9",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasNumeric.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="A",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasA.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="B",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasB.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="C",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasC.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="D",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasD.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="E",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasE.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="F",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasF.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="G",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasG.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="H",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasH.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="I",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasI.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="J",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasJ.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="K",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasK.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="L",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasL.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="M",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasM.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="N",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasN.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="O",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasO.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="P",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasP.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="Q",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasQ.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="R",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasR.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="S",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasS.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="T",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasT.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="U",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasU.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="V",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasV.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="W",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasW.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="X",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasX.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="Y",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasY.php") )
	itemlist.append( Item ( channel=CHANNELNAME ,action="listvideos", title="Z",url="http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasZ.php") )
	
	return itemlist

def listnovedades(item):
	logger.info("[peliculasyonkis.py] listnovedades")

	# Descarga la página
	data = scrapertools.cachePage(item.url)
	#logger.info(data)
	itemlist=[]
	# Extrae las entradas (carpetas)
	'''
	<td align='center'>
	<center><span style='font-size: 0.7em'>
	<a href="http://www.peliculasyonkis.com/pelicula/otra-vez-tu-you-again-2010-/" title="Otra vez tu (You again) (2010 )">
	<img width='100' height='144' src='http://simages.peliculasyonkis.com/thumbs/otra-vez-tu-you-again-2010-.jpg' alt='Otra vez tu (You again) (2010 )'/><br />Otra vez tu (You again) (2010 )</a></span><br />
	<img height="30" src="http://simages.seriesyonkis.com/images/f/latino.png" alt="Audio Latino" style="vertical-align: middle;" /><img height="30" src="http://simages.peliculasyonkis.com/images/tdescargar2.png" title="Tiene Descarga Directa" style="vertical-align: middle;"/></center></td>
	'''
	patronvideos  = '<td align=\'center\'>'
	patronvideos += '<center><span style=\'font-size: 0.7em\'>'
	patronvideos += '<a href="([^"]+)" title="([^"]+)">'
	patronvideos += '<img.*?src=\'([^\']+)\'[^>]+>.*?'
	patronvideos += '<img.*?src="(http://simages[^"]+)"'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		try:
			scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedtitle = match[1]

		# URL
		scrapedurl = match[0]

		# Thumbnail
		scrapedthumbnail = match[2]

		# procesa el resto
		scrapedplot = ""

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

		itemlist.append( Item ( channel=CHANNELNAME , action="detail" , server="Megavideo" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )
		
	return itemlist

def listcategorias(item):
	logger.info("[peliculasyonkis.py] listcategorias")
	itemlist=[]
	# Descarga la página
	data = scrapertools.cachePage(item.url)
	#logger.info(data)

	# Extrae las entradas (carpetas)
	patronvideos  = '<li class="page_item"><a href="(http\://www.peliculasyonkis.com/genero/[^"]+)"[^>]+>([^<]+)</a></li>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		try:
			scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedtitle = match[1]

		# URL
		scrapedurl = match[0]
		
		# Thumbnail
		scrapedthumbnail = match[0]
		
		# procesa el resto
		scrapedplot = ""

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

		# Añade al listado de XBMC
		itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

	return itemlist
	
def buscaporanyo(params,url,category):
    logger.info("[peliculasyonkis.py] buscaporanyo")
    itemlist=[]
    anho=2010
    anyoactual = anho
    anyoinic   = 1920
    opciones = []
    for i in range(anyoactual-anyoinic+1):
        opciones.append(str(anyoactual))
        anyoactual = anyoactual - 1           
    dia = xbmcgui.Dialog()
    seleccion = dia.select("Listar desde el Año: ", opciones)
    logger.info("seleccion=%d" % seleccion)
    if seleccion == -1 :return
    if seleccion == 0:
        url = "http://www.peliculasyonkis.com/estreno/"+opciones[seleccion]+"/"+opciones[seleccion]+"/0/"
        listvideos(params,url,category)
        return
    if seleccion>30:
        anyoactual = anho + 30 - seleccion
        rangonuevo = 31
    else:
        anyoactual = anho
        rangonuevo = seleccion + 1
    desde      = opciones[seleccion]
    
    opciones2 = []
    for j in range(rangonuevo):
        opciones2.append(str(anyoactual))
        anyoactual = anyoactual - 1
    dia2 = xbmcgui.Dialog()
    seleccion2 = dia2.select("Listar hasta el año:",opciones2)
    if seleccion == -1 :
        url = "http://www.peliculasyonkis.com/estreno/"+desde+"/"+desde+"/0/"
        listvideos(params,url,category)
        return
    url = "http://www.peliculasyonkis.com/estreno/"+desde+"/"+opciones2[seleccion2]+"/0/"
    listvideos(params,url,category)
    
    return itemlist

def listvideos(item):
	logger.info("[peliculasyonkis.py] listvideos")
	itemlist=[]
	# Descarga la página
	data = scrapertools.cachePage(item.url)
	#logger.info(data)

	# Extrae las entradas (carpetas)
	patronvideos  = "<a href='([^']+)'>Siguiente >></a>"
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		scrapedtitle = "#Siguiente"

		# URL
		scrapedurl = match
		
		# Thumbnail
		scrapedthumbnail = ""
		
		# procesa el resto
		scrapedplot = ""

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

		# Añade al listado de XBMC
		itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" ,  title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

	# Extrae las entradas (carpetas)
	patronvideos  = '<li>[^<]+<a href="([^"]+)" title="([^"]+)"><img.*?src="([^"]+)"[^>]+>.*?<span[^>]+>(.*?)</span>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)
	scrapertools.printMatches(matches)

	for match in matches:
		# Titulo
		try:
			scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedtitle = match[1]

		# URL
		scrapedurl = match[0]
		
		# Thumbnail
		scrapedthumbnail = match[2]
		
		# procesa el resto
		try:
			scrapedplot = unicode( match[3], "utf-8" ).encode("iso-8859-1")
		except:
			scrapedplot = match[3]
		
		scrapedplot = scrapedplot.replace("\r"," ")
		scrapedplot = scrapedplot.replace("\n"," ")
		scrapedplot = scrapedplot.replace(""","'")
		scrapedplot = scrapedplot.replace("<br />","|")
		patronhtml = re.compile( '<img[^>]+>' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( 'Uploader:[^\|]+\|' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( 'Idioma:[^\|]+\|' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( 'Tiene descarga directa:[^\|]+\|' )
		scrapedplot = patronhtml.sub( "", scrapedplot )
		patronhtml = re.compile( '\W*\|\W*' )
		scrapedplot = patronhtml.sub( "|", scrapedplot )
		patronhtml = re.compile( '\|Descripci.n:' )
		scrapedplot = patronhtml.sub( "\n\n", scrapedplot )
		
		scrapedplot = scrapedplot.replace("|b>Servidor:</b|","")
		scrapedplot = re.sub('<[^>]+>',"",scrapedplot)
		scrapedplot = scrapedplot.replace("b>","\n")
		# Depuracion
		if (DEBUG):
			logger.info("scrapedtitle="+scrapedtitle)
			logger.info("scrapedurl="+scrapedurl)
			logger.info("scrapedthumbnail="+scrapedthumbnail)

		# Añade al listado de XBMC
		itemlist.append( Item ( channel=CHANNELNAME , action="detail" , server="Megavideo" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

	return itemlist

def detailfolder(item):
	logger.info("[peliculasyonkis.py] detail")

	itemlist=[]
	itemlist.append( Item ( channel=CHANNELNAME , action="detail" , server="Megavideo" , title=item.title , url=item.url , thumbnail=item.thumbnail , plot=item.plot ) )
	#xbmctools.addnewvideo( CHANNELNAME , "detail" , category , "Megavideo" , title , url , thumbnail , plot )

	# Label (top-right)...
	#~ 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 )
	return itemlist

def detail(item):
	logger.info("[peliculasyonkis.py] detail")

	
	listafinal = []
	itemlist=[] # Lista de videos
	listapartes=[] # Lista para las partes
	title = item.title 
	thumbnail = item.thumbnail 
	plot = item.plot

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

	# ------------------------------------------------------------------------------------
	# Busca los enlaces a los videos
	# ------------------------------------------------------------------------------------
	patronvideos  = 'href="http://www.peliculasyonkis.com/player/visor_([^\.]+).php.*?'
	patronvideos += 'id=([^"]+)".*?'
	patronvideos += 'alt="([^"]+)"'
	patronvideos += '(.*?)</tr>'
	matches = re.compile(patronvideos,re.DOTALL).findall(data)

	
	if len(matches)>0:
		print "MATCHES %d" % len(matches)
		itemlist = ChoiceOneVideo(matches,title)

	return itemlist





def choiceOnePart(item, opciones):

    Nro = 0
    matches = item.url.split(":")
    print "Elige bien %02d " % len(matches)
    for url in matches:
		print " URL " + url
		Nro = Nro + 1
		titulo = item.title  + "Parte %s " % Nro
		opciones.append(Item (channel=CHANNELNAME, title=titulo, server=item.server, url=url, action=item.action))
    
    return opciones
    
def ChoiceOneVideo(matches,title):
    logger.info("[peliculasyonkis.py] ChoiceOneVideo")
    
    opciones = []
    Nro = 0
    fmt=duracion=id=""
    
    for server,codigo,audio,data in matches:
        try:
            ql= ""
            servidor = SERVER[server]
            Nro = Nro + 1
            regexp = re.compile(r"title='([^']+)'")
            match = regexp.search(data)
            if match is not None:
                fmt = match.group(1)
                fmt = fmt.replace("Calidad","").strip()
            regexp = re.compile(r"Duraci\xc3\xb3n:([^<]+)<")
            match = regexp.search(data)
            if match is not None:
                duracion = match.group(1).replace(".",":")
                if len(duracion.strip())>0:
                    duracion = duracion + " minutos"
            audio = audio.replace("Subt\xc3\xadtulos en Espa\xc3\xb1ol","Subtitulado") 
            audio = audio.replace("Audio","").strip()
            data2 =  re.sub("<[^>]+>",">",data)
            data2 = data2.replace(">>>","").replace(">>","<")
            data2 = re.sub("[0-9:.]+","",data2)
            print data2
            Video_info = ""
            regexp = re.compile(r"<(.+?)<")
            match = regexp.search(data2)
            if match is not None:
                
                Video_info = match.group(1)
                print Video_info 
                Video_info = "-%s" %Video_info.replace("Duraci\xc3\xb3n","").strip()
            else:
                regexp = re.compile(r">(.+?)<")
                match = regexp.search(data2)
                if match is not None:
                
                    Video_info = match.group(1)
                    print Video_info 
                    Video_info = "-%s" %Video_info.replace("Duraci\xc3\xb3n","").strip()                
            #opciones.append("%02d) [%s] - [%s] %s (%s%s)" % (Nro , audio,servidor,duracion,fmt,Video_info))
            title = "%02d) [%s] - [%s] %s (%s%s)" % (Nro , audio,servidor,duracion,fmt,Video_info)
            
            print "Codigo " + codigo
            if '&al=' in codigo:
				codigos = codigo.split('&al=')			
				url = Decrypt_Server(codigos[0],server)
				if ":" in url:
					itemPartes = Item (title=title, url=url, server=servidor, action="play")
					opciones = choiceOnePart(itemPartes, opciones)
					#opciones.append(listaPartes)
				#~ Nro += 1
				#~ title= "%02d) [%s] - [%s] %s (%s-%s)" % (Nro , audio,"MegaUpload",duracion,fmt,Video_info)
				#~ opciones.append(Item (title=title, server="megaupload", url=codigo[1], action="play") )
				
            else:
				url = Decrypt_Server(codigo,server)
				opciones.append(Item (channel=CHANNELNAME, title=title, server=servidor, url=url, action="play") )
				
        except urllib2.URLError,e:
            logger.info("[peliculasyonkis.py] error:%s (%s)" % (e.code,server))
            
    return opciones
    
    
def Decrypt_Server(id_encoded,servidor):
    id = id_encoded
    DEC = Yonkis.DecryptYonkis()
    print "Recibimos " + servidor + " y " + id_encoded
    
    if   'pymeno2'   == servidor: idd=DEC.decryptID(DEC.charting(DEC.unescape(id)))   
    elif 'pymeno3'   == servidor: idd=DEC.decryptID(DEC.charting(DEC.unescape(id)))   
    elif 'pymeno4'   == servidor: idd=DEC.decryptID(DEC.charting(DEC.unescape(id)))   
    elif 'pymeno5'   == servidor: idd=DEC.decryptID_series(DEC.unescape(id))          
    elif 'pymeno6'   == servidor: idd=DEC.decryptID_series(DEC.unescape(id))      
    elif 'svueno'    == servidor:
        idd=DEC.decryptALT(DEC.charting(DEC.unescape(id)))
        if ":" in idd:
            ids = idd.split(":")
            idd = "http://stagevu.com/video/%s" %choiceOnePart(ids).strip()
        else:
            idd = "http://stagevu.com/video/%s" %idd
    elif 'manueno'   == servidor:
        idd=DEC.decryptALT(DEC.charting(DEC.unescape(id)))
        if len(idd)>50:
            ids = idd.split()
            idd = choiceOnePart(ids).strip()
        
    elif 'videoweed' == servidor:
        idd= DEC.decryptID(DEC.charting(DEC.unescape(id))) 
        if ":" in idd:
            ids = idd.split(":")
            idd = "http://www.videoweed.com/file/%s" %choiceOnePart(ids).strip()        
        else:
            idd = "http://www.videoweed.com/file/%s" %idd
    elif 'veoh2'     == servidor: idd=DEC.decryptALT(DEC.charting(DEC.unescape(id))) 
    elif 'megaupload'== servidor: 
        idd=DEC.ccM(DEC.unescape(id))
        if ":" in idd:
            idd = choiceOnePart(idd.split(":"))
        
    elif 'pfflano'   == servidor: 
        idd=DEC.decryptALT(DEC.charting(DEC.unescape(id)))
        print idd
        ids = idd.split()
        idd = choiceOnePart(ids).strip()
        return idd
        
    else:
        return ""
    
    return idd
    
    
    
    
def Activar_Novedades(params,activar,category):
    if activar == "false":
        config.setSetting("activar","true")
    else:
        config.setSetting("activar","false")
    print "opcion menu novedades :%s" %config.getSetting("activar")
    
    #xbmc.executebuiltin('Container.Update')    
    xbmc.executebuiltin('Container.Refresh')
    


Re: Canal PeliculasYonkis

Publicado: 10 Feb 2011, 00:28
por juancarlos_mad
Hola Chumy,
todo funciona fenomenal. Lo único que he encontrado es lo siguiente:
- Cuando busco con la opcion "Buscar" la peli "Camino a la libertad", la encuentra pero al pulsarla da error (me ocurre con todas las pelis que encuentra)

Código: Seleccionar todo

--------------------------------------------
c-76-20-0-14.hsd1.ca.comcast.net - - [10/Feb/2011 00:12:35] "GET /peliculasyonki
s/search/http%3A%2F%2Fwww.peliculasyonkis.com%2F/none/playlist.plxcamino HTTP/1.
1" 200 -
-----------------------------------------------------------------
/peliculasyonkis/detailfolder/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2F
camino-a-la-libertad-2010%2F/buscador/playlist.plx
Host: 76.20.0.10
User-Agent: WiiMC/1.1.2 (IOS61)
Cache-Control: no-cache

-----------------------------------------------------------------
host=76.20.0.10:8080
ruta=/peliculasyonkis/detailfolder/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicu
la%2Fcamino-a-la-libertad-2010%2F/buscador/playlist.plx

peliculasyonkis
detailfolder
http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino-a-la-libertad-2010%2F
buscador
playlist.plx
channel=peliculasyonkis
accion=detailfolder
url=http://www.peliculasyonkis.com/pelicula/camino-a-la-libertad-2010/
server=buscador
C:\Documents and Settings\Administrador.PRIVE-45D1EA838\.pelisalacarta\cache\b60
3abbd492af0c64512eb5a07e89798
De cache
--------------------------------------------
version=7
logo=http://www.mimediacenter.info/xbmc/pelisalacarta/icon.jpg
title=pelisalacarta prerelease

type=playlist
name=
URL=http://76.20.0.10:8080/peliculasyonkis/detail/http%3A%2F%2Fwww.peliculasyonk
is.com%2Fpelicula%2Fcamino-a-la-libertad-2010%2F/Megavideo/playlist.plx


--------------------------------------------
c-76-20-0-14.hsd1.ca.comcast.net - - [10/Feb/2011 00:12:41] "GET /peliculasyonki
s/detailfolder/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino-a-la-lib
ertad-2010%2F/buscador/playlist.plx HTTP/1.1" 200 -

Sin embargo cuando la busco por "Estrenos de cartelera" funciona perfectamente.

Código: Seleccionar todo

--------------------------------------------
c-76-20-0-14.hsd1.ca.comcast.net - - [10/Feb/2011 00:04:45] "GET /peliculasyonki
s/listnovedades/http%3A%2F%2Fwww.peliculasyonkis.com%2Fultimas-peliculas%2Fcarte
lera%2F/none/playlist.plx HTTP/1.1" 200 -
-----------------------------------------------------------------
/peliculasyonkis/detail/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino
-a-la-libertad-2010%2F/Megavideo/playlist.plx
Host: 76.20.0.10
User-Agent: WiiMC/1.1.2 (IOS61)
Cache-Control: no-cache

-----------------------------------------------------------------
host=76.20.0.10:8080
ruta=/peliculasyonkis/detail/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fc
amino-a-la-libertad-2010%2F/Megavideo/playlist.plx

peliculasyonkis
detail
http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino-a-la-libertad-2010%2F
Megavideo
playlist.plx
channel=peliculasyonkis
accion=detail
url=http://www.peliculasyonkis.com/pelicula/camino-a-la-libertad-2010/
server=Megavideo
C:\Documents and Settings\Administrador.PRIVE-45D1EA838\.pelisalacarta\cache\6bf
1e4b61efd398745c4d678ff684523
De cache
--------------------------------------------
version=7
logo=http://www.mimediacenter.info/xbmc/pelisalacarta/icon.jpg
title=pelisalacarta prerelease

type=playlist
name=01) [Espa├▒ol] - [Megavideo]  125:6 minutos (Buena-TS-Screener)Parte 1
URL=http://76.20.0.10:8080/peliculasyonkis/play/XFERX1NY/Megavideo/playlist.plx

type=playlist
name=01) [Espa├▒ol] - [Megavideo]  125:6 minutos (Buena-TS-Screener)Parte 2
URL=http://76.20.0.10:8080/peliculasyonkis/play/CY9WTSM3/Megavideo/playlist.plx

type=playlist
name=02) [Ingl├®s] - [Megavideo]  125:3 minutos (Buena-TS-Screener)
URL=http://76.20.0.10:8080/peliculasyonkis/play/86B0U08Y/Megavideo/playlist.plx


--------------------------------------------
c-76-20-0-14.hsd1.ca.comcast.net - - [10/Feb/2011 00:04:56] "GET /peliculasyonki
s/detail/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino-a-la-libertad-
2010%2F/Megavideo/playlist.plx HTTP/1.1" 200 -

La diferencia del último comando entre ellas es:


c-76-20-0-14.hsd1.ca.comcast.net - - [10/Feb/2011 00:12:41] "GET /peliculasyonki
s/detailfolder/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino-a-la-lib
ertad-2010%2F/buscador/playlist.plx HTTP/1.1" 200 -

c-76-20-0-14.hsd1.ca.comcast.net - - [10/Feb/2011 00:04:56] "GET /peliculasyonki
s/detail/http%3A%2F%2Fwww.peliculasyonkis.com%2Fpelicula%2Fcamino-a-la-libertad-
2010%2F/Megavideo/playlist.plx HTTP/1.1" 200 -

Aunque con el bagaje que tengo seguro que he metido la pata con el pyton y sus tabuladores.


- También me ocurre que cuando busco por "Listado alfabético" la letra C: no me completa el listado y no sale "página siguiente", parece algo del buffer:

File "d:\DESCARGAS\python\lib\socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 10054] Se ha forzado la interrupci¾n de una conexi¾n existente por el host remoto




Un saludo a todos.

Re: Canal PeliculasYonkis

Publicado: 11 Feb 2011, 04:02
por Dalim
Buenas como tambien andaba trasteando con este canal aqui os dejo mis retoques.
En el listado principal he añadido Listado por Servidor, Listado por Idiomas y Busqueda por Año como en la pagina original.
He modificado el buscador, que funcionaba pero daba error al enlazar a las peliculas, por algo mas sencillo

Listado Principal

Código: Seleccionar todo

def mainlist(item):
   logger.info("[peliculasyonkis.py] mainlist")

   itemlist = []
   itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Estrenos de cartelera" ,url="http://www.peliculasyonkis.com/ultimas-peliculas/cartelera/") )
   itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Estrenos de DVD"       ,url="http://www.peliculasyonkis.com/ultimas-peliculas/estrenos-dvd/"))

   itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Ultimas Peliculas Actualizadas"     ,url="http://www.peliculasyonkis.com/ultimas-peliculas/actualizadas/") )
   itemlist.append( Item ( channel=CHANNELNAME , action="listnovedades"  , title="Ultimas Peliculas añadidas a la web",url="http://www.peliculasyonkis.com/ultimas-peliculas/estrenos-web/") )

   itemlist.append( Item ( channel=CHANNELNAME , action="listcategorias" , title="Listado por Categorias",url="http://www.peliculasyonkis.com/") ) 
   itemlist.append( Item ( channel=CHANNELNAME , action="listalfabetico" , title="Listado Alfabético"    ,url="http://www.peliculasyonkis.com/") )
   itemlist.append( Item ( channel=CHANNELNAME , action="listservidor"   , title="Listado por Servidor"  ,url="http://www.peliculasyonkis.com/") )
   itemlist.append( Item ( channel=CHANNELNAME , action="listidiomas"    , title="Listado por Idiomas"   ,url="http://www.peliculasyonkis.com/") ) 
   

   itemlist.append( Item ( channel=CHANNELNAME , action="buscaporanyo"   , title="Busqueda por Año",url="http://www.peliculasyonkis.com/") )
   itemlist.append( Item ( channel=CHANNELNAME , action="search"         , title="Buscar"          ,url="http://www.peliculasyonkis.com/buscarPelicula.php?s=",thumbnail="http://www.mimediacenter.info/xbmc/pelisalacarta/posters/buscador.png") )
   
   return itemlist
Listado por Idiomas

Código: Seleccionar todo

def listidiomas(item):
   logger.info("[peliculasyonkis.py] listidiomas")
   itemlist=[]
   # Descarga la página
   data = scrapertools.cachePage(item.url)
   #logger.info(data)

   # Extrae las entradas (carpetas)
   # <li class="page_item"><a href="http://www.peliculasyonkis.com/lista-peliculas/idioma/espanol-espana/0/" title="Español (España)"><img height="16" src="http://simages.seriesyonkis.com/images/f/spanish.png" alt="Audio Español España" style="vertical-align: middle;" />Español (España)</a></li>
   patronvideos  = '<a href="(http\://www.peliculasyonkis.com/lista-peliculas/idioma/[^"]+)"(.*?) src="([^"]+)" (.*?)>([^"]+)</a></li>'
   matches = re.compile(patronvideos,re.DOTALL).findall(data)
   scrapertools.printMatches(matches)

   for match in matches:
      # URL
      scrapedurl = match[0]
      
      # Titulo
      scrapedtitle = match[4]
      
      # Thumbnail
      scrapedthumbnail = match[2]
      
      # procesa el resto
      scrapedplot = ""

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

      # Añade al listado del Wiimc
      itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

   return itemlist
Listado por Servidores

Código: Seleccionar todo

def listservidor(item):
   logger.info("[peliculasyonkis.py] listservidor")

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

   # Extrae las entradas (carpetas)
   # <li class="page_item"><a href="http://www.peliculasyonkis.com/lista-peliculas/servidor/megavideo/0/" title="Megavideo"><img height="16" src="http://simages.peliculasyonkis.com/images/tmegavideo.png" alt="Megavideo" style="vertical-align: middle;" />Megavideo (todas)</a></li>
   patronvideos  = '<a href="(http\://www.peliculasyonkis.com/lista-peliculas/servidor/[^"]+)"(.*?)>([^"]+)</a></li>'
   matches = re.compile(patronvideos,re.DOTALL).findall(data)
   scrapertools.printMatches(matches)

   for match in matches:
      # URL
      scrapedurl = match[0]
      
      # Titulo
      scrapedtitle = match[2]
      
      # Thumbnail
      if scrapedtitle=="Veoh":
          scrapedthumbnail = "http://simages.peliculasyonkis.com/images/veoh.jpg"
      elif scrapedtitle=="VeohTV":
          scrapedthumbnail = "http://simages.peliculasyonkis.com/images/veohtv.jpg"
      elif scrapedtitle=="Megavideo (con descarga de Megaupload)":
          scrapedthumbnail = "http://www.mimediacenter.info/xbmc/pelisalacarta/posters/megauploadsite.png"
      elif scrapedtitle=="Megavideo (todas)":
          scrapedthumbnail = "http://www.mimediacenter.info/xbmc/pelisalacarta/posters/megavideosite.png"
      elif scrapedtitle=="DivX":
          scrapedthumbnail = "http://simages.peliculasyonkis.com/images/divx.png"
      else:
          scrapedthumbnail = ""
      # procesa el resto
      scrapedplot = ""
      logger.info(match[2])

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

      # Añade al listado del Wiimc
      itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" , title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot ) )

   return itemlist
En el buscador por años solo se localizan las peliculas de un año en concreto, probe otras opciones pero introducir dos años (via teclado o seleccionando por lista) no era nada comodo

Buscador por años

Código: Seleccionar todo

def buscaporanyo(item):
    logger.info("[peliculasyonkis.py] buscaporanyo")
    itemlist = []
    for i in range(111):
        scrapedtitle=str(2010-i)
        scrapedurl="http://www.peliculasyonkis.com/estreno/"+scrapedtitle+"/"+scrapedtitle+"/0/"
        itemlist.append( Item ( channel=CHANNELNAME , action="listvideos" , title=scrapedtitle , url=scrapedurl , thumbnail="" , plot="" ) )
    return itemlist
Como daba un error en el buscador, he modificado lo que puso Chumy para saltarse el performsearch que en este canal no lo veo necesario.

Buscar

Código: Seleccionar todo

def search(item):
    logger.info("[peliculasyonkis.py] search")    
    #buscador.listar_busquedas(params,url,category)
    tecleado = item.extra.replace(" ", "+")
    print "Buscando ... " + tecleado
    item.url = "http://www.peliculasyonkis.com/buscarPelicula.php?s="+tecleado
    itemlist = performsearch(item)
    #xbmctools.renderItems(itemlist, params, url, category)
    return itemlist
Un saludo y gracias Chumy por modificar el canal para wiimc.

Re: Canal PeliculasYonkis

Publicado: 11 Feb 2011, 20:46
por Chumy
Gracias a los dos por probarlo y arreglarlo.

Si este fin de semana tengo tiempo intentare adaptar el canal buscador.py para integrar el wiimc con el sistema de búsqueda que ya tiene jesus.