# -*- coding: utf-8 -*- import re 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 # Configuracion del canal __modo_grafico__ = config.get_setting('modo_grafico', "vixto") __perfil__ = config.get_setting('perfil', "vixto") # Fijar perfil de color perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00'], ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E'], ['0xFF58D3F7', '0xFF2E9AFE', '0xFF2E64FE']] color1, color2, color3 = perfil[__perfil__] host = "http://www.vixto.net/" def mainlist(item): logger.info() itemlist = list() itemlist.append(item.clone(title="Películas", text_color=color2, action="", text_bold=True)) itemlist.append(item.clone(action="listado", title=" Estrenos", text_color=color1, url=host, thumbnail="https://raw.githubusercontent.com/master-1970/resources/master/images/genres/" "0/Directors%20Chair.png")) itemlist.append(item.clone(action="listado", title=" Novedades", text_color=color1, url=host, thumbnail="https://raw.githubusercontent.com/master-1970/resources/master/images/genres/" "0/Directors%20Chair.png")) itemlist.append(item.clone(action="listado", title="Series - Novedades", text_color=color2, url=host, thumbnail="https://raw.githubusercontent.com/master-1970/resources/master/images/genres/" "0/TV%20Series.png", text_bold=True)) itemlist.append(item.clone(action="search", title="Buscar...", text_color=color3, url="http://www.vixto.net/buscar?q=")) itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) return itemlist def configuracion(item): from platformcode import platformtools ret = platformtools.show_channel_settings() platformtools.itemlist_refresh() return ret def search(item, texto): logger.info() texto = texto.replace(" ", "+") item.url = item.url + texto try: return busqueda(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 newest(categoria): logger.info() itemlist = list() item = Item() try: if categoria == 'peliculas': item.url = host itemlist = listado(item) if itemlist[-1].action == "listado": itemlist.pop() item.title = "Estrenos" itemlist.extend(listado(item)) # Se captura la excepción, para no interrumpir al canal novedades si un canal falla except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist def listado(item): logger.info() itemlist = list() item.infoLabels['mediatype'] = "movie" if "Estrenos" in item.title: bloque_head = "ESTRENOS CARTELERA" elif "Series" in item.title: bloque_head = "RECIENTE SERIES" item.infoLabels['mediatype'] = "tvshow" else: bloque_head = "RECIENTE PELICULAS" # Descarga la página data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t| |\s{2}", "", data) # Extrae las entradas (carpetas) bloque = scrapertools.find_single_match(data, bloque_head + '\s*(.*?)') patron = '
(.*?)
') item.infoLabels['plot'] = plot if filtro_enlaces != 0: list_enlaces = bloque_enlaces(data, filtro_idioma, dict_idiomas, "Ver Online", item) if list_enlaces: itemlist.append(item.clone(action="", title="Enlaces Online", text_color=color1, text_bold=True)) itemlist.extend(list_enlaces) if filtro_enlaces != 1: list_enlaces = bloque_enlaces(data, filtro_idioma, dict_idiomas, "Descarga Directa", item) if list_enlaces: itemlist.append(item.clone(action="", title="Enlaces Descargas", text_color=color1, text_bold=True)) itemlist.extend(list_enlaces) # Opción "Añadir esta película a la videoteca de XBMC" if itemlist and item.contentType == "movie": contextual = config.is_xbmc() itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="", text_color="magenta", contextual=contextual)) if item.extra != "findvideos": if config.get_videolibrary_support(): itemlist.append(Item(channel=item.channel, title="Añadir enlaces a la videoteca", text_color="green", filtro=True, action="add_pelicula_to_library", fulltitle=item.fulltitle, extra="findvideos", url=item.url, infoLabels=item.infoLabels, contentType=item.contentType, contentTitle=item.contentTitle, show=item.show)) elif not itemlist and item.contentType == "movie": itemlist.append(item.clone(title="Película sin enlaces disponibles", action="", text_color=color3)) return itemlist def bloque_enlaces(data, filtro_idioma, dict_idiomas, tipo, item): logger.info() lista_enlaces = list() bloque = scrapertools.find_single_match(data, tipo + '(.*?)') patron = '