diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index ae32cdbb..7ce576a7 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -1,5 +1,5 @@  - + @@ -19,19 +19,12 @@ [B]Estos son los cambios para esta versión:[/B] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR] - » maxipelis » peliculasaudiolatino - » peliculasmx » peliscity - » repelis » seriesmeme - » seriesyonkis » verpeliculasnuevas - » zonatorrent » kabagi/diskokosmico - » tiotorrent » allcalidad - » areadocumental » cinetux - » hdfull » newpct1 - » ohpelis » animeyt - » flashx » kbagi - » gamovideo » vidup + » animeyt » pelismundo + » asialiveaction » animeflv_me + » newpct1 » wopelis + » gvideo » powvideo ¤ arreglos internos - [COLOR green]Gracias a [COLOR yellow]RIgodonius[/COLOR] por su colaboración en esta versión[/COLOR] + [COLOR green]Gracias a [COLOR yellow]Danielr460[/COLOR] y [COLOR yellow]robalo[/COLOR] por su colaboración en esta versión[/COLOR] Navega con Kodi por páginas web para ver sus videos de manera fácil. Browse web pages using Kodi diff --git a/plugin.video.alfa/channels/animeflv_me.py b/plugin.video.alfa/channels/animeflv_me.py index b73b174f..52ba1639 100755 --- a/plugin.video.alfa/channels/animeflv_me.py +++ b/plugin.video.alfa/channels/animeflv_me.py @@ -58,10 +58,9 @@ def get_cookie_value(): return cookies_value -header_string = "|User-Agent=Mozilla/5.0&Referer=http://animeflv.me&Cookie=" + \ +header_string = "|User-Agent=Mozilla/5.0&Referer=http://animeflv.co&Cookie=" + \ get_cookie_value() - def __find_next_page(html): """ Busca el enlace a la pagina siguiente @@ -71,12 +70,6 @@ def __find_next_page(html): def __extract_info_from_serie(html): - """ - Extrae la información de una serie o pelicula desde su página - Util para cuando una busqueda devuelve un solo resultado y animeflv.me - redirecciona a la página de este. - """ - title = scrapertools.find_single_match(html, REGEX_TITLE) title = clean_title(title) url = scrapertools.find_single_match(html, REGEX_URL) @@ -156,7 +149,7 @@ def mainlist(item): def letras(item): logger.info() - base_url = 'http://animeflv.me/ListadeAnime?c=' + base_url = 'http://animeflv.co/ListadeAnime?c=' itemlist = list() itemlist.append(Item(channel=item.channel, action="series", title="#", url=base_url + "#")) @@ -305,18 +298,20 @@ def episodios(item): def findvideos(item): logger.info() - itemlist = [] - + encontrados = [] page_html = get_url_contents(item.url) regex_api = r'http://player\.animeflv\.co/[^\"]+' iframe_url = scrapertools.find_single_match(page_html, regex_api) iframe_html = get_url_contents(iframe_url) itemlist.extend(servertools.find_video_items(data=iframe_html)) - + qualities = ["360", "480", "720", "1080"] for videoitem in itemlist: + if videoitem.url in encontrados: + continue + encontrados.append(videoitem.url) videoitem.fulltitle = item.fulltitle videoitem.title = "%s en calidad [%s]" % (videoitem.server, qualities[1]) videoitem.channel = item.channel @@ -326,10 +321,11 @@ def findvideos(item): videos_html = scrapertools.find_single_match(iframe_html, regex_video_list) videos = re.findall('"([^"]+)"', videos_html, re.DOTALL) - for quality_id, video_url in enumerate(videos): + if video_url in encontrados: + continue + encontrados.append(video_url) itemlist.append(Item(channel=item.channel, action="play", url=video_url, show=re.escape(item.show), title="Ver en calidad [%s]" % (qualities[quality_id]), plot=item.plot, fulltitle=item.title)) - return __sort_by_quality(itemlist) diff --git a/plugin.video.alfa/channels/animeyt.py b/plugin.video.alfa/channels/animeyt.py index bae04053..449ccd9d 100644 --- a/plugin.video.alfa/channels/animeyt.py +++ b/plugin.video.alfa/channels/animeyt.py @@ -3,7 +3,7 @@ import re import urlparse - +from channels import renumbertools from core import httptools from core import scrapertools from core import servertools @@ -28,6 +28,7 @@ def mainlist(item): itemlist.append(Item(channel=item.channel, title="Búsqueda", action="search", url=urlparse.urljoin(HOST, "busqueda?terminos="))) + itemlist = renumbertools.show_option(item.channel, itemlist) return itemlist @@ -113,7 +114,7 @@ def recientes(item): matches = scrapertools.find_multiple_matches(data_recientes, patron) for url, thumbnail, plot, title, cat in matches: - itemlist.append(item.clone(title=title, url=url, action="episodios", show=title, thumbnail=thumbnail, plot=plot, cat=cat)) + itemlist.append(item.clone(title=title, url=url, action="episodios", show=title, thumbnail=thumbnail, plot=plot, cat=cat, context=renumbertools.context(item))) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb = True) @@ -137,8 +138,11 @@ def episodios(item): matches = scrapertools.find_multiple_matches(data, patron) for url, scrapedtitle, episode in matches: - - title = "1x" + episode + " " + "Episodio" + + season = 1 + episode = int(episode) + season, episode = renumbertools.numbered_for_tratk(item.channel, scrapedtitle, season, episode) + title = "%sx%s %s" % (season, str(episode).zfill(2), scrapedtitle) itemlist.append(item.clone(title=title, url=url, action='findvideos')) if config.get_videolibrary_support: diff --git a/plugin.video.alfa/channels/asialiveaction.json b/plugin.video.alfa/channels/asialiveaction.json new file mode 100644 index 00000000..ca1692ff --- /dev/null +++ b/plugin.video.alfa/channels/asialiveaction.json @@ -0,0 +1,20 @@ +{ + "id": "asialiveaction", + "name": "Asialiveaction.", + "active": true, + "adult": false, + "language": ["cast", "lat"], + "thumbnail": "asialiveaction.png", + "banner": "https://imgur.com/B1IOAu4.png", + "version": 1, + "changes": [ + { + "date": "08/10/2017", + "description": "Primera versión del canal" + } + ], + "categories": [ + "movie", + "serie" + ] +} diff --git a/plugin.video.alfa/channels/asialiveaction.py b/plugin.video.alfa/channels/asialiveaction.py new file mode 100644 index 00000000..1277d2fb --- /dev/null +++ b/plugin.video.alfa/channels/asialiveaction.py @@ -0,0 +1,188 @@ +# -*- coding: UTF-8 -*- + +import re +import urlparse + +from core import httptools +from core import scrapertools +from core import servertools +from core.item import Item +from platformcode import config, logger + +host = "http://www.asialiveaction.com" + + +def mainlist(item): + logger.info() + + itemlist = list() + + itemlist.append(Item(channel=item.channel, action="estrenos", title="Estrenos", url=host)) + itemlist.append(Item(channel=item.channel, action="lista", title="Peliculas", + url=urlparse.urljoin(host, "p/peliculas.html"))) + itemlist.append(Item(channel=item.channel, action="lista", title="Series", + url=urlparse.urljoin(host, "p/series.html"))) + itemlist.append(Item(channel=item.channel, action="category", title="Orden Alfabético", url=host)) + itemlist.append(Item(channel=item.channel, action="category", title="Géneros", url=host)) + itemlist.append(Item(channel=item.channel, action="category", title="Año de Estreno", url=host)) + #itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url=urlparse.urljoin(host, "/search?q="))) + return itemlist + + +def category(item): + logger.info() + itemlist = list() + data = httptools.downloadpage(host).data + data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) + patron_generos = "

"+item.title+"<\/h2>
' %item.filtro + bloque = scrapertools.find_single_match(data, patron) + patron = '(?s)href="([^"]+)".*?' + patron += '([^<]+)' + matches = scrapertools.find_multiple_matches(bloque, patron) + for url, title in matches: + if "eroti33cas" in title and config.get_setting("adult_mode") == 0: + continue + itemlist.append(item.clone(action = "peliculas", + title = title.title(), + url = url + )) + return itemlist + +def peliculas(item): + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + patron = 'movie-list" class="clearfix.*?pagination movie-pagination clearfix' + bloque = scrapertools.find_single_match(data, patron) + patron = '(?s)href="([^"]+)".*?' + patron += 'title="([^"]+)".*?' + patron += 'class="mq([^"]+)".*?' + patron += 'src="([^"]+)".*?' + patron += '_audio(.*?)class.*?' + patron += 'label_year">([^<]+)<' + match = scrapertools.find_multiple_matches(bloque, patron) + for scrapedurl, scrapedtitle, scrapedquality, scrapedthumbnail, scrapedlanguages, year in match: + year = scrapertools.find_single_match(year, '[0-9]{4}') + st = scrapertools.find_single_match(scrapedtitle, '(?i)Online.*') + scrapedtitle = scrapedtitle.replace(st, "").strip() + st = scrapertools.find_single_match(scrapedtitle, '\(.*?\)') + scrapedtitle = scrapedtitle.replace(st, "") + title = scrapedtitle + if year: + title += " (" + year + ")" + if scrapedquality: + title += " (" + scrapedquality + ")" + patronidiomas = '' + idiomas_disponibles = [] + matchidioma = scrapertools.find_single_match(scrapedlanguages, 'Castellano') + if matchidioma: + idiomas_disponibles.append("ESP") + matchidioma = scrapertools.find_single_match(scrapedlanguages, 'Subtitulado') + if matchidioma: + idiomas_disponibles.append("VOSE") + matchidioma = scrapertools.find_single_match(scrapedlanguages, 'Latino') + if matchidioma: + idiomas_disponibles.append("LAT") + idiomas_disponibles1 = "" + if idiomas_disponibles: + idiomas_disponibles1 = "[" + "/".join(idiomas_disponibles) + "]" + title += " %s" %idiomas_disponibles1 + itemlist.append(Item(channel = item.channel, + action = "findvideos", + title = title, + contentTitle = scrapedtitle, + thumbnail = scrapedthumbnail, + quality = scrapedquality, + language = idiomas_disponibles, + infoLabels={"year": year}, + url = scrapedurl + )) + tmdb.set_infoLabels(itemlist) + url_pagina = scrapertools.find_single_match(data, 'next" href="([^"]+)') + if url_pagina != "": + pagina = "Pagina: " + scrapertools.find_single_match(url_pagina, "page/([0-9]+)") + itemlist.append(Item(channel = item.channel, action = "peliculas", title = pagina, url = url_pagina)) + return itemlist + + +def findvideos(item): + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + patron = 'SegundaParte.*?ventana-flotante' + bloque = scrapertools.find_single_match(data, patron) + patron = 'hand" rel="([^"]+)".*?' + patron += 'optxt">([^<]+).*?' + matches = scrapertools.find_multiple_matches(bloque, patron) + for scrapedurl, scrapedlanguage in matches: + if "youtube" in scrapedurl: + scrapedurl += "&" + title = "Ver en: %s " + "(" + scrapedlanguage + ")" + itemlist.append(item.clone(action = "play", + title = title, + language = item.language, + quality = item.quality, + url = scrapedurl + )) + tmdb.set_infoLabels(itemlist) + itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) + if itemlist: + itemlist.append(Item(channel = item.channel)) + itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="", + text_color="magenta")) + # Opción "Añadir esta película a la biblioteca de KODI" + if item.extra != "library": + if config.get_videolibrary_support(): + itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", + action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, + fulltitle = item.contentTitle + )) + return itemlist + + +def play(item): + item.thumbnail = item.contentThumbnail + return [item] diff --git a/plugin.video.alfa/channels/seriesblanco.py b/plugin.video.alfa/channels/seriesblanco.py index 3929998b..7b7ea62a 100644 --- a/plugin.video.alfa/channels/seriesblanco.py +++ b/plugin.video.alfa/channels/seriesblanco.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- import re import urlparse diff --git a/plugin.video.alfa/channels/wopelis.py b/plugin.video.alfa/channels/wopelis.py index 3f3f8785..99fd1111 100755 --- a/plugin.video.alfa/channels/wopelis.py +++ b/plugin.video.alfa/channels/wopelis.py @@ -255,10 +255,10 @@ def findvideos(item): dic_servers = {'ntfof': 'Servidor Desconocido', 'stramango': 'streamango', 'flasht': 'flashx'} data1 = downloadpage(item.url) - patron = 'onclick="redir\(([^\)]+).*?' + patron = '(?s)onclick="redir\(([^\)]+).*?' patron += '" in data1: list_showlinks = [('Online:', 'Online:

(.*?)Descarga:'), diff --git a/plugin.video.alfa/resources/media/channels/banner/asialiveaction.png b/plugin.video.alfa/resources/media/channels/banner/asialiveaction.png new file mode 100644 index 00000000..cbc1e375 Binary files /dev/null and b/plugin.video.alfa/resources/media/channels/banner/asialiveaction.png differ diff --git a/plugin.video.alfa/resources/media/channels/thumb/asialiveaction.png b/plugin.video.alfa/resources/media/channels/thumb/asialiveaction.png new file mode 100644 index 00000000..75a1e52f Binary files /dev/null and b/plugin.video.alfa/resources/media/channels/thumb/asialiveaction.png differ diff --git a/plugin.video.alfa/servers/gvideo.json b/plugin.video.alfa/servers/gvideo.json index a5d78fe4..24bf7661 100644 --- a/plugin.video.alfa/servers/gvideo.json +++ b/plugin.video.alfa/servers/gvideo.json @@ -10,7 +10,7 @@ "ignore_urls": [], "patterns": [ { - "pattern": "(?s)https://youtube.googleapis.com.*?docid=([^(?:&|\")]+)", + "pattern": "(?s)https://youtube.googleapis.com.*?docid=([0-9a-zA-Z-_]+)", "url": "http://docs.google.com/get_video_info?docid=\\1" }, { @@ -18,7 +18,7 @@ "url": "http://docs.google.com/get_video_info?docid=\\1" }, { - "pattern": "(?s)\"https://(?!docs)(.*?).googleusercontent.com/([^\"]+)", + "pattern": "(?s)\"https://(lh.*?).googleusercontent.com/([^\"]+)", "url": "https://\\1.googleusercontent.com/\\2" } ] diff --git a/plugin.video.alfa/servers/powvideo.py b/plugin.video.alfa/servers/powvideo.py index 9f75449d..f21cdacf 100755 --- a/plugin.video.alfa/servers/powvideo.py +++ b/plugin.video.alfa/servers/powvideo.py @@ -58,7 +58,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= matches = scrapertools.find_multiple_matches(data, "[src|file]:'([^']+)'") video_urls = [] for video_url in matches: - _hash = scrapertools.find_single_match(video_url, '[A-z0-9\_\-]{40,}') + _hash = scrapertools.find_single_match(video_url, '[A-z0-9\_\-]{78,}') hash = decrypt(_hash, key) video_url = video_url.replace(_hash, hash)