From 8c046b02e259b511bc8b7db63b6bee6ed91f8f96 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Fri, 26 Jan 2018 17:11:19 -0500 Subject: [PATCH] cinemahd: nuevo canal --- plugin.video.alfa/channels/cinemahd.json | 39 +++++ plugin.video.alfa/channels/cinemahd.py | 173 +++++++++++++++++++++++ 2 files changed, 212 insertions(+) create mode 100644 plugin.video.alfa/channels/cinemahd.json create mode 100644 plugin.video.alfa/channels/cinemahd.py diff --git a/plugin.video.alfa/channels/cinemahd.json b/plugin.video.alfa/channels/cinemahd.json new file mode 100644 index 00000000..10407831 --- /dev/null +++ b/plugin.video.alfa/channels/cinemahd.json @@ -0,0 +1,39 @@ +{ + "id": "cinemahd", + "name": "CinemaHD", + "active": true, + "adult": false, + "language": ["lat"], + "thumbnail": "", + "banner": "", + "version": 1, + "categories": [ + "tvshow" + ], + "settings": [ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": false, + "enabled": false, + "visible": false + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_infantiles", + "type": "bool", + "label": "Incluir en Novedades - Infantiles", + "default": true, + "enabled": true, + "visible": true + } + ] +} \ No newline at end of file diff --git a/plugin.video.alfa/channels/cinemahd.py b/plugin.video.alfa/channels/cinemahd.py new file mode 100644 index 00000000..2a019159 --- /dev/null +++ b/plugin.video.alfa/channels/cinemahd.py @@ -0,0 +1,173 @@ +# -*- 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)) + itemlist.append(item.clone(title="Generos", action="section", section='genre')) + itemlist.append(item.clone(title="Por Calidad", action="section", section='quality')) + itemlist.append(item.clone(title="Por Año", action="section", section='year')) + itemlist.append(item.clone(title="Alfabetico", action="section", section='alpha')) + itemlist.append(item.clone(title="Buscar", action="search", url=host+'?s=')) + + 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 = '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