# -*- 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 += '
([^<]+)
' # plot matches = re.compile(patron, re.DOTALL).findall(data) for scrapedthumbnail, scrapedtitle, scrapedurl, plot in matches: itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, plot=plot, fanart=scrapedthumbnail, action="play", thumbnail=scrapedthumbnail)) paginacion = scrapertools.find_single_match( data, "\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| |