# -*- coding: utf-8 -*- import re import urlparse from core import httptools from core import scrapertools from core import servertools from core.item import Item from platformcode import logger def mainlist(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Películas", action="menupeliculas", url="http://www.bajui.org/descargas/categoria/2/peliculas", fanart=item.fanart)) itemlist.append(Item(channel=item.channel, title="Series", action="menuseries", fanart=item.fanart)) itemlist.append(Item(channel=item.channel, title="Documentales", action="menudocumentales", fanart=item.fanart)) itemlist.append(Item(channel=item.channel, title="Buscar", action="search", fanart=item.fanart)) return itemlist def menupeliculas(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Películas - Novedades", action="peliculas", url=item.url, fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append( Item(channel=item.channel, title="Películas - A-Z", action="peliculas", url=item.url + "/orden:nombre", fanart=item.fanart, viewmode="movie_with_plot")) data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '
') patron = '([^<]+)' matches = re.compile(patron, re.DOTALL).findall(data) for url, title in matches: scrapedurl = urlparse.urljoin(item.url, url) itemlist.append(Item(channel=item.channel, title="Películas en " + title, action="peliculas", url=scrapedurl, fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="", fanart=item.fanart)) return itemlist def menuseries(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Series - Novedades", action="peliculas", url="http://www.bajui.org/descargas/categoria/3/series", fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Series - A-Z", action="peliculas", url="http://www.bajui.org/descargas/categoria/3/series/orden:nombre", fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Series - HD", action="peliculas", url="http://www.bajui.org/descargas/subcategoria/11/hd/orden:nombre", fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="", fanart=item.fanart)) return itemlist def menudocumentales(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Documentales - Novedades", action="peliculas", url="http://www.bajui.org/descargas/categoria/7/docus-y-tv", fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Documentales - A-Z", action="peliculas", url="http://www.bajui.org/descargas/categoria/7/docus-y-tv/orden:nombre", fanart=item.fanart, viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url="", fanart=item.fanart)) return itemlist def search(item, texto, categoria=""): logger.info(item.url + " search " + texto) itemlist = [] url = item.url texto = texto.replace(" ", "+") logger.info("categoria: " + categoria + " url: " + url) try: item.url = "http://www.bajui.org/descargas/busqueda/%s" item.url = item.url % texto itemlist.extend(peliculas(item)) 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 peliculas(item, paginacion=True): logger.info() url = item.url data = httptools.downloadpage(url).data patron = '