From b9059b3b5dcb270b9089d943d589308307cc5609 Mon Sep 17 00:00:00 2001 From: mrgaturus Date: Tue, 29 May 2018 23:15:23 -0500 Subject: [PATCH 01/20] Solucionado mini-error en el buscador de cuevana2 --- plugin.video.alfa/channels/cuevana2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/channels/cuevana2.py b/plugin.video.alfa/channels/cuevana2.py index 938a1bda..7f39807d 100644 --- a/plugin.video.alfa/channels/cuevana2.py +++ b/plugin.video.alfa/channels/cuevana2.py @@ -166,7 +166,7 @@ def searchMovies(itemlist, item, texto): #coloca las peliculas encontradas en la lista, improvisando do while next_page = True while next_page: - put_movies(itemlist, data, pattern) + put_movies(itemlist, item, data, pattern) next_page = scrapertools.find_single_match(data, '
  • ([^<]*)<\/a><\/li>' #
  • Acción
  • + elif 'Por calidades' in item.title: + patron = "
  • ([^<]*)<\/a><\/li>" #
  • HD 1080
  • + elif 'Por idiomas' in item.title: + patron = "
  • ([^<]*)<\/a><\/li>" #
  • Español
  • + + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedtitle in matches: + if scrapedtitle not in duplicados: + itemlist.append(Item(channel=item.channel, url=host + scrapedurl, title=scrapedtitle, action='peliculas', + type=item.type)) + duplicados.append(scrapedtitle) return itemlist @@ -62,132 +103,161 @@ def search(item, texto): def buscador(item): logger.info() itemlist = [] + data = httptools.downloadpage(item.url).data - data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - patron = '
    ||", "", scrapedcalidad).strip() - scrapedlenguaje = re.sub(r"||", "", scrapedlenguaje).strip() - if not "Adultos" in scrapedgenero and not "Adultos" in scrapedlenguaje and not "Adultos" in scrapedcalidad: - scrapedcalidad = "[COLOR orange]" + scrapedcalidad + "[/COLOR]" - scrapedlenguaje = "[COLOR orange]" + scrapedlenguaje + "[/COLOR]" - title = scrapedtitle + "-(Idioma: " + scrapedlenguaje + ")" + "-(Calidad: " + scrapedcalidad + ")" - title = "[COLOR white]" + title + "[/COLOR]" - scrapedtitle = scrapedtitle.split("(")[0].strip() - itemlist.append(Item(channel=item.channel, title=title, url=scrapedurl, action="findvideos", - thumbnail=scrapedthumbnail, contentTitle = scrapedtitle, infoLabels={'year':year}, - fanart="http://s18.postimg.cc/h9kb22mnt/pdkfanart.jpg", library=True, folder=True)) - tmdb.set_infoLabels(itemlist, True) - try: - next_page = scrapertools.get_match(data, - '.*?Siguiente »
    ') - itemlist.append(Item(channel=item.channel, action="buscador", title="[COLOR red]siguiente>>[/COLOR]", url=next_page, - thumbnail="http://s6.postimg.cc/uej03x4r5/bricoflecha.png", - fanart="http://s18.postimg.cc/h9kb22mnt/pdkfanart.jpg", folder=True)) - except: - pass + scrapedtitle = re.sub(r"\(\d+\)", "", scrapedtitle).strip() + + audios = scrapertools.find_multiple_matches(scrapedlenguaje, '([^<]*)') + calidad = scrapertools.find_single_match(scrapedcalidad, '([^<]*)') + + titulo = '%s [%s][%s]' % (scrapedtitle, ','.join([a[:3] for a in audios]), calidad) + + # Parece que las pelis de adultos se mezclan en la búsqueda y lo único que las diferencia es que no tienen Calidad + if calidades or __adult_mode__ != 0: + itemlist.append(Item(channel=item.channel, + action="findvideos", url=scrapedurl, + title=titulo, contentTitle=scrapedtitle, + thumbnail=scrapedthumbnail, + language=audios, + quality=calidad, + infoLabels={'year':year} + )) + + tmdb.set_infoLabels(itemlist) + + # Paginación + url_next_page = scrapertools.find_single_match(data,'Siguiente »') + if url_next_page: + itemlist.append(item.clone(title="Siguiente >>", url=url_next_page)) + return itemlist def peliculas(item): logger.info() itemlist = [] - # Descarga la página + data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}| |&#.*?;", "", data) - patron = 'style="position:relative;"> ' - patron += '|", "", scrapedcalidad).strip() - scrapedlenguaje = re.sub(r"|", "", scrapedlenguaje).strip() - scrapedlenguaje = scrapedlenguaje.split(',') - if not "Adultos" in scrapedgenero and not "Adultos" in scrapedlenguaje and not "Adultos" in scrapedcalidad: - scrapedtitle = scrapedtitle + + audios = scrapertools.find_multiple_matches(scrapedlenguaje, '([^<]*)') + calidad = scrapertools.find_single_match(scrapedcalidad, '([^<]*)') + generos = scrapertools.find_multiple_matches(scrapedgenero, '([^<]*)') + + titulo = '%s [%s][%s]' % (scrapedtitle, ','.join([a[:3] for a in audios]), calidad) + + if 'Adultos' not in generos or __adult_mode__ != 0: itemlist.append(Item(channel=item.channel, - title=scrapedtitle, - url=scrapedurl, - action="findvideos", + action="findvideos", url=scrapedurl, + title=titulo, contentTitle=scrapedtitle, thumbnail=scrapedthumbnail, - fanart="http://s18.postimg.cc/h9kb22mnt/pdkfanart.jpg", library=True, folder=True, - language=scrapedlenguaje, - quality=scrapedcalidad, - contentTitle = scrapedtitle, + language=audios, + quality=calidad, infoLabels={'year':year} )) + tmdb.set_infoLabels(itemlist) - ## Paginación - next_page = scrapertools.get_match(data, '.*?Siguiente »') - itemlist.append(Item(channel=item.channel, action="peliculas", title="[COLOR red]siguiente>>[/COLOR]", url=next_page, - thumbnail="http://s6.postimg.cc/uej03x4r5/bricoflecha.png", - fanart="http://s18.postimg.cc/h9kb22mnt/pdkfanart.jpg", folder=True)) + + # Paginación + url_next_page = scrapertools.find_single_match(data,'Siguiente »') + if url_next_page: + itemlist.append(item.clone(title="Siguiente >>", url=url_next_page)) + return itemlist def findvideos(item): logger.info() itemlist = [] + data = httptools.downloadpage(item.url).data - data = re.sub(r"", "", data) - data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - bloque_tab = scrapertools.find_single_match(data, '
    (.*?)
    ') - patron = '
  • \d<\/span><\/span>([^<]+)<\/span>' - check = re.compile(patron, re.DOTALL).findall(bloque_tab) - servers_data_list = [] - patron = '
    ' + + patron = '
  • \d<\/span><\/span>([^<]+)<\/span>' + check = re.compile(patron, re.DOTALL).findall(data) + if not check: + patron = '
  • ' + check = re.compile(patron, re.DOTALL).findall(data) + for i, valor in enumerate(check): + check[i] = [valor, '', ''] + + patron = '
    (.*?)
    ' matches = re.compile(patron, re.DOTALL).findall(data) - if len(matches) == 0: - patron = '
    ' - matches = re.compile(patron, re.DOTALL).findall(data) - for check_tab, server, id in matches: - if check_tab in str(check): - idioma, calidad = scrapertools.find_single_match(str(check), "" + check_tab + "', '(.*?)', '(.*?)'") - servers_data_list.append([server, id, idioma, calidad]) - url = host + "/Js/videod.js" - data = httptools.downloadpage(url).data - data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - data = data.replace('