# -*- coding: utf-8 -*- # -*- Channel CinemaHD -*- # -*- Created for Alfa-addon -*- # -*- By the Alfa Develop Group -*- import re from channelselector import get_thumb 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://www.cinemahd.co/' def mainlist(item): logger.info() itemlist = list() itemlist.append(item.clone(title="Ultimas", action="list_all", url=host, thumbnail=get_thumb('last', auto=True))) itemlist.append(item.clone(title="Generos", action="section", section='genre', thumbnail=get_thumb('genres', auto=True))) itemlist.append(item.clone(title="Por Calidad", action="section", section='quality', thumbnail=get_thumb('quality', auto=True))) itemlist.append(item.clone(title="Por Año", action="section", section='year', thumbnail=get_thumb('year', auto=True))) itemlist.append(item.clone(title="Alfabetico", action="section", section='alpha', thumbnail=get_thumb('alphabet', auto=True))) itemlist.append(item.clone(title="Buscar", action="search", url=host+'?s=', thumbnail=get_thumb('search', auto=True))) return itemlist def get_source(url): logger.info() data = httptools.downloadpage(url).data data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) return data def list_all(item): logger.info() itemlist = [] data = get_source(item.url) if item.section == 'alpha': patron = '\d+.*?(.*?).*?' patron += '(\d{4}).*?Qlty>(.*?)' else: patron = '
.*?.*?'') if url_next_page: itemlist.append(item.clone(title="Siguiente >>", url=url_next_page, action='list_all')) return itemlist def section(item): logger.info() itemlist = [] data = get_source(host) action = 'list_all' if item.section == 'quality': patron = 'menu-item-object-category.*?menu-item-\d+>(.*?)<\/a>' elif item.section == 'genre': patron = '(.*?)' elif item.section == 'year': patron = 'custom menu-item-15\d+>(\d{4})<\/a><\/li>' elif item.section == 'alpha': patron = '
  • (.*?)' action = 'list_all' matches = re.compile(patron, re.DOTALL).findall(data) for data_one, data_two in matches: url = data_one title = data_two if title != 'Ver más': new_item = Item(channel=item.channel, title= title, url=url, action=action, section=item.section) itemlist.append(new_item) return itemlist def findvideos(item): logger.info() itemlist = [] data = get_source(item.url) patron = 'id=(Opt\d+)>.*?src=(.*?) frameborder.*?' matches = re.compile(patron, re.DOTALL).findall(data) for option, scrapedurl in matches: url= scrapedurl opt_data = scrapertools.find_single_match(data,'%s>.*?\d+<.*?.*?(' '.*?)'%option).split('-') language = opt_data[0].strip() quality = opt_data[1].strip() if url != '': itemlist.append(item.clone(title='%s', url=url, language=language, quality=quality, action='play')) itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % '%s [%s] [%s]'%(i.server.capitalize(), i.language, i.quality)) if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos': itemlist.append( Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, action="add_pelicula_to_library", extra="findvideos", contentTitle=item.contentTitle)) return itemlist def search(item, texto): logger.info() texto = texto.replace(" ", "+") item.url = item.url + texto if texto != '': return list_all(item) else: return [] def newest(categoria): logger.info() itemlist = [] item = Item() try: if categoria in ['peliculas','latino']: item.url = host elif categoria == 'infantiles': item.url = host+'/animacion' elif categoria == 'terror': item.url = host+'/terror' itemlist = list_all(item) if itemlist[-1].title == 'Siguiente >>': itemlist.pop() except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist