From 84b5de3daf26bc91fa11b915566f299c675ff8d5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 18 Jun 2018 11:23:16 -0300 Subject: [PATCH] Correcciones menores a canales --- plugin.video.alfa/channels/animemovil.py | 37 +- plugin.video.alfa/channels/pelismagnet.py | 8 +- plugin.video.alfa/channels/pelisultra.py | 441 ++++++++++-------- plugin.video.alfa/channels/seriesdanko.py | 18 +- plugin.video.alfa/channels/seriespapaya.py | 14 +- plugin.video.alfa/channels/seriesverde.py | 10 +- .../channels/ultrapeliculashd.py | 17 +- plugin.video.alfa/channels/wikiseries.py | 3 +- 8 files changed, 289 insertions(+), 259 deletions(-) diff --git a/plugin.video.alfa/channels/animemovil.py b/plugin.video.alfa/channels/animemovil.py index 5c4031fc..0cd3153a 100644 --- a/plugin.video.alfa/channels/animemovil.py +++ b/plugin.video.alfa/channels/animemovil.py @@ -287,7 +287,6 @@ def findvideos(item): strm_id = scrapertools.find_single_match(data, '"id": (.*?),') streams = scrapertools.find_single_match(data, '"stream": (.*?)};') dict_strm = jsontools.load(streams) - base_url = 'http:%s%s/' % (dict_strm['accessPoint'], strm_id) for server in dict_strm['servers']: expire = dict_strm['expire'] @@ -297,24 +296,26 @@ def findvideos(item): strm_url = base_url +'%s?expire=%s&callback=%s&signature=%s&last_modify=%s' % (server, expire, callback, signature, last_modify) - - strm_data = httptools.downloadpage(strm_url).data - strm_data = scrapertools.unescape(strm_data) - title = '%s' - language = '' - if server not in ['fire', 'meph']: - urls = scrapertools.find_multiple_matches(strm_data, '"(?:file|src)"*?:.*?"(.*?)"') - for url in urls: + try: + strm_data = httptools.downloadpage(strm_url).data + strm_data = scrapertools.unescape(strm_data) + title = '%s' + language = '' + if server not in ['fire', 'meph']: + urls = scrapertools.find_multiple_matches(strm_data, '"(?:file|src)"*?:.*?"(.*?)"') + for url in urls: + if url != '': + url = url.replace ('\\/','/') + itemlist.append(Item(channel=item.channel, title=title, url=url, action='play')) + elif server in ['fire', 'mpeh']: + url = scrapertools.find_single_match(strm_data, 'xmlhttp.open(\"GET\", \"(.*?)\"') if url != '': - url = url.replace ('\\/','/') - itemlist.append(Item(channel=item.channel, title=title, url=url, action='play')) - elif server in ['fire', 'mpeh']: - url = scrapertools.find_single_match(strm_data, 'xmlhttp.open(\"GET\", \"(.*?)\"') - if url != '': - url = url.replace('\\/', '/') - itemlist.append(Item(channel=item.channel, title=url, url=url, action='play')) - else: - continue + url = url.replace('\\/', '/') + itemlist.append(Item(channel=item.channel, title=url, url=url, action='play')) + else: + continue + except: + pass servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server) diff --git a/plugin.video.alfa/channels/pelismagnet.py b/plugin.video.alfa/channels/pelismagnet.py index d0cd6fc4..d8440caa 100644 --- a/plugin.video.alfa/channels/pelismagnet.py +++ b/plugin.video.alfa/channels/pelismagnet.py @@ -74,7 +74,11 @@ def menu_alf(item): for letra in ['[0-9]', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']: - itemlist.append(Item(channel=item.channel, action="series", title=letra, + if 'series' in item.url: + action = 'series' + else: + action = 'pelis' + itemlist.append(Item(channel=item.channel, action=action, title=letra, url=item.url + "?keywords=^" + letra + "&page=0")) return itemlist @@ -117,6 +121,7 @@ def series(item): data = httptools.downloadpage(item.url).data lista = jsontools.load(data) + logger.debug(lista) if item.extra == "next": lista_ = lista[25:] else: @@ -171,6 +176,7 @@ def episodios(item): # post = "page=%s&x=34&y=14" % urllib.quote(item.url) # response = httptools.downloadpage(url, post, follow_redirects=False).data # url = scrapertools.find_single_match(response, '') + data2 = scrapertools.find_single_match(data, '(?s)
') - # Se saca la info - #(?s)class="ml-item.*?a href="([^"]+).*?img src="([^"]+).*?alt="([^"]+).*?class="year">(\d{4})(.*?)
(\d{4})(.*?)
(.*?)') - itemlist.append(Item(action = "findvideos", channel = item.channel, title = scrapedtitle + " (" + scrapedyear + ") [" + scrapedquality + "]", contentTitle=scrapedtitle, thumbnail = scrapedthumbnail, url = scrapedurl, quality=scrapedquality, infoLabels={'year':scrapedyear})) - else: - if item.action == "search": - itemlist.append(Item(action = "temporadas", channel = item.channel, title = scrapedtitle + " (" + scrapedyear + ")", contentSerieName=scrapedtitle, contentType="tvshow", thumbnail = scrapedthumbnail, url = scrapedurl, infoLabels={'year':scrapedyear})) + scrapertools.printMatches(matches) + for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear, scrapedquality in matches: + if not "/series/" in scrapedurl: + scrapedquality = scrapertools.find_single_match(scrapedquality, '(.*?)') + itemlist.append(Item(action="findvideos", channel=item.channel, + title=scrapedtitle + " (" + scrapedyear + ") [" + scrapedquality + "]", + contentTitle=scrapedtitle, thumbnail=scrapedthumbnail, url=scrapedurl, + quality=scrapedquality, infoLabels={'year': scrapedyear})) + else: + if item.action == "search": + itemlist.append( + Item(action="temporadas", channel=item.channel, title=scrapedtitle + " (" + scrapedyear + ")", + contentSerieName=scrapedtitle, contentType="tvshow", thumbnail=scrapedthumbnail, + url=scrapedurl, infoLabels={'year': scrapedyear})) + # InfoLabels: + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) - # InfoLabels: - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + # Pagina siguiente + patron_siguiente = 'class="pag_b">(.*?)') - # Extrae la url y el género - patron = '(.*?)' - matches = scrapertools.find_multiple_matches(data, patron) - # Se quita "Estrenos" de la lista porque tiene su propio menu - matches.pop(0) + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + # Delimita la búsqueda a la lista donde estan los géneros + data = scrapertools.find_single_match(data, '(?s)') + # Extrae la url y el género + patron = '(.*?)' + matches = scrapertools.find_multiple_matches(data, patron) + # Se quita "Estrenos" de la lista porque tiene su propio menu + matches.pop(0) - for scrapedurl, scrapedtitle in matches: - itemlist.append(Item(action = "peliculas", channel = item.channel, title = scrapedtitle, url = scrapedurl)) + for scrapedurl, scrapedtitle in matches: + itemlist.append(Item(action="peliculas", channel=item.channel, title=scrapedtitle, url=scrapedurl)) + + return itemlist - return itemlist def series(item): - logger.info() - itemlist = [] - data = httptools.downloadpage(item.url).data - # Se saca la info - patron = '(?s)class="ml-item.*?' # base - patron += 'a href="([^"]+).*?' # url - patron += 'img src="([^"]+).*?' # imagen - patron += 'alt="([^"]+).*?' # titulo - patron += 'class="year">(\d{4})' # año - matches = scrapertools.find_multiple_matches(data, patron) + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + # Se saca la info + patron = '(?s)class="ml-item.*?' # base + patron += 'a href="([^"]+).*?' # url + patron += 'img src="([^"]+).*?' # imagen + patron += 'alt="([^"]+).*?' # titulo + patron += 'class="year">(\d{4})' # año + matches = scrapertools.find_multiple_matches(data, patron) - #if config.get_setting('temporada_o_todos', 'pelisultra') == 0: - if config.get_setting('temporada_o_todos', 'pelisultra'): - accion="temporadas" - else: - accion="episodios" + # if config.get_setting('temporada_o_todos', 'pelisultra') == 0: + if config.get_setting('temporada_o_todos', 'pelisultra'): + accion = "temporadas" + else: + accion = "episodios" - for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear in matches: - itemlist.append(Item(action = accion, channel = item.channel, title = scrapedtitle + " (" + scrapedyear + ")", contentSerieName=scrapedtitle, contentType="tvshow", thumbnail = scrapedthumbnail, url = scrapedurl, infoLabels={'year':scrapedyear})) + for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear in matches: + itemlist.append(Item(action=accion, channel=item.channel, title=scrapedtitle + " (" + scrapedyear + ")", + contentSerieName=scrapedtitle, contentType="tvshow", thumbnail=scrapedthumbnail, + url=scrapedurl, infoLabels={'year': scrapedyear})) - # InfoLabels: - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + # InfoLabels: + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) - # Pagina siguiente - patron_siguiente='class="pag_b"> item.page + episodios_por_pagina: - itemlist_page.append(item.clone(title = ">>> Pagina siguiente", page = item.page + episodios_por_pagina)) + itemlist_page = itemlist[item.page: item.page + episodios_por_pagina] - # InfoLabels: - tmdb.set_infoLabels_itemlist(itemlist_page, seekTmdb=True) + if len(itemlist) > item.page + episodios_por_pagina: + itemlist_page.append(item.clone(title=">>> Pagina siguiente", page=item.page + episodios_por_pagina)) + + # InfoLabels: + tmdb.set_infoLabels_itemlist(itemlist_page, seekTmdb=True) + + return itemlist_page - return itemlist_page def nuevos_episodios(item): - logger.info() - itemlist = [] - data = httptools.downloadpage(item.url).data - patron = '(?s).*?' # base - patron += '' # url - patron += '(.*?).*?' # nombre_serie - patron += '.*?' # base + patron += '' # url + patron += '(.*?).*?' # nombre_serie + patron += ' 0: @@ -177,7 +177,7 @@ def search(item, texto): show=show["titulo"], url=urlparse.urljoin(HOST, show["urla"]), thumbnail=urlparse.urljoin(HOST, show["img"]), - context=filtertools.context(item, list_idiomas, CALIDADES) + context=filtertools.context(item, list_idiomas, list_quality) ) for show in tvshows] @@ -227,7 +227,7 @@ def findvideos(item): # Requerido para FilterTools - itemlist = filtertools.get_links(itemlist, item, list_idiomas, CALIDADES) + itemlist = filtertools.get_links(itemlist, item, list_idiomas, list_quality) # Requerido para AutoPlay diff --git a/plugin.video.alfa/channels/seriesverde.py b/plugin.video.alfa/channels/seriesverde.py index c986e8ee..ce8598d6 100644 --- a/plugin.video.alfa/channels/seriesverde.py +++ b/plugin.video.alfa/channels/seriesverde.py @@ -83,7 +83,7 @@ def list_all(item): url = host + scrapedurl thumbnail = scrapedthumbnail - title = scrapedtitle + title = scrapertools.decodeHtmlentities(scrapedtitle) itemlist.append(Item(channel=item.channel, action='seasons', @@ -125,7 +125,10 @@ def section(item): for scrapedurl, scrapedtitle in matches: - url = host + scrapedurl + if item.title == 'Generos': + url = host + scrapedurl + else: + url = scrapedurl title = scrapedtitle itemlist.append(Item(channel=item.channel, action='list_all', @@ -211,7 +214,6 @@ def add_language(title, string): languages = scrapertools.find_multiple_matches(string, '/banderas/(.*?).png') - language = [] for lang in languages: @@ -219,7 +221,7 @@ def add_language(title, string): lang = 'vos' if len(languages) == 1: - language = IDIOMAS[languages[0]] + language = IDIOMAS[lang] title = '%s [%s]' % (title, language) else: language.append(IDIOMAS[lang]) diff --git a/plugin.video.alfa/channels/ultrapeliculashd.py b/plugin.video.alfa/channels/ultrapeliculashd.py index 66e882d1..8c98653b 100644 --- a/plugin.video.alfa/channels/ultrapeliculashd.py +++ b/plugin.video.alfa/channels/ultrapeliculashd.py @@ -149,7 +149,6 @@ def generos(item): itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) - logger.debug(data) patron = 'genres menu-item-.*?>(.*?)<' matches = re.compile(patron, re.DOTALL).findall(data) @@ -201,13 +200,11 @@ def alpha(item): url = 'https://www.ultrapeliculashd.com/wp-json/dooplay/glossary/?term=%s&nonce=4e850b7d59&type=all' % item.id data = httptools.downloadpage(url).data dict_data = jsontools.load(data) - logger.debug(dict_data) - - for elem in dict_data: - logger.debug(dict_data[elem]) - elem = dict_data[elem] - itemlist.append(Item(channel=item.channel, action='findvideos', title = elem['title'], url=elem['url'], - thumbnail=elem['img'])) + if 'error' not in dict_data: + for elem in dict_data: + elem = dict_data[elem] + itemlist.append(Item(channel=item.channel, action='findvideos', title = elem['title'], url=elem['url'], + thumbnail=elem['img'])) return itemlist @@ -216,19 +213,15 @@ def findvideos(item): itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) - #logger.debug(data) patron = '<\/iframe>' matches = re.compile(patron, re.DOTALL).findall(data) for video_url in matches: - logger.debug('video_url: %s' % video_url) if 'stream' in video_url and 'streamango' not in video_url: data = httptools.downloadpage('https:'+video_url).data - logger.debug(data) if not 'iframe' in video_url: new_url=scrapertools.find_single_match(data, 'iframe src="(.*?)"') new_data = httptools.downloadpage(new_url).data - logger.debug('new_data %s' % new_data) url= '' try: url, quality = scrapertools.find_single_match(new_data, 'file:.*?(?:\"|\')(https.*?)(?:\"|\'),' diff --git a/plugin.video.alfa/channels/wikiseries.py b/plugin.video.alfa/channels/wikiseries.py index 89e65e97..665b778d 100644 --- a/plugin.video.alfa/channels/wikiseries.py +++ b/plugin.video.alfa/channels/wikiseries.py @@ -69,7 +69,8 @@ def list_all(item): action = 'seasons' if 'episode' in item.url: - scrapedtitle, season, episode = scrapertools.find_single_match(scrapedtitle, '(.*?) (\d+)x(\d+)') + scrapedtitle, season, episode = scrapertools.find_single_match(scrapedtitle, + '(.*?) (\d+).*?(?:x|X).*?(\d+)') contentSerieName = scrapedtitle scrapedtitle = '%sx%s - %s' % (season, episode, scrapedtitle) action='findvideos'