# -*- coding: utf-8 -*- import re import urlparse import base64 from core import channeltools from core import httptools from core import scrapertools from core import servertools from core.item import Item from platformcode import config, logger __channel__ = "xms" host = 'https://xtheatre.org/' host1 = 'https://www.cam4.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 = [['0xFF6E2802', '0xFFFAA171', '0xFFE9D7940'], ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E'], ['0xFF58D3F7', '0xFF2E64FE', '0xFF0404B4']] if __perfil__ - 1 >= 0: color1, color2, color3 = perfil[__perfil__ - 1] else: color1 = color2 = color3 = "" 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'] thumbnail = 'https://raw.githubusercontent.com/Inter95/tvguia/master/thumbnails/adults/%s.png' def mainlist(item): logger.info() itemlist = [] itemlist.append(Item(channel=__channel__, title="Últimas", url=host + '?filtre=date&cat=0', action="peliculas", viewmode="movie_with_plot", viewcontent='movies', thumbnail=thumbnail % '1')) itemlist.append(Item(channel=__channel__, title="Más Vistas", url=host + '?display=extract&filtre=views', action="peliculas", viewmode="movie_with_plot", viewcontent='movies', thumbnail=thumbnail % '2')) itemlist.append(Item(channel=__channel__, title="Mejor Valoradas", url=host + '?display=extract&filtre=rate', action="peliculas", viewmode="movie_with_plot", viewcontent='movies', thumbnail=thumbnail % '3')) itemlist.append(Item(channel=__channel__, title="Categorías", action="categorias", url=host + 'categories/', viewmode="movie_with_plot", viewcontent='movies', thumbnail=thumbnail % '4')) itemlist.append(Item(channel=__channel__, title="WebCam", action="webcamenu", viewmode="movie_with_plot", viewcontent='movies', thumbnail='https://ae01.alicdn.com/kf/HTB1LDoiaHsrBKNjSZFpq6AXhFXa9/-.jpg')) itemlist.append(Item(channel=__channel__, title="Buscador", action="search", url=host, thumbnail=thumbnail % '5')) return itemlist def webcamenu(item): logger.info() itemlist = [item.clone(title="Trending Cams", action="webcam", text_blod=True, url=host1, viewcontent='movies', viewmode="movie_with_plot"), item.clone(title="Females", action="webcam", text_blod=True, viewcontent='movies', url=host1 + 'female', viewmode="movie_with_plot"), item.clone(title="Males", action="webcam", text_blod=True, viewcontent='movies', url=host1 + 'male', viewmode="movie_with_plot"), item.clone(title="Couples", action="webcam", text_blod=True, viewcontent='movies', url=host1 + 'couple', viewmode="movie_with_plot"), item.clone(title="Trans", action="webcam", text_blod=True, extra="Películas Por año", viewcontent='movies', url=host1 + 'transgender', viewmode="movie_with_plot")] return itemlist def peliculas(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t| |
|#038;", "", data) patron = 'src="([^"]+)" class="attachment-thumb_site.*?' # img patron += 'Next ›
  • ') paginacion = urlparse.urljoin(item.url, paginacion) if paginacion: itemlist.append(Item(channel=__channel__, action="peliculas", thumbnail=thumbnail % 'rarrow', title="\xc2\xbb Siguiente \xc2\xbb", url=paginacion)) return itemlist def webcam(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t| |
    |#038;", "", data) patron = '
    .*?\d+ ", "", data) patron = 'data-lazy-src="([^"]+)".*?' patron += '", "", data) patron = 'data-lazy-src="([^"]+)".*?' # img patron += 'title="([^"]+)" />.*?' # title patron += '\d+") if paginacion: itemlist.append(item.clone(channel=__channel__, action="sub_search", title="\xc2\xbb Siguiente \xc2\xbb", url=paginacion)) return itemlist def play(item): itemlist = [] if "playlist.m3u8" in item.url: url = item.url else: data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|amp;|\s{2}| ", "", data) patron = 'src="([^"]+)" allowfullscreen="true">' matches = scrapertools.find_multiple_matches(data, patron) for url in matches: if "strdef" in url: url = decode_url(url) if "strdef" in url: url = httptools.downloadpage(url).url itemlist.append(item.clone(action="play", title= "%s", url=url)) itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) return itemlist def decode_url(txt): logger.info() itemlist = [] data = httptools.downloadpage(txt).data data = re.sub(r"\n|\r|\t| |
    ", "", data) rep = True while rep == True: b64_data = scrapertools.find_single_match(data, '\(dhYas638H\("([^"]+)"\)') if b64_data: b64_url = base64.b64decode(b64_data + "=") b64_url = base64.b64decode(b64_url + "==") data = b64_url else: rep = False url = scrapertools.find_single_match(b64_url, '