diff --git a/plugin.video.alfa/channels/cartoonlatino.py b/plugin.video.alfa/channels/cartoonlatino.py index 48b47c0a..23b59b61 100644 --- a/plugin.video.alfa/channels/cartoonlatino.py +++ b/plugin.video.alfa/channels/cartoonlatino.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- import re @@ -25,29 +25,15 @@ list_quality = ['default'] def mainlist(item): logger.info() - thumb_series = get_thumb("channels_tvshow.png") autoplay.init(item.channel, list_servers, list_quality) - itemlist = list() - itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host, thumbnail=thumb_series)) autoplay.show_option(item.channel, itemlist) - return itemlist -""" -def search(item, texto): - logger.info() - texto = texto.replace(" ","+") - item.url = item.url+texto - if texto!='': - return lista(item) -""" - - def lista_gen(item): logger.info() @@ -179,11 +165,10 @@ def findvideos(item): for link in itemla: if server in link: url = link.replace('" + ID' + server + ' + "', str(id)) - if "drive" in server: - server1 = 'Gvideo' - else: - server1 = server - itemlist.append(item.clone(url=url, action="play", server=server1, - title="Enlace encontrado en %s " % (server1.capitalize()))) + itemlist.append(item.clone(url=url, action="play", + title="Enlace encontrado en %s " + )) + itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) + scrapertools.printMatches(itemlist) autoplay.start(itemlist, item) return itemlist diff --git a/plugin.video.alfa/channels/clasicofilm.py b/plugin.video.alfa/channels/clasicofilm.py index 39f02bfe..c3efc2fe 100755 --- a/plugin.video.alfa/channels/clasicofilm.py +++ b/plugin.video.alfa/channels/clasicofilm.py @@ -2,11 +2,15 @@ import re +from core import filetools +from core import jsontools from core import httptools from core import scrapertools +from core import servertools from core import tmdb +from core import videolibrarytools from core.item import Item -from platformcode import config, logger +from platformcode import config, platformtools, logger host = "http://www.clasicofilm.com/" # Configuracion del canal @@ -47,7 +51,6 @@ def mainlist(item): def configuracion(item): - from platformcode import platformtools ret = platformtools.show_channel_settings() platformtools.itemlist_refresh() return ret @@ -55,13 +58,9 @@ def configuracion(item): def search(item, texto): logger.info() - data = httptools.downloadpage(host).data - cx = scrapertools.find_single_match(data, "var cx = '([^']+)'") texto = texto.replace(" ", "%20") - item.url = "https://www.googleapis.com/customsearch/v1element?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY&rsz=filtered_cse&num=20&hl=es&sig=0c3990ce7a056ed50667fe0c3873c9b6&cx=%s&q=%s&sort=&googlehost=www.google.com&start=0" % ( - cx, texto) - + item.url = host + "search?q=%s" % texto try: return busqueda(item) # Se captura la excepción, para no interrumpir al buscador global si un canal falla @@ -104,7 +103,6 @@ def peliculas(item): data = httptools.downloadpage(item.url).data data = scrapertools.find_single_match(data, 'finddatepost\((\{.*?\]\}\})\);') - from core import jsontools data = jsontools.load(data)["feed"] for entry in data["entry"]: @@ -133,7 +131,6 @@ def peliculas(item): tmdb.set_infoLabels(itemlist, __modo_grafico__) except: pass - actualpage = int(scrapertools.find_single_match(item.url, 'start-index=(\d+)')) totalresults = int(data["openSearch$totalResults"]["$t"]) if actualpage + 20 < totalresults: @@ -146,48 +143,22 @@ def peliculas(item): def busqueda(item): logger.info() itemlist = [] - item.text_color = color2 - - # Descarga la página data = httptools.downloadpage(item.url).data - - from core import jsontools - data = jsontools.load(data) - - for entry in data["results"]: - try: - title = entry["richSnippet"]["metatags"]["ogTitle"] - url = entry["richSnippet"]["metatags"]["ogUrl"] - thumbnail = entry["richSnippet"]["metatags"]["ogImage"] - except: - continue - - try: - title_split = re.split(r"\s*\((\d)", title, 1) - year = title_split[1] + scrapertools.find_single_match(title_split[2], '(\d{3})\)') - fulltitle = title_split[0] - except: - fulltitle = title - year = "" - if not "DVD" in title and not "HDTV" in title and not "HD-" in title: - continue - infolabels = {'year': year} - new_item = item.clone(action="findvideos", title=title, fulltitle=fulltitle, - url=url, thumbnail=thumbnail, infoLabels=infolabels, - contentTitle=fulltitle, contentType="movie") - itemlist.append(new_item) - - try: - tmdb.set_infoLabels(itemlist, __modo_grafico__) - except: - pass - - actualpage = int(scrapertools.find_single_match(item.url, 'start=(\d+)')) - totalresults = int(data["cursor"]["resultCount"]) - if actualpage + 20 <= totalresults: - url_next = item.url.replace("start=" + str(actualpage), "start=" + str(actualpage + 20)) - itemlist.append(Item(channel=item.channel, action="busqueda", title=">> Página Siguiente", url=url_next)) - + patron = """post-title entry-titl.*?href='([^']+)'""" + patron += """>([^<]+).*?""" + patron += """src="([^"]+)""" + matches = scrapertools.find_multiple_matches(data, patron) + for scrapedurl, scrapedtitle, scrapedthumbnail in matches: + year = scrapertools.find_single_match(scrapedtitle, "\(([0-9]{4})\)") + ctitle = scrapedtitle.split("(")[0].strip() + itemlist.append(item.clone(action = "findvideos", + contentTitle = ctitle, + infoLabels = {"year" : year}, + thumbnail = scrapedthumbnail, + title = scrapedtitle, + url = scrapedurl + )) + tmdb.set_infoLabels(itemlist, __modo_grafico__) return itemlist @@ -197,9 +168,10 @@ def generos(item): # Descarga la página data = httptools.downloadpage(item.url).data - patron = '([^<]+)
\s*