# -*- coding: utf-8 -*- import re from core import httptools from core import scrapertools from core import servertools from core.item import Item from platformcode import config, logger # Configuracion del canal __modo_grafico__ = config.get_setting('modo_grafico', 'verseriesynovelas') __perfil__ = config.get_setting('perfil', 'verseriesynovelas') # Fijar perfil de color perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00'], ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E'], ['0xFF58D3F7', '0xFF2E9AFE', '0xFF2E64FE']] color1, color2, color3 = perfil[__perfil__] def login(check_login=True): logger.info() try: user = config.get_setting("verseriesynovelasuser", "verseriesynovelas") password = config.get_setting("verseriesynovelaspassword", "verseriesynovelas") if user == "" and password == "": return False, "Para ver los enlaces de este canal es necesario registrarse en www.verseriesynovelas.tv" elif user == "" or password == "": return False, "Usuario o contraseña en blanco. Revisa tus credenciales" if check_login: data = httptools.downloadpage("http://www.verseriesynovelas.tv/").data if user in data: return True, "" post = "log=%s&pwd=%s&redirect_to=http://www.verseriesynovelas.tv/wp-admin/&action=login" % (user, password) data = httptools.downloadpage("http://www.verseriesynovelas.tv/iniciar-sesion", post=post).data if "La contraseña que has introducido" in data: logger.error("Error en el login") return False, "Contraseña errónea. Comprueba tus credenciales" elif "Nombre de usuario no válido" in data: logger.error("Error en el login") return False, "Nombre de usuario no válido. Comprueba tus credenciales" else: logger.info("Login correcto") return True, "" except: import traceback logger.error(traceback.format_exc()) return False, "Error durante el login. Comprueba tus credenciales" def mainlist(item): logger.info() itemlist = [] item.text_color = color1 logueado, error_message = login() if not logueado: itemlist.append(item.clone(title=error_message, action="", text_color="darkorange")) else: itemlist.append( item.clone(title="Nuevos Capítulos", action="novedades", fanart="http://i.imgur.com/9loVksV.png", url="http://www.verseriesynovelas.tv/archivos/nuevo")) itemlist.append(item.clone(title="Últimas Series", action="ultimas", fanart="http://i.imgur.com/9loVksV.png", url="http://www.verseriesynovelas.tv/")) itemlist.append( item.clone(title="Lista de Series A-Z", action="indices", fanart="http://i.imgur.com/9loVksV.png", url="http://www.verseriesynovelas.tv/")) itemlist.append(item.clone(title="Categorías", action="indices", fanart="http://i.imgur.com/9loVksV.png", url="http://www.verseriesynovelas.tv/")) itemlist.append(item.clone(title="", action="")) itemlist.append(item.clone(title="Buscar...", action="search", fanart="http://i.imgur.com/9loVksV.png")) itemlist.append(item.clone(title="Configurar canal...", action="configuracion", 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 indices(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data data = data.replace("\n", "").replace("\t", "") if "Categorías" in item.title: bloque = scrapertools.find_single_match(data, 'Seleccion tu categoria(.*?)') matches = scrapertools.find_multiple_matches(bloque, '(.*?)') for url, title in matches: itemlist.append(item.clone(action="ultimas", title=title, url=url)) else: bloque = scrapertools.find_single_match(data, '') matches = scrapertools.find_multiple_matches(bloque, '(.*?)') for url, title in matches: itemlist.append(item.clone(action="ultimas", title=title, url=url)) return itemlist def search(item, texto): logger.info() item.url = "http://www.verseriesynovelas.tv/archivos/h1/?s=" + texto if "Buscar..." in item.title: return ultimas(item, texto) else: try: return busqueda(item, texto) except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] def busqueda(item, texto=""): logger.info() itemlist = [] item.text_color = color2 data = httptools.downloadpage(item.url).data data = data.replace("\n", "").replace("\t", "") bloque = scrapertools.find_single_match(data, '