From ceed742ca9d5b6da545d31e8af2d698e8d4f50c9 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 17 Apr 2018 11:17:38 -0500 Subject: [PATCH] documentalesonline: updated --- .../channels/documentalesonline.py | 113 ++++++++---------- 1 file changed, 53 insertions(+), 60 deletions(-) diff --git a/plugin.video.alfa/channels/documentalesonline.py b/plugin.video.alfa/channels/documentalesonline.py index ee8ce0f5..6b4818d5 100755 --- a/plugin.video.alfa/channels/documentalesonline.py +++ b/plugin.video.alfa/channels/documentalesonline.py @@ -4,55 +4,79 @@ import re from core import httptools from core import scrapertools +from core import servertools from core.item import Item -from platformcode import logger from channelselector import get_thumb +from platformcode import logger HOST = "http://documentales-online.com/" def mainlist(item): logger.info() - itemlist = list() - - itemlist.append(Item(channel=item.channel, title="Novedades", action="listado", url=HOST, + itemlist.append(Item(channel=item.channel, title="Novedades", action="videos", url=HOST, thumbnail=get_thumb('newest', auto=True))) itemlist.append(Item(channel=item.channel, title="Destacados", action="seccion", url=HOST, extra="destacados", thumbnail=get_thumb('hot', auto=True))) - itemlist.append(Item(channel=item.channel, title="Series", action="seccion", url=HOST, extra="series", + itemlist.append(Item(channel=item.channel, title="Series destacadas", action="seccion", url=HOST, extra="series", thumbnail=get_thumb('tvshows', auto=True))) itemlist.append(Item(channel=item.channel, title="Categorías", action="categorias", url=HOST, thumbnail=get_thumb('categories', auto=True))) - # itemlist.append(Item(channel=item.channel, title="Top 100", action="categorias", url=HOST)) - # itemlist.append(Item(channel=item.channel, title="Populares", action="categorias", url=HOST)) - + itemlist.append(Item(channel=item.channel, title="Top 100", action="listado", url=HOST + "top/", + thumbnail=get_thumb('more voted', auto=True))) + itemlist.append(Item(channel=item.channel, title="Populares", action="listado", url=HOST + "populares/", + thumbnail=get_thumb('more watched', auto=True))) + itemlist.append(Item(channel=item.channel, title="Series y Temas", action="listado", url=HOST + "series-temas/", + thumbnail=get_thumb('tvshows', auto=True))) itemlist.append(Item(channel=item.channel, title="Buscar", action="search", thumbnail=get_thumb('search', auto=True))) + return itemlist - # itemlist.append(Item(channel=item.channel, title=" Series y Temas", action="categorias", url=HOST)) +def listado(item): + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + data = data.replace('', '') + bloque = scrapertools.find_single_match(data, 'class="post-entry(.*?)class="post-share') + if "series-temas" not in item.url: + patron = '([^<]+)<.*?""" + matches = scrapertools.find_multiple_matches(bloque, patron) + for scrapedurl, scrapedtitle in matches: + itemlist.append(Item(action = "videos", + channel = item.channel, + title = scrapedtitle, + url = HOST + scrapedurl + )) return itemlist def seccion(item): logger.info() itemlist = [] - data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", data) - if item.extra == "destacados": patron_seccion = '

Destacados

    (.*?)
' action = "findvideos" else: patron_seccion = '

Series destacadas

    (.*?)
' - action = "listado" - + action = "videos" data = scrapertools.find_single_match(data, patron_seccion) - - matches = re.compile('
(.*?)', re.DOTALL).findall(data) - + matches = scrapertools.find_multiple_matches(data, '(.*?)') aux_action = action for url, title in matches: if item.extra != "destacados" and "Cosmos (Carl Sagan)" in title: @@ -60,61 +84,46 @@ def seccion(item): else: action = aux_action itemlist.append(item.clone(title=title, url=url, action=action, fulltitle=title)) - return itemlist -def listado(item): +def videos(item): logger.info() - itemlist = [] - data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", data) - - pagination = scrapertools.find_single_match(data, '
\d' '') - patron = '
    (.*?)
' data = scrapertools.find_single_match(data, patron) - matches = re.compile('
(.*?).*?Categorías') - matches = re.compile('(.*?)', re.DOTALL).findall(data) - + matches = scrapertools.find_multiple_matches(data, '(.*?)') for url, title in matches: - itemlist.append(item.clone(title=title, url=url, action="listado", fulltitle=title)) - + itemlist.append(item.clone(title=title, url=url, action="videos", fulltitle=title)) return itemlist def search(item, texto): logger.info() - texto = texto.replace(" ", "+") - try: item.url = HOST + "?s=%s" % texto - return listado(item) + return videos(item) # Se captura la excepción, para no interrumpir al buscador global si un canal falla except: import sys @@ -125,37 +134,21 @@ def search(item, texto): def findvideos(item): logger.info() - itemlist = [] - data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", data) - - if item.fulltitle == "Cosmos (Carl Sagan)": - - matches = scrapertools.find_multiple_matches(data, - '

(.*?)