diff --git a/mediaserver/platformcode/controllers/html.py b/mediaserver/platformcode/controllers/html.py index 83a6b8b16..f59d029b6 100644 --- a/mediaserver/platformcode/controllers/html.py +++ b/mediaserver/platformcode/controllers/html.py @@ -626,7 +626,7 @@ def show_channel_settings(self, list_controls=None, dict_values=None, caption="" # Obtenemos el canal desde donde se ha echo la llamada y cargamos los settings disponibles para ese canal if not channelpath: channelpath = inspect.currentframe().f_back.f_back.f_code.co_filename - channelname = os.path.basename(channelpath).replace(".py", "") + channelname = os.path.basename(channelpath).split(".")[0] ch_type = os.path.basename(os.path.dirname(channelpath)) # Si no tenemos list_controls, hay que sacarlos del json del canal diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index b8bd93793..c96a0e4dc 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -10,8 +10,8 @@ Navega con Kodi por páginas web. - logo-cumple.png - fanart1.jpg + logo-n.jpg + fanart-xmas.jpg resources/media/themes/ss/1.jpg resources/media/themes/ss/2.jpg resources/media/themes/ss/3.jpg diff --git a/plugin.video.alfa/channels/anitoonstv.py b/plugin.video.alfa/channels/anitoonstv.py index 46f2f1778..ac4e623c6 100644 --- a/plugin.video.alfa/channels/anitoonstv.py +++ b/plugin.video.alfa/channels/anitoonstv.py @@ -32,11 +32,11 @@ def mainlist(item): itemlist = list() - itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host+"/lista-de-anime.php", + itemlist.append(Item(channel=item.channel, action="lista", title="Series", contentTitle="Series", url=host+"/lista-de-anime.php", thumbnail=thumb_series, range=[0,19])) - itemlist.append(Item(channel=item.channel, action="lista", title="Películas", url=host+"/catalogo.php?g=&t=peliculas&o=0", + itemlist.append(Item(channel=item.channel, action="lista", title="Películas", contentTitle="Películas", url=host+"/catalogo.php?g=&t=peliculas&o=0", thumbnail=thumb_series, range=[0,19] )) - itemlist.append(Item(channel=item.channel, action="lista", title="Especiales", url=host+"/catalogo.php?g=&t=especiales&o=0", + itemlist.append(Item(channel=item.channel, action="lista", title="Especiales", contentTitle="Especiales", url=host+"/catalogo.php?g=&t=especiales&o=0", thumbnail=thumb_series, range=[0,19])) itemlist.append(Item(channel=item.channel, action="search", title="Buscar", thumbnail=thumb_series, range=[0,19])) @@ -109,14 +109,14 @@ def lista(item): context2 = autoplay.context context.extend(context2) scrapedurl=host+scrapedurl - if item.title!="Series": + if item.contentTitle!="Series": itemlist.append(item.clone(title=scrapedtitle, contentTitle=show,url=scrapedurl, thumbnail=scrapedthumbnail, action="findvideos", context=context)) else: itemlist.append(item.clone(title=scrapedtitle, contentSerieName=show,url=scrapedurl, plot=scrapedplot, thumbnail=scrapedthumbnail, action="episodios", context=context)) tmdb.set_infoLabels(itemlist, seekTmdb=True) - itemlist.append(Item(channel=item.channel, url=item.url, range=next_page, title='Pagina Siguente >>>', action='lista')) + itemlist.append(Item(channel=item.channel, url=item.url, range=next_page, title='Pagina Siguente >>>', contentTitle=item.title, action='lista')) return itemlist diff --git a/plugin.video.alfa/channels/ciberpeliculashd.py b/plugin.video.alfa/channels/ciberpeliculashd.py index 01184f6ac..6921dd39f 100644 --- a/plugin.video.alfa/channels/ciberpeliculashd.py +++ b/plugin.video.alfa/channels/ciberpeliculashd.py @@ -232,11 +232,11 @@ def findvideos(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data - url = scrapertools.find_single_match(data, 'iframe-.*?src="([^"]+)') - data = httptools.downloadpage(url).data - patron = '\d+
  • ') - if paginacion: itemlist.append(Item(channel=item.channel, action="lista", title=">> Página Siguiente", - url="http://ero-tik.com/" + paginacion)) - + url=host + "/" + paginacion)) return itemlist def listacategoria(item): logger.info() itemlist = [] - # Descarga la página - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}", "", data) - - # Extrae las entradas de la pagina seleccionada patron = '
  • \d+
  • ') - if paginacion: itemlist.append( Item(channel=item.channel, action="listacategoria", title=">> Página Siguiente", url=paginacion)) - return itemlist def play(item): logger.info() itemlist = [] - # Descarga la página - data = scrapertools.cachePage(item.url) - data = scrapertools.unescape(data) - logger.info(data) - from core import servertools - itemlist.extend(servertools.find_video_items(data=data)) - for videoitem in itemlist: - videoitem.thumbnail = item.thumbnail - videoitem.channel = item.channel - videoitem.action = "play" - videoitem.folder = False - videoitem.title = item.title - + data = httptools.downloadpage(item.url).data + item.url = scrapertools.find_single_match(data, 'Playerholder.*?src="([^"]+)"') + if "tubst.net" in item.url: + url = scrapertools.find_single_match(data, 'itemprop="embedURL" content="([^"]+)') + data = httptools.downloadpage(url).data + url = scrapertools.find_single_match(data, ']*?>', '', value) - - -def mainlist(item): - logger.info() - user = config.get_setting("filesmonsteruser") - itemlist = [] - itemlist.append(Item(channel=item.channel, action="unusualporn", title="Canal unusualporn.net", - thumbnail="http://filesmonster.biz/img/logo.png")) - itemlist.append(Item(channel=item.channel, action="files_monster", title="Canal files-monster.org", - thumbnail="http://files-monster.org/template/static/images/logo.jpg")) - itemlist.append(Item(channel=item.channel, action="filesmonster", title="Canal filesmonster.filesdl.net", - thumbnail="http://filesmonster.biz/img/logo.png")) - if user != '': itemlist.append( - Item(channel=item.channel, action="favoritos", title="Favoritos en filesmonster.com del usuario " + user, - folder=True)) - - return itemlist - - -def filesmonster(item): - logger.info() - - itemlist = [] - itemlist.append(Item(channel=item.channel, action="videos", title="Ultimos vídeos", - thumbnail="http://photosex.biz/imager/w_400/h_400/9f869c6cb63e12f61b58ffac2da822c9.jpg", - url="http://filesmonster.filesdl.net")) - itemlist.append(Item(channel=item.channel, action="categorias", title="Categorias", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg", - url="http://filesmonster.filesdl.net")) - itemlist.append(Item(channel=item.channel, action="search", title="Buscar en filesmonster.fliesdl.net", - url="http://filesmonster.filesdl.net/posts/search?q=%s")) - return itemlist - - -def unusualporn(item): - logger.info() - - itemlist = [] - itemlist.append(Item(channel=item.channel, action="videos_2", title="Últimos vídeos", url="http://unusualporn.net/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append(Item(channel=item.channel, action="categorias_2", title="Categorías", url="http://unusualporn.net/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append(Item(channel=item.channel, action="search", title="Buscar en unusualporn", - url="http://unusualporn.net/search/%s")) - return itemlist - - -def files_monster(item): - logger.info() - - itemlist = [] - itemlist.append( - Item(channel=item.channel, action="videos_3", title="Últimos vídeos", url="http://www.files-monster.org/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append( - Item(channel=item.channel, action="categorias_3", title="Categorías", url="http://www.files-monster.org/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append(Item(channel=item.channel, action="search", title="Buscar en files-monster.org", - url="http://files-monster.org/search?search=%s")) - return itemlist - - -def favoritos(item): - user = config.get_setting("filesmonsteruser") - password = config.get_setting("filesmonsterpassword") - logger.info() - name_file = os.path.splitext(os.path.basename(__file__))[0] - fname = os.path.join(config.get_data_path(), "settings_channels", name_file + "_favoritos.txt") - fa = open(fname, 'a+') - fa.close() - f = open(fname, 'r') - lines = f.readlines() - f.close() - itemlist = [] - post2 = "username=" + user + "&password=" + password - login_url = "http://filesmonster.com/api/public/login" - data1 = scrapertools.cache_page(login_url, post=post2) - partes1 = data1.split('"') - estado = partes1[3] - if estado != 'success': itemlist.append(Item(channel=item.channel, - title="No pudo accederse con tus datos de acceso de Filesmonster.com, introdúcelos en con el apartado figuración. Error: " + estado + data1)) - url_favoritos = "http://filesmonster.com/?favorites=1" - data2 = scrapertools.cache_page(url_favoritos, post=post2) - data2 = scrapertools.find_single_match(data2, 'favorites-table(.*?)pager') - patronvideos = '([^<]+).*?del=([^"]+)"' - matches = re.compile(patronvideos, re.DOTALL).findall(data2) - contador = 0 - for url, title, borrar in matches: - contador = contador + 1 - imagen = '' - for linea in lines: - partes2 = linea.split("@") - parte_url = partes2[0] - parte_imagen = partes2[1] - if (parte_url == url): imagen = parte_imagen.rstrip('\n').rstrip('\r') - - if url.find("?fid=") == -1: - itemlist.append( - Item(channel=item.channel, action="play", server="filesmonster", title=title, fulltitle=item.title, - url=url, thumbnail=imagen, folder=False)) - else: - itemlist.append( - Item(channel=item.channel, action="detail", server="filesmonster", title=title, fulltitle=title, - thumbnail=imagen, url=url, folder=True)) - itemlist.append(Item(channel=item.channel, action="quitar_favorito", - title="(-) quitar de mis favoritos en filesmonster.com", thumbnail=imagen, - url="http://filesmonster.com/?favorites=1&del=" + borrar, plot=borrar)) - itemlist.append(Item(channel=item.channel, title="", folder=True)) - if contador == 0 and estado == 'success': - itemlist.append( - Item(channel=item.channel, title="No tienes ningún favorito, navega por las diferentes fuentes y añádelos")) - return itemlist - - -def quitar_favorito(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - itemlist.append(Item(channel=item.channel, action="favoritos", - title="El vídeo ha sido eliminado de tus favoritos, pulsa para volver a tu lista de favoritos")) - - return itemlist - - -def anadir_favorito(item): - logger.info() - name_file = os.path.splitext(os.path.basename(__file__))[0] - fname = os.path.join(config.get_data_path(), "settings_channels", name_file + "_favoritos.txt") - user = config.get_setting("filesmonsteruser") - password = config.get_setting("filesmonsterpassword") - itemlist = [] - post2 = "username=" + user + "&password=" + password - login_url = "http://filesmonster.com/api/public/login" - data1 = scrapertools.cache_page(login_url, post=post2) - if item.plot == 'el archivo': - id1 = item.url.split('?id=') - id = id1[1] - que = "file" - if item.plot == 'la carpeta': - id1 = item.url.split('?fid=') - id = id1[1] - que = "folder" - url = "http://filesmonster.com/ajax/add_to_favorites" - post3 = "username=" + user + "&password=" + password + "&id=" + id + "&obj_type=" + que - data2 = scrapertools.cache_page(url, post=post3) - if data2 == 'Already in Your favorites': itemlist.append(Item(channel=item.channel, action="favoritos", - title="" + item.plot + " ya estaba en tu lista de favoritos (" + user + ") en Filesmonster")) - if data2 != 'You are not logged in' and data2 != 'Already in Your favorites': - itemlist.append(Item(channel=item.channel, action="favoritos", - title="Se ha añadido correctamente " + item.plot + " a tu lista de favoritos (" + user + ") en Filesmonster", - plot=data1 + data2)) - f = open(fname, "a+") - if (item.plot == 'la carpeta'): - ruta = "http://filesmonster.com/folders.php?" - if (item.plot == 'el archivo'): - ruta = "http://filesmonster.com/download.php" - laruta = ruta + item.url - laruta = laruta.replace("http://filesmonster.com/folders.php?http://filesmonster.com/folders.php?", - "http://filesmonster.com/folders.php?") - laruta = laruta.replace("http://filesmonster.com/download.php?http://filesmonster.com/download.php?", - "http://filesmonster.com/download.php?") - f.write(laruta + '@' + item.thumbnail + '\n') - f.close() - if data2 == 'You are not logged in': itemlist.append(Item(channel=item.channel, action="favoritos", - title="No ha sido posible añadir " + item.plot + " a tu lista de favoritos (" + user + " no logueado en Filesmonster)", )) - - return itemlist - - -def categorias(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - data = scrapertools.find_single_match(data, - 'Categories (.*?)RSS ') - - patronvideos = '([^<]+)' - - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title in matches: - itemlist.append(Item(channel=item.channel, action="videos", title=title, url=url)) - - return itemlist - - -def categorias_2(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - - patronvideos = '
  • ([^<]+)
  • ' - - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title in matches: - itemlist.append(Item(channel=item.channel, action="videos_2", title=title, url=url)) - - return itemlist - - -def categorias_3(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - - patronvideos = '
  • ([^<]+)
  • ' - - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title in matches: - itemlist.append(Item(channel=item.channel, action="videos_3", title=title, url=url)) - - return itemlist - - -def search(item, texto): - logger.info("texto:" + texto) - original = item.url - item.url = item.url % texto - try: - if original == 'http://filesmonster.filesdl.net/posts/search?q=%s': - return videos(item) - if original == 'http://unusualporn.net/search/%s': - return videos_2(item) - if original == 'http://files-monster.org/search?search=%s': - return videos_3(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("%s" % line) - return [] - - -def videos(item): - logger.info() - itemlist = [] - - url = item.url - while url and len(itemlist) < 25: - data = scrapertools.downloadpage(url) - patronvideos = '
    .*?([^<]+).*?.*?
    .*?Next').replace("&", "&") - - # Enlace para la siguiente pagina - if url: - itemlist.append(Item(channel=item.channel, action="videos", title=">> Página Siguiente", url=url)) - - return itemlist - - -def videos_2(item): - logger.info() - itemlist = [] - url_limpia = item.url.split("?")[0] - url = item.url - while url and len(itemlist) < 25: - data = scrapertools.downloadpage(url) - patronvideos = 'data-link="([^"]+)" data-title="([^"]+)" src="([^"]+)" border="0" />'; - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title, thumbnail in matches: - itemlist.append(Item(channel=item.channel, action="detail_2", title=title, fulltitle=title, url=url, - thumbnail=thumbnail)) - - url = scrapertools.find_single_match(data, '').replace("&", "&") - - # Enlace para la siguiente pagina - if url: - itemlist.append(Item(channel=item.channel, action="videos_2", title=">> Página Siguiente", url=url)) - - return itemlist - - -def videos_3(item): - logger.info() - itemlist = [] - - url = item.url - url_limpia = item.url.split("?")[0] - while url and len(itemlist) < 25: - data = scrapertools.downloadpage(url) - patronvideos = '.*?' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, thumbnail, title in matches: - itemlist.append(Item(channel=item.channel, action="detail_2", title=title, fulltitle=title, url=url, - thumbnail=thumbnail)) - - url = scrapertools.find_single_match(data, - '').replace( - "&", "&") - - # Enlace para la siguiente pagina - if url: - itemlist.append( - Item(channel=item.channel, action="videos_3", title=">> Página Siguiente", url=url_limpia + url)) - - return itemlist - - -def detail(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - patronvideos = '["|\'](http\://filesmonster.com/download.php\?[^"\']+)["|\']' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url in matches: - title = "Archivo %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append( - Item(channel=item.channel, action="play", server="filesmonster", title=title, fulltitle=item.fulltitle, - url=url, thumbnail=item.thumbnail, folder=False)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir el vídeo a tus favoritos en filesmonster", url=url, - thumbnail=item.thumbnail, plot="el archivo", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - patronvideos = '["|\'](http\://filesmonster.com/folders.php\?[^"\']+)["|\']' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - for url in matches: - if not url == item.url: - logger.info(url) - logger.info(item.url) - title = "Carpeta %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append(Item(channel=item.channel, action="detail", title=title, fulltitle=item.fulltitle, url=url, - thumbnail=item.thumbnail, folder=True)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir la carpeta a tus favoritos en filesmonster", url=url, - thumbnail=item.thumbnail, plot="la carpeta", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - return itemlist - - -def detail_2(item): - logger.info() - itemlist = [] - - # descarga la pagina - data = scrapertools.downloadpageGzip(item.url) - data = data.split('Download from Filesmonster') - data = data[0] - # descubre la url - patronvideos = 'href="http://filesmonster.com/download.php(.*?)".(.*?)' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - for match2 in matches: - url = "http://filesmonster.com/download.php" + match2[0] - title = "Archivo %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append( - Item(channel=item.channel, action="play", server="filesmonster", title=title, fulltitle=item.fulltitle, - url=url, thumbnail=item.thumbnail, folder=False)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir el vídeo a tus favoritos en filesmonster", url=match2[0], - thumbnail=item.thumbnail, plot="el archivo", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - patronvideos = '["|\'](http\://filesmonster.com/folders.php\?[^"\']+)["|\']' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - for url in matches: - if not url == item.url: - logger.info(url) - logger.info(item.url) - title = "Carpeta %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append(Item(channel=item.channel, action="detail", title=title, fulltitle=item.fulltitle, url=url, - thumbnail=item.thumbnail, folder=True)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir la carpeta a tus favoritos en filesmonster", url=url, - thumbnail=item.thumbnail, plot="la carpeta", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - return itemlist diff --git a/plugin.video.alfa/channels/freecambay.json b/plugin.video.alfa/channels/freecambay.json deleted file mode 100755 index b27ede333..000000000 --- a/plugin.video.alfa/channels/freecambay.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "freecambay", - "name": "FreeCamBay", - "language": ["*"], - "active": true, - "adult": true, - "thumbnail": "http://i.imgur.com/wuzhOCt.png?1", - "categories": [ - "adult" - ], - "settings": [ - { - "id": "menu_info", - "type": "bool", - "label": "Mostrar menú antes de reproducir con imágenes", - "default": true, - "enabled": true, - "visible": true - } - ] -} \ No newline at end of file diff --git a/plugin.video.alfa/channels/freecambay.py b/plugin.video.alfa/channels/freecambay.py deleted file mode 100755 index f3cde98a7..000000000 --- a/plugin.video.alfa/channels/freecambay.py +++ /dev/null @@ -1,261 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import urlparse - -from core import httptools -from core import scrapertools -from core.item import Item -from platformcode import config, logger - -host = "http://www.freecambay.com" - - -def mainlist(item): - logger.info() - itemlist = [] - - itemlist.append(item.clone(action="lista", title="Nuevos Vídeos", url=host + "/latest-updates/")) - itemlist.append(item.clone(action="lista", title="Mejor Valorados", url=host + "/top-rated/")) - itemlist.append(item.clone(action="lista", title="Más Vistos", url=host + "/most-popular/")) - itemlist.append(item.clone(action="categorias", title="Categorías", url=host + "/categories/")) - itemlist.append(item.clone(action="categorias", title="Modelos", - url=host + "/models/?mode=async&function=get_block&block_id=list_models_models" \ - "_list&sort_by=total_videos")) - itemlist.append(item.clone(action="playlists", title="Listas", url=host + "/playlists/")) - itemlist.append(item.clone(action="tags", title="Tags", url=host + "/tags/")) - itemlist.append(item.clone(title="Buscar...", action="search")) - 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() - item.url = "%s/search/%s/" % (host, texto.replace("+", "-")) - item.extra = texto - try: - return lista(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("%s" % line) - return [] - - -def lista(item): - logger.info() - itemlist = [] - - # Descarga la pagina - data = httptools.downloadpage(item.url).data - - action = "play" - if config.get_setting("menu_info", "freecambay"): - action = "menu_info" - - # Extrae las entradas - patron = '
    ([^<]+)<' - matches = scrapertools.find_multiple_matches(data, patron) - for scrapedurl, scrapedtitle, scrapedthumbnail, quality, duration in matches: - if duration: - scrapedtitle = "%s - %s" % (duration, scrapedtitle) - if '>HD<' in quality: - scrapedtitle += " [COLOR red][HD][/COLOR]" - - itemlist.append(item.clone(action=action, title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, - fanart=scrapedthumbnail)) - - # Extrae la marca de siguiente página - if item.extra: - next_page = scrapertools.find_single_match(data, '
    ') - matches = scrapertools.find_multiple_matches(bloque, '\s*(.*?)') - for title in matches: - title = title.strip() - if title not in letras: - letras.append(title) - itemlist.append(Item(channel=item.channel, action="tags", url=item.url, title=title, extra=title)) - else: - if not item.length: - item.length = 0 - - bloque = scrapertools.find_single_match(data, - '>%s(.*?)(?:(?!%s)(?!#)[A-Z#]{1}|