# -*- coding: utf-8 -*- import re from core import httptools from core import scrapertools from core import servertools from core import tmdb from core.item import Item from platformcode import config, logger host = "http://peliscity.com" def mainlist(item): logger.info() itemlist = [] data = httptools.downloadpage(host).data patron = 'cat-item.*?span>([^<]+)' matches = scrapertools.find_multiple_matches(data, patron) can = 0 for cantidad in matches: can += int(cantidad.replace(".", "")) itemlist.append( Item(channel=item.channel, title="Películas: (%s)" %can, text_bold=True)) itemlist.append( Item(channel=item.channel, title=" Últimas agregadas", action="agregadas", url= host, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title=" Peliculas HD", action="agregadas", url= host + "/calidad/hd-real-720", viewmode="movie_with_plot")) itemlist.append( Item(channel=item.channel, title=" Listado por género", action="porGenero", url= host)) itemlist.append(Item(channel=item.channel, title=" Idioma", action="porIdioma", url= host)) itemlist.append(Item(channel=item.channel, title=" Buscar", action="search", url= host + "/?s=")) return itemlist def porIdioma(item): itemlist = [] itemlist.append(Item(channel=item.channel, title="Castellano", action="agregadas", url= host + "/idioma/espanol-castellano/", viewmode="movie_with_plot")) itemlist.append( Item(channel=item.channel, title="VOSE", action="agregadas", url= host + "/idioma/subtitulada/", viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Latino", action="agregadas", url= host + "/idioma/espanol-latino/", viewmode="movie_with_plot")) return itemlist def porGenero(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data patron = 'cat-item.*?href="([^"]+).*?>(.*?)<.*?span>([^<]+)' matches = scrapertools.find_multiple_matches(data, patron) for urlgen, genero, cantidad in matches: cantidad = cantidad.replace(".", "") titulo = genero + " (" + cantidad + ")" itemlist.append(Item(channel=item.channel, action="agregadas", title=titulo, url=urlgen, folder=True, viewmode="movie_with_plot")) return itemlist def search(item, texto): logger.info() texto_post = texto.replace(" ", "+") item.url = host + "/?s=" + texto_post try: return listaBuscar(item) # Se captura la excepcion, 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 agregadas(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r'\n|\r|\t|\s{2}| |"', "", data) patron = scrapertools.find_multiple_matches (data,'.*?Duración') for element in patron: info = scrapertools.find_single_match(element, "calidad>(.*?)<.*?ahref=(.*?)>.*?'reflectMe' src=(.*?)\/>.*?

(.*?)" "<\/h2>.*?sinopsis>(.*?)<\/div>.*?Año:<\/span>(.*?)<\/li>") quality = info[0] url = info[1] thumbnail = info[2] title = info[3] plot = info[4] year = info[5].strip() itemlist.append(Item(channel=item.channel, action='findvideos', contentType = "movie", contentTitle = title, fulltitle = title, infoLabels={'year':year}, quality=quality, thumbnail=thumbnail, title=title, url=url )) tmdb.set_infoLabels(itemlist, True) next_page = scrapertools.find_single_match(data,'tima>.*?href=(.*?) >