# -*- coding: utf-8 -*- # -*- Channel HDFilmologia -*- # -*- Created for Alfa-addon -*- # -*- By the Alfa Develop Group -*- import re import sys import urllib import urlparse from channels import autoplay from channels import filtertools from core import httptools from core import scrapertools from core import servertools from core.item import Item from core import channeltools from core import tmdb from platformcode import config, logger from channelselector import get_thumb __channel__ = "hdfilmologia" host = "https://hdfilmologia.com/" try: __modo_grafico__ = config.get_setting('modo_grafico', __channel__) __perfil__ = int(config.get_setting('perfil', __channel__)) except: __modo_grafico__ = True __perfil__ = 0 # Fijar perfil de color perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00', '0xFFFE2E2E', '0xFFFFD700'], ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E', '0xFFFE2E2E', '0xFFFFD700'], ['0xFF58D3F7', '0xFF2E9AFE', '0xFF2E64FE', '0xFFFE2E2E', '0xFFFFD700']] if __perfil__ < 3: color1, color2, color3, color4, color5 = perfil[__perfil__] else: color1 = color2 = color3 = color4 = color5 = "" headers = [['User-Agent', 'Mozilla/50.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'], ['Referer', host]] parameters = channeltools.get_channel_parameters(__channel__) fanart_host = parameters['fanart'] thumbnail_host = parameters['thumbnail'] IDIOMAS = {'Latino': 'LAT', 'Castellano': 'CAST'} list_language = IDIOMAS.values() list_quality = [] list_servers = ['rapidvideo', 'streamango', 'openload', 'streamcherry'] def mainlist(item): logger.info() autoplay.init(item.channel, list_servers, list_quality) itemlist = [] itemlist.append(item.clone(title="Últimas Agregadas", action="movies", thumbnail=get_thumb('last', auto=True), text_blod=True, page=0, viewcontent='movies', url=host + 'index.php?do=lastnews', viewmode="movie_with_plot")) itemlist.append(item.clone(title="Estrenos", action="movies", thumbnail=get_thumb('premieres', auto=True), text_blod=True, page=0, viewcontent='movies', url=host + 'estrenos', viewmode="movie_with_plot")) itemlist.append(item.clone(title="Más Vistas", action="movies", thumbnail=get_thumb('more watched', auto=True), text_blod=True, page=0, viewcontent='movies', url=host + 'mas-vistas/', viewmode="movie_with_plot")) itemlist.append(item.clone(title="Películas Por País", action="countriesYears", thumbnail=get_thumb('country', auto=True), text_blod=True, page=0, viewcontent='movies', url=host, viewmode="movie_with_plot")) itemlist.append(item.clone(title="Películas Por Año", action="countriesYears", thumbnail=get_thumb('year', auto=True), text_blod=True, page=0, viewcontent='movies', url=host, viewmode="movie_with_plot")) itemlist.append(item.clone(title="Géneros", action="genres", thumbnail=get_thumb('genres', auto=True), text_blod=True, page=0, viewcontent='movies', url=host, viewmode="movie_with_plot")) itemlist.append(item.clone(title="Buscar", action="search", thumbnail=get_thumb('search', auto=True), text_blod=True, url=host, page=0)) autoplay.show_option(item.channel, itemlist) return itemlist def search(item, texto): logger.info() texto = texto.replace(" ", "+") item.url = urlparse.urljoin(item.url, "?do=search&mode=advanced&subaction=search&story={0}".format(texto)) # 'https://hdfilmologia.com/?do=search&mode=advanced&subaction=search&story=la+sombra' try: return sub_search(item) # 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("{0}".format(line)) return [] def sub_search(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t| |
", "", data) patron = '' # url patron += '
([^.*?' # img, title patron += '
(.*?)
' # plot matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail, scrapedtitle, plot in matches: itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, contentTitle=scrapedtitle, action="findvideos", text_color=color3, page=0, plot=plot, thumbnail=host + scrapedthumbnail)) pagination = scrapertools.find_single_match(data, 'class="pnext">
') if pagination: itemlist.append(Item(channel=__channel__, action="sub_search", title="» Siguiente »", url=pagination)) tmdb.set_infoLabels(itemlist) return itemlist def movies(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\(.*?\)|\s{2}| ", "", data) patron = '
.*?

([^<]+)

.*?' # url, title patron += '
') if next_page: itemlist.append(item.clone(url=next_page, page=0, title="» Siguiente »", text_color=color3)) return itemlist def genres(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) patron = '
  • ([^<]+)' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedtitle in matches: itemlist.append(item.clone(channel=__channel__, action="movies", title=scrapedtitle, url=host + scrapedurl, text_color=color3, viewmode="movie_with_plot")) return itemlist def countriesYears(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\(.*?\)| |
    ", "", data) if item.title == "Películas Por País": patron_todas = 'Por País(.*?)' else: patron_todas = 'Por Año(.*?)' # url, title matches = scrapertools.find_multiple_matches(data, patron) for scrapedurl, scrapedtitle in matches: itemlist.append(item.clone(title=scrapedtitle, url=host + scrapedurl, action="movies")) return itemlist def findvideos(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|amp;|#038;|\(.*?\)|\s{2}| ", "", data) patron = '(\w+)src\d+="([^"]+)"' matches = re.compile(patron, re.DOTALL).findall(data) for lang, url in matches: server = servertools.get_server_from_url(url) if 'dropbox' in url: server = 'dropbox' if '/drive/' in url: data = httptools.downloadpage(url).data url = scrapertools.find_single_match(data, '