# -*- coding: utf-8 -*-
import re
import urlparse
from core import scrapertools
from core import httptools
from core import servertools
from core import tmdb
from core.item import Item
from platformcode import config, logger
host = 'http://vepelis.com/'
def mainlist(item):
logger.info()
itemlist = []
itemlist.append(Item(channel=item.channel, title="Ultimas Agregadas", action="listado2",
url="http://www.vepelis.com/pelicula/ultimas-peliculas",
extra="http://www.vepelis.com/pelicula/ultimas-peliculas"))
itemlist.append(Item(channel=item.channel, title="Estrenos en DVD", action="listado2",
url="http://www.vepelis.com/pelicula/ultimas-peliculas/estrenos-dvd",
extra="http://www.vepelis.com/pelicula/ultimas-peliculas/estrenos-dvd"))
itemlist.append(Item(channel=item.channel, title="Peliculas en Cartelera", action="listado2",
url="http://www.vepelis.com/pelicula/ultimas-peliculas/cartelera",
extra="http://www.vepelis.com/pelicula/ultimas-peliculas/cartelera"))
itemlist.append(Item(channel=item.channel, title="Ultimas Actualizadas", action="listado2",
url="http://www.vepelis.com/pelicula/ultimas-peliculas/ultimas/actualizadas",
extra="http://www.vepelis.com/pelicula/ultimas-peliculas/ultimas/actualizadas"))
itemlist.append(Item(channel=item.channel, title="Por Genero", action="generos", url="http://www.vepelis.com/"))
itemlist.append(Item(channel=item.channel, title="Por Orden Alfabetico", action="alfabetico",
url="http://www.vepelis.com/"))
itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="http://www.vepelis.com/"))
return itemlist
def listarpeliculas(item):
logger.info()
# Descarga la página
data = httptools.downloadpage(item.url).data
extra = item.extra
# Extrae las entradas de la pagina seleccionada
'''
'''
patron = ' | 0:
scrapedurl = extra + match
scrapedtitle = "!Pagina Siguiente"
scrapedthumbnail = ""
scrapedplot = ""
itemlist.append(
Item(channel=item.channel, action="listarpeliculas", title=scrapedtitle, fulltitle=scrapedtitle,
url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, extra=extra, folder=True))
return itemlist
def findvideos(item):
logger.info()
# Descarga la página
itemlist = []
data = httptools.downloadpage(item.url).data
itemlist.extend(servertools.find_video_items(data=data))
for videoitem in itemlist:
videoitem.channel = item.channel
videoitem.quality = item.quality
videoitem.language = item.language
videoitem.action = 'play'
return itemlist
def generos(item):
logger.info()
itemlist = []
# Descarga la página
data = httptools.downloadpage(item.url).data
patron = '>.*? "" and len(scrapedtitle) < 20 and scrapedtitle <> "Iniciar Sesion":
itemlist.append(Item(channel=item.channel, action="listado2", title=scrapedtitle, url=scrapedurl,
thumbnail=scrapedthumbnail, plot=scrapedplot, extra=extra, folder=True))
itemlist = sorted(itemlist, key=lambda Item: Item.title)
return itemlist
def alfabetico(item):
logger.info()
# TODO Hacer esto correctamente
extra = item.url
itemlist = []
itemlist.append(
Item(channel=item.channel, action="listado2", title="0-9", url="http://www.vepelis.com/letra/09.html",
extra="http://www.vepelis.com/letra/09.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="A", url="http://www.vepelis.com/letra/a.html",
extra="http://www.vepelis.com/letra/a.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="B", url="http://www.vepelis.com/letra/b.html",
extra="http://www.vepelis.com/letra/b.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="C", url="http://www.vepelis.com/letra/c.html",
extra="http://www.vepelis.com/letra/c.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="E", url="http://www.vepelis.com/letra/d.html",
extra="http://www.vepelis.com/letra/d.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="D", url="http://www.vepelis.com/letra/e.html",
extra="http://www.vepelis.com/letra/e.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="F", url="http://www.vepelis.com/letra/f.html",
extra="http://www.vepelis.com/letra/f.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="G", url="http://www.vepelis.com/letra/g.html",
extra="http://www.vepelis.com/letra/g.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="H", url="http://www.vepelis.com/letra/h.html",
extra="http://www.vepelis.com/letra/h.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="I", url="http://www.vepelis.com/letra/i.html",
extra="http://www.vepelis.com/letra/i.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="J", url="http://www.vepelis.com/letra/j.html",
extra="http://www.vepelis.com/letra/j.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="K", url="http://www.vepelis.com/letra/k.html",
extra="http://www.vepelis.com/letra/k.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="L", url="http://www.vepelis.com/letra/l.html",
extra="http://www.vepelis.com/letra/l.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="M", url="http://www.vepelis.com/letra/m.html",
extra="http://www.vepelis.com/letra/m.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="N", url="http://www.vepelis.com/letra/n.html",
extra="http://www.vepelis.com/letra/n.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="O", url="http://www.vepelis.com/letra/o.html",
extra="http://www.vepelis.com/letra/o.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="P", url="http://www.vepelis.com/letra/p.html",
extra="http://www.vepelis.com/letra/p.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="Q", url="http://www.vepelis.com/letra/q.html",
extra="http://www.vepelis.com/letra/q.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="R", url="http://www.vepelis.com/letra/r.html",
extra="http://www.vepelis.com/letra/r.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="S", url="http://www.vepelis.com/letra/s.html",
extra="http://www.vepelis.com/letra/s.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="T", url="http://www.vepelis.com/letra/t.html",
extra="http://www.vepelis.com/letra/t.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="U", url="http://www.vepelis.com/letra/u.html",
extra="http://www.vepelis.com/letra/u.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="V", url="http://www.vepelis.com/letra/v.html",
extra="http://www.vepelis.com/letra/v.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="W", url="http://www.vepelis.com/letra/w.html",
extra="http://www.vepelis.com/letra/w.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="X", url="http://www.vepelis.com/letra/x.html",
extra="http://www.vepelis.com/letra/x.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="Y", url="http://www.vepelis.com/letra/y.html",
extra="http://www.vepelis.com/letra/y.html"))
itemlist.append(Item(channel=item.channel, action="listado2", title="Z", url="http://www.vepelis.com/letra/z.html",
extra="http://www.vepelis.com/letra/z.html"))
return itemlist
def listado2(item):
logger.info()
extra = item.extra
itemlist = []
# Descarga la página
data = httptools.downloadpage(item.url).data
data = re.sub(r'"|\n|\r|\t| | |\s{2,}', "", data)
patron = '.*?peli_img_img>.*? (.*?)<.*?Genero.*?:.*?(\d{4})<.*?png\/>(.*?)<.*?: (.*?)<'
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedplot, year, language, quality in matches:
language = language.strip()
itemlist.append(Item(channel=item.channel, action="findvideos", title=scrapedtitle, fulltitle=scrapedtitle,
url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, language=language,
quality=quality, infoLabels={'year': year}))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
patron = '(.*?)'
matches = re.compile(patron, re.DOTALL).findall(data)
for match in matches:
nu = int(match[0]) + 1
scrapedurl = extra + "?page=" + str(nu)
scrapedtitle = "!Pagina Siguiente ->"
scrapedthumbnail = ""
itemlist.append(Item(channel=item.channel, action="listado2", title=scrapedtitle, fulltitle=scrapedtitle,
url=scrapedurl, thumbnail=scrapedthumbnail, extra=extra, folder=True))
return itemlist
def search(item, texto):
logger.info()
itemlist = []
texto = texto.replace(" ", "+")
try:
# Series
item.url = "http://www.vepelis.com/buscar/?q=%s"
item.url = item.url % texto
item.extra = ""
itemlist.extend(listado2(item))
itemlist = sorted(itemlist, key=lambda Item: Item.title)
return itemlist
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("%s" % line)
return []
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == 'peliculas':
item.url = host + 'ultimas-peliculas'
itemlist = listarpeliculas(item)
elif categoria == 'terror':
item.url = host + "categoria-terror/"
itemlist = listado2(item)
else:
return []
if itemlist[-1].title == "!Pagina Siguiente ->":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
return itemlist
|