# -*- coding: utf-8 -*- # -*- Channel PelisPlay -*- # -*- 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__ = "pelisplay" host = "https://www.pelisplay.tv/" 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', 'Subtitulado': 'VOSE'} list_language = IDIOMAS.values() list_quality = [] list_servers = ['rapidvideo', 'streamango', 'fastplay', 'openload'] def mainlist(item): logger.info() autoplay.init(item.channel, list_servers, list_quality) itemlist = [item.clone(title="Peliculas", action="menumovies", text_blod=True, viewcontent='movie', viewmode="movie_with_plot", thumbnail=get_thumb("channels_movie.png")), item.clone(title="Series", action="menuseries", text_blod=True, extra='serie', mediatype="tvshow", viewcontent='tvshow', viewmode="tvshow_with_plot", thumbnail=get_thumb("channels_tvshow.png")), item.clone(title="Netflix", action="flixmenu", text_blod=True, extra='serie', mediatype="tvshow", viewcontent='tvshows', viewmode="movie_with_plot", fanart='https://i.postimg.cc/jjN85j8s/netflix-logo.png', thumbnail='https://i.postimg.cc/Pxs9zYjz/image.png'), item.clone(title="Buscar", action="search", text_blod=True, extra='buscar', thumbnail=get_thumb('search.png'), url=host + 'buscar')] autoplay.show_option(item.channel, itemlist) return itemlist def menumovies(item): logger.info() itemlist = [item.clone(title="Estrenos", action="peliculas", text_blod=True, viewcontent='movie', url=host + 'peliculas/estrenos', viewmode="movie_with_plot"), item.clone(title="Más Populares", action="peliculas", text_blod=True, viewcontent='movie', url=host + 'peliculas?filtro=visitas', viewmode="movie_with_plot"), item.clone(title="Recíen Agregadas", action="peliculas", text_blod=True, viewcontent='movie', url=host + 'peliculas?filtro=fecha_creacion', viewmode="movie_with_plot"), item.clone(title="Géneros", action="p_portipo", text_blod=True, extra='movie', viewcontent='movie', url=host + 'peliculas', viewmode="movie_with_plot"), item.clone(title="Buscar", action="search", text_blod=True, extra='buscarp', thumbnail=get_thumb('search.png'), url=host + 'peliculas')] return itemlist def menuseries(item): logger.info() itemlist = [item.clone(title="Novedades", action="series", text_blod=True, extra='serie', mediatype="tvshow", viewcontent='tvshow', url=host + 'series', viewmode="tvshow_with_plot"), item.clone(title="Más Vistas", action="series", text_blod=True, extra='serie', mediatype="tvshow", viewcontent='tvshow', url=host + 'series?filtro=visitas', viewmode="tvshow_with_plot"), item.clone(title="Recíen Agregadas", action="series", text_blod=True, extra='serie', mediatype="tvshow", viewcontent='tvshow', url=host + 'series?filtro=fecha_actualizacion', viewmode="tvshow_with_plot"), item.clone(title="Géneros", action="p_portipo", text_blod=True, extra='serie', viewcontent='movie', url=host + 'series', viewmode="movie_with_plot"), item.clone(title="Buscar", action="search", text_blod=True, extra='buscars', thumbnail=get_thumb('search.png'), url=host + 'series')] return itemlist def flixmenu(item): logger.info() itemlist = [item.clone(title="Películas", action="flixmovies", text_blod=True, extra='movie', mediatype="movie", viewcontent='movie', viewmode="tvshow_with_plot"), item.clone(title="Series", action="flixtvshow", text_blod=True, extra='serie', mediatype="tvshow", viewcontent='tvshow', viewmode="tvshow_with_plot"), item.clone(title="Buscar", action="search", text_blod=True, thumbnail=get_thumb('search.png'), url=host + 'buscar')] return itemlist def flixmovies(item): logger.info() itemlist = [item.clone(title="Novedades", action="peliculas", text_blod=True, url=host + 'peliculas/netflix?filtro=fecha_actualizacion', viewcontent='movie', viewmode="movie_with_plot"), item.clone(title="Más Vistas", action="peliculas", text_blod=True, viewcontent='movie', url=host + 'peliculas/netflix?filtro=visitas', viewmode="movie_with_plot"), item.clone(title="Recíen Agregadas", action="peliculas", text_blod=True, viewcontent='movie', url=host + 'peliculas/netflix?filtro=fecha_creacion', viewmode="movie_with_plot"), item.clone(title="Buscar", action="search", text_blod=True, extra="buscarp", thumbnail=get_thumb('search.png'), url=host + 'peliculas/netflix')] return itemlist def flixtvshow(item): logger.info() itemlist = [item.clone(title="Novedades", action="series", text_blod=True, url=host + 'series/netflix?filtro=fecha_actualizacion', viewcontent='tvshow', viewmode="movie_with_plot"), item.clone(title="Más Vistas", action="series", text_blod=True, viewcontent='tvshow', url=host + 'series/netflix?filtro=visitas', viewmode="movie_with_plot"), item.clone(title="Recíen Agregadas", action="series", text_blod=True, viewcontent='tvshow', url=host + 'series/netflix?filtro=fecha_creacion', viewmode="movie_with_plot"), item.clone(title="Buscar", action="search", text_blod=True, extra="buscars", thumbnail=get_thumb('search.png'), url=host + 'series/netflix')] return itemlist def p_portipo(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}| |
", "", data) action = '' patron = '
  • .*?' # url patron += '
    ([^<]+)
    ' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail, scrapedtitle in matches: if item.extra == 'movie': action = 'peliculas' elif item.extra == 'serie': action = 'series' itemlist.append(item.clone(action=action, title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail )) itemlist.sort(key=lambda it: it.title) return itemlist def peliculas(item): logger.info() itemlist = [] # action = '' # contentType = '' data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}| |
    ", "", data) patron = '
    ", "", data) patron = 'data-player="([^"]+)"[^>]+>([^<]+).*?' patron += '([^<]+)([^<]+)' matches = re.compile(patron, re.DOTALL).findall(data) for data_player, servername, quality, lang in matches: post_link = '%sentradas/procesar_player' % host token = scrapertools.find_single_match(data, 'data-token="([^"]+)">') post = {'data': data_player, 'tipo': 'videohost', '_token': token} post = urllib.urlencode(post) new_data = httptools.downloadpage(post_link, post=post).data json_data = jsontools.load(new_data) url = json_data['data'] if 'pelisplay.tv/embed/' in url: new_data = httptools.downloadpage(url).data url = scrapertools.find_single_match( new_data, '"file":"([^"]+)",').replace('\\', '') elif 'fondo_requerido' in url: link = scrapertools.find_single_match(url, '=(.*?)&fondo_requerido').partition('&')[0] post_link = '%sprivate/plugins/gkpluginsphp.php' % host post = {'link': link} post = urllib.urlencode(post) new_data2 = httptools.downloadpage(post_link, post=post).data url = scrapertools.find_single_match(new_data2, '"link":"([^"]+)"').replace('\\', '') lang = lang.lower().strip() idioma = {'latino': '[COLOR cornflowerblue](LAT)[/COLOR]', 'castellano': '[COLOR green](CAST)[/COLOR]', 'subtitulado': '[COLOR red](VOSE)[/COLOR]'} if lang in idioma: lang = idioma[lang] title = "Ver en: [COLOR yellowgreen](%s)[/COLOR] [COLOR yellow](%s)[/COLOR] %s" % ( servername.title(), quality, lang) itemlist.append(item.clone(channel=__channel__, title=title, action='play', language=lang, quality=quality, url=url)) itemlist = servertools.get_servers_itemlist(itemlist) itemlist.sort(key=lambda it: it.language, reverse=False) # Requerido para FilterTools itemlist = filtertools.get_links(itemlist, item, list_language) # Requerido para AutoPlay autoplay.start(itemlist, item) if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'serie': itemlist.append(Item(channel=__channel__, url=item.url, action="add_pelicula_to_library", extra="findvideos", title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', thumbnail=get_thumb("videolibrary_movie.png"), contentTitle=item.contentTitle)) return itemlist