diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index e55df21f..05b5c1fe 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -1,5 +1,5 @@  - + @@ -19,12 +19,14 @@ [B]Estos son los cambios para esta versión:[/B] [COLOR green][B]Arreglos[/B][/COLOR] - [I]- streamplay, gracias a msdos - - allcalidad - - tvseriesdk - - mundoflv - - ver-peliculas - - fix internos[/I] + [I]- hentaiid + - hentaienespañol + - x18hentai + - mp4upload + - animeflv + - openload + - fixes internos[/I] + [COLOR green]Gracias a [COLOR yellow]jvc99[/COLOR] y [COLOR yellow]msdos[/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.py b/plugin.video.alfa/channels/animeflv.py old mode 100755 new mode 100644 index 67ad3f07..ec68dd95 --- a/plugin.video.alfa/channels/animeflv.py +++ b/plugin.video.alfa/channels/animeflv.py @@ -223,7 +223,7 @@ def episodios(item): item.plot = scrapertools.find_single_match(data, 'Description[^>]+>

(.*?)

') matches = re.compile('href="([^"]+)">
' - '

(.*?)

', re.DOTALL).findall(data) + '\s*

(.*?)

', re.DOTALL).findall(data) if matches: for url, thumb, title in matches: diff --git a/plugin.video.alfa/channels/autoplay.py b/plugin.video.alfa/channels/autoplay.py index f42a46d5..450b134e 100755 --- a/plugin.video.alfa/channels/autoplay.py +++ b/plugin.video.alfa/channels/autoplay.py @@ -381,10 +381,10 @@ def check_value(channel, itemlist): quality_list = channel_node['quality'] = list() for item in itemlist: - if item.server not in server_list: + if item.server not in server_list and item.server !='': server_list.append(item.server) change = True - if item.quality not in quality_list: + if item.quality not in quality_list and item.quality !='': quality_list.append(item.quality) change = True diff --git a/plugin.video.alfa/channels/datoporn.py b/plugin.video.alfa/channels/datoporn.py index cdf9f300..1afb3615 100755 --- a/plugin.video.alfa/channels/datoporn.py +++ b/plugin.video.alfa/channels/datoporn.py @@ -40,7 +40,7 @@ def lista(item): server="datoporn", fanart=scrapedthumbnail.replace("_t.jpg", ".jpg"))) # Extrae la marca de siguiente página - next_page = scrapertools.find_single_match(data, "Next") + next_page = scrapertools.find_single_match(data, 'Next') if next_page and itemlist: itemlist.append(item.clone(action="lista", title=">> Página Siguiente", url=next_page)) diff --git a/plugin.video.alfa/channels/hentaienespanol.py b/plugin.video.alfa/channels/hentaienespanol.py index c329affe..4551f015 100755 --- a/plugin.video.alfa/channels/hentaienespanol.py +++ b/plugin.video.alfa/channels/hentaienespanol.py @@ -61,30 +61,3 @@ def search(item, texto): return todas(item) else: return [] - - -def findvideos(item): - logger.info() - - itemlist = [] - - data = httptools.downloadpage(item.url).data - patron = '<\/i>Ver.*?<\/span><\/a> <\/li>' - matches = re.compile(patron, re.DOTALL).findall(data) - for scrapedurl in matches: - title = item.title - url = scrapedurl - itemlist.append(item.clone(title=title, url=url, action="play")) - - return itemlist - - -def play(item): - logger.info() - itemlist = [] - item.url = item.url.replace(' ', '%20') - data = httptools.downloadpage(item.url, add_referer=True).data - url = scrapertools.find_single_match(data, '(.*?)
") - patron = "(.*?)" + pattern = 'id="hentai2">]+>(.*?)
' + data = scrapertools.find_single_match(data, pattern) + + patron = 'href="([^"]+)"[^>]+>(.*?)' matches = re.compile(patron, re.DOTALL).findall(data) - for scrapedurl, scrapedtitle in matches: - title = scrapertools.entityunescape(scrapedtitle) - url = urlparse.urljoin(item.url, scrapedurl) + for url, title in matches: # logger.debug("title=[{0}], url=[{1}]".format(title, url)) - itemlist.append(Item(channel=item.channel, action="series", title=title, url=url)) return itemlist -def search(item, texto): - logger.info() - if item.url == "": - item.url = urlparse.urljoin(CHANNEL_HOST, "animes/?buscar=") - texto = texto.replace(" ", "+") - item.url = "%s%s" % (item.url, texto) - - try: - return series(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 series(item): logger.info() - data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t|\s{2}", "", httptools.downloadpage(item.url).data) - patron = '

' \ - '(.*?)[^<]+

[^<]+[^<]+ 0: - scrapedurl = match - scrapedtitle = ">> Pagina Siguiente" + if pagination: + page = scrapertools.find_single_match(pagination, '>Página\s*(\d+)\s*de\s*\d+<') + pattern = 'href="([^"]+)">%s<' % (int(page) + 1) + url_page = scrapertools.find_single_match(pagination, pattern) - itemlist.append(Item(channel=item.channel, action="series", title=scrapedtitle, url=scrapedurl, - folder=True, viewmode="movies_with_plot")) + if url_page: + itemlist.append(Item(channel=item.channel, action="series", title=">> Página Siguiente", url=url_page)) return itemlist @@ -124,9 +89,11 @@ def episodios(item): logger.info() itemlist = [] - data = httptools.downloadpage(item.url).data - data = scrapertools.find_single_match(data, '
(.*?)
') - patron = '([^<]+)' + data = re.sub(r"\n|\r|\t|\s{2}", "", httptools.downloadpage(item.url).data) + pattern = '
Lista de Capítulos
(.*?)
' + + data = scrapertools.find_single_match(data, pattern) + patron = ']+>([^<]+)' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedtitle in matches: @@ -136,10 +103,9 @@ def episodios(item): plot = item.plot # logger.debug("title=[{0}], url=[{1}], thumbnail=[{2}]".format(title, url, thumbnail)) - itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot, show=item.show, fulltitle="%s %s" % (item.show, title), - fanart=thumbnail, viewmode="movies_with_plot", folder=True)) + fanart=thumbnail)) return itemlist @@ -148,7 +114,8 @@ def findvideos(item): logger.info() data = httptools.downloadpage(item.url).data - patron = '
[^<]+<[iframe|IFRAME].*?[src|SRC]="([^"]+)"' + + patron = '<(?:iframe)?(?:IFRAME)?\s*(?:src)?(?:SRC)?="([^"]+)"' matches = re.compile(patron, re.DOTALL).findall(data) for url in matches: diff --git a/plugin.video.alfa/channels/locopelis.json b/plugin.video.alfa/channels/locopelis.json index 728a30dd..d5df7370 100755 --- a/plugin.video.alfa/channels/locopelis.json +++ b/plugin.video.alfa/channels/locopelis.json @@ -52,7 +52,7 @@ "default": 0, "enabled": true, "visible": true, - "llvalues": [ + "lvalues": [ "No filtrar", "Latino", "Español", @@ -76,4 +76,4 @@ "visible": true } ] -} \ No newline at end of file +} diff --git a/plugin.video.alfa/channels/ver-peliculas.json b/plugin.video.alfa/channels/ver-peliculas.json index a2436e87..ba3889f4 100644 --- a/plugin.video.alfa/channels/ver-peliculas.json +++ b/plugin.video.alfa/channels/ver-peliculas.json @@ -10,5 +10,16 @@ "categories": [ "movie", "latino" + ], + "settings": [ + { + "id": "modo_grafico", + "type": "bool", + "label": "Buscar información extra", + "default": true, + "enabled": true, + "visible": true + } ] -} \ No newline at end of file + +} diff --git a/plugin.video.alfa/channels/ver-peliculas.py b/plugin.video.alfa/channels/ver-peliculas.py index f3fdfdee..fcbd3059 100644 --- a/plugin.video.alfa/channels/ver-peliculas.py +++ b/plugin.video.alfa/channels/ver-peliculas.py @@ -14,9 +14,16 @@ from core import scrapertools from core import servertools from core.item import Item from platformcode import config, logger +from core import tmdb + +__channel__ = "ver-peliculas" host = "http://ver-peliculas.org/" +try: + __modo_grafico__ = config.get_setting('modo_grafico', __channel__) +except: + __modo_grafico__ = True def mainlist(item): logger.info() @@ -115,19 +122,22 @@ def listado(item): logger.info() itemlist = [] data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data) - logger.debug(data) + # logger.debug(data) pattern = ']+>(.*?)') if pagination: @@ -140,6 +150,13 @@ def listado(item): url=url, thumbnail=get_thumb("next.png"))) + for item in itemlist: + if item.infoLabels['plot'] == '': + data = httptools.downloadpage(item.url).data + item.plot = scrapertools.find_single_match(data, '
([^<]+)
').strip() + item.fanart = scrapertools.find_single_match(data, '') + + return itemlist diff --git a/plugin.video.alfa/channels/x18hentai.py b/plugin.video.alfa/channels/x18hentai.py index 5ed87510..b76e8605 100755 --- a/plugin.video.alfa/channels/x18hentai.py +++ b/plugin.video.alfa/channels/x18hentai.py @@ -6,8 +6,9 @@ from core import httptools from core import scrapertools from core.item import Item from platformcode import logger +from core import servertools -host = 'http://www.18hentaionline.eu/' +host = 'http://www.18hentaionline.net/' headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'], ['Referer', host]] @@ -92,17 +93,58 @@ def episodios(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url, headers=headers).data - patron = '([^<]+)<\/td>.([^<]+)<\/td>.([^<]+)<\/td>.([^<]+)<\/td>.
Ver Capitulo<\/a><\/td>' + old_mode = scrapertools.find_single_match(data, 'Censura<\/th>') + if old_mode: + patron = '(\d+)<\/td>(.*?)<\/td>(.*?)<\/td>(.*?)<\/td>Ver Capitulo<\/a><\/td>' - matches = re.compile(patron, re.DOTALL).findall(data) + matches = re.compile(patron, re.DOTALL).findall(data) - for scrapedcap, scrapedaud, scrapedsub, scrapedcen, scrapedurl in matches: - url = scrapedurl - title = 'CAPITULO ' + scrapedcap + ' AUDIO: ' + scrapedaud + ' SUB:' + scrapedsub + ' ' + censura[scrapedcen] - thumbnail = '' - plot = '' - fanart = '' - itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=item.fulltitle, url=url, - thumbnail=item.thumbnail, plot=plot)) + for scrapedcap, scrapedaud, scrapedsub, scrapedcen, scrapedurl in matches: + url = scrapedurl + title = 'CAPITULO ' + scrapedcap + ' AUDIO: ' + scrapedaud + ' SUB:' + scrapedsub + ' ' + censura[scrapedcen] + thumbnail = '' + plot = '' + fanart = '' + itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=item.fulltitle, url=url, + thumbnail=item.thumbnail, plot=plot)) + else: + patron = '<\/i>.*?(.\d+)<\/td>MP4<\/td>(.*?)<\/td>.*?' + patron +='' + + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedcap, scrapedsub, scrapedurl in matches: + url = scrapedurl + if scrapedsub !='': + subs= scrapedsub + else: + sub = 'No' + title = 'CAPITULO %s SUB %s'%(scrapedcap, subs) + thumbnail = '' + plot = '' + fanart = '' + itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=item.fulltitle, url=url, + thumbnail=item.thumbnail, plot=plot)) return itemlist + +def findvideos(item): + logger.info() + + itemlist = [] + data = httptools.downloadpage(item.url).data + gvideo = scrapertools.find_single_match(data,'
  • ') + headers = {'Host':'www.18hentaionline.net', 'Referer':item.url} + gvideo_data = httptools.downloadpage(gvideo, headers = headers).data + gvideo_url = scrapertools.find_single_match(gvideo_data, 'file: "(.*?)"') + server = 'directo' + new_item = (item.clone(url=gvideo_url, server=server)) + itemlist.append(new_item) + itemlist.extend(servertools.find_video_items(data=data)) + for videoitem in itemlist: + videoitem.channel = item.channel + videoitem.title = item.title+' (%s)'%videoitem.server + videoitem.action = 'play' + return itemlist + + diff --git a/plugin.video.alfa/servers/mp4upload.py b/plugin.video.alfa/servers/mp4upload.py old mode 100755 new mode 100644 index 39b27a56..2efbcf56 --- a/plugin.video.alfa/servers/mp4upload.py +++ b/plugin.video.alfa/servers/mp4upload.py @@ -1,17 +1,23 @@ # -*- coding: utf-8 -*- +import re + +from core import httptools from core import scrapertools +from lib import jsunpack from platformcode import logger def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) - data = scrapertools.cache_page(page_url) - logger.info("data=" + data) - media_url = scrapertools.find_single_match(data, '"file": "(.+?)"') - logger.info("media_url=" + media_url) - media_url = media_url.replace("?start=0", "") + data = re.sub(r"\n|\r|\t|\s{2}", "", httptools.downloadpage(page_url).data) + + match = scrapertools.find_single_match(data, "") + data = jsunpack.unpack(match) + data = data.replace("\\'", "'") + + media_url = scrapertools.find_single_match(data, '{type:"video/mp4",src:"([^"]+)"}') logger.info("media_url=" + media_url) video_urls = list() diff --git a/plugin.video.alfa/servers/openload.py b/plugin.video.alfa/servers/openload.py old mode 100755 new mode 100644 index 20726a4a..9baff26c --- a/plugin.video.alfa/servers/openload.py +++ b/plugin.video.alfa/servers/openload.py @@ -52,7 +52,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= numeros = scrapertools.find_multiple_matches(data, '_[A-f0-9]+x[A-f0-9]+\s*(?:=|\^)\s*([0-9]{4,}|0x[A-f0-9]{4,})') op1, op2 = scrapertools.find_single_match(data, '\(0x(\d),0x(\d)\);') - + idparse = scrapertools.find_single_match(data, "\^parseInt\('([0-9]+)'") videourl = "" for encode in var_encodes: text_decode = "" @@ -81,7 +81,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= if value3 < index1: break - value4 = value2 ^ decode1[j % (mult / 8)] + value4 = value2 ^ decode1[j % (mult / 8)] ^ int(idparse,8) for n in numeros: if not n.isdigit(): n = int(n, 16)