From 2dbc319f993afdd23201718885eacfd4d0d66fb3 Mon Sep 17 00:00:00 2001 From: Kingbox <37674310+lopezvg@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:38:10 +0200 Subject: [PATCH] =?UTF-8?q?Mejoras=20de=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/channels/grantorrent.json | 2 +- plugin.video.alfa/channels/grantorrent.py | 18 ++++++++++-------- plugin.video.alfa/lib/generictools.py | 6 ++++-- plugin.video.alfa/tools/UserAgent.csv | 4 ---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/plugin.video.alfa/channels/grantorrent.json b/plugin.video.alfa/channels/grantorrent.json index 37483759..77043c24 100644 --- a/plugin.video.alfa/channels/grantorrent.json +++ b/plugin.video.alfa/channels/grantorrent.json @@ -70,7 +70,7 @@ "id": "timeout_downloadpage", "type": "list", "label": "Timeout (segs.) en descarga de páginas o verificación de servidores", - "default": 5, + "default": 10, "enabled": true, "visible": true, "lvalues": [ diff --git a/plugin.video.alfa/channels/grantorrent.py b/plugin.video.alfa/channels/grantorrent.py index 9a42f6fb..cc7be7cb 100644 --- a/plugin.video.alfa/channels/grantorrent.py +++ b/plugin.video.alfa/channels/grantorrent.py @@ -30,6 +30,7 @@ channel = "grantorrent" dict_url_seasons = dict() __modo_grafico__ = config.get_setting('modo_grafico', channel) timeout = config.get_setting('timeout_downloadpage', channel) +if timeout <= 5: timeout = timeout*2 modo_serie_temp = config.get_setting('seleccionar_serie_temporada', channel) modo_ultima_temp = config.get_setting('seleccionar_ult_temporadda_activa', channel) @@ -154,10 +155,10 @@ def listado(item): inicio = time.time() # Controlaremos que el proceso no exceda de un tiempo razonable fin = inicio + 5 # Después de este tiempo pintamos (segundos) timeout_search = timeout # Timeout para descargas - if item.extra == 'search': - timeout_search = timeout * 2 # Timeout un poco más largo para las búsquedas - if timeout_search < 5: - timeout_search = 5 # Timeout un poco más largo para las búsquedas + if item.action == 'search': + timeout_search = int(timeout * 1.5) # Timeout un poco más largo para las búsquedas + if timeout_search < 10: + timeout_search = 10 # Timeout un poco más largo para las búsquedas #Máximo num. de líneas permitidas por TMDB (40). Máx de 5 páginas por Itemlist para no degradar el rendimiento. #Si itemlist sigue vacío después de leer 5 páginas, se pueden llegar a leer hasta 10 páginas para encontrar algo @@ -170,12 +171,12 @@ def listado(item): item.post = item.url video_section = '' data = re.sub(r"\n|\r|\t|\s{2}|()", "", httptools.downloadpage(item.post, timeout=timeout_search).data) - video_section = scrapertools.find_single_match(data, '
(.*?
)') + video_section = scrapertools.find_single_match(data, '
(?:\s*
\s*Últi.*?Añadi...\s*<\/div>)?\s*
\s*(
.*?<\/div><\/div>)<\/div>') except: pass cnt_next += 1 - if not data: #Si la web está caída salimos sin dar error + if not data or 'Error 503 Backend fetch failed' in data: #Si la web está caída salimos sin dar error logger.error("ERROR 01: LISTADO: La Web no responde o ha cambiado de URL: " + item.url + " / DATA: " + video_section) itemlist.append(item.clone(action='', title=item.channel.capitalize() + ': ERROR 01: LISTADO:. La Web no responde o ha cambiado de URL. Si la Web está activa, reportar el error con el log')) if len(itemlist) > 1: @@ -217,12 +218,12 @@ def listado(item): cnt_next = 99 #No hay más páginas. Salir del bucle después de procesar ésta # Preparamos un patron que pretende recoger todos los datos significativos del video - patron = '[^"]+)".*?' + patron = '
\s*[^"]+)".*?' if "categoria" in item.url or item.media == "search": #Patron distinto para páginas de Categorías o Búsquedas patron += 'class="attachment-(?P.*?)-(?P[^\s]+)\s.*?' else: patron += 'class="bloque-superior">\s*(?P.*?)\s*
\s*\s*(?P.*?)\s*<\/div>\s?<div class="bloque-date">\s*(?P<date>.*?)\s*<\/div>' + patron += '<div class="bloque-inferior">\s*(?P<title>.*?)\s*<\/div>\s*<div class="bloque-date">\s*(?P<date>.*?)\s*<\/div>\s*<\/div>' matches_alt = re.compile(patron, re.DOTALL).findall(video_section) if not matches_alt and not '<div class="titulo-load-core">0 resultados' in data: #error @@ -231,6 +232,7 @@ def listado(item): item, itemlist = generictools.post_tmdb_listado(item, itemlist) #Llamamos al método para el pintado del error return itemlist #Salimos + if video_section: data = video_section logger.error("ERROR 02: LISTADO: Ha cambiado la estructura de la Web " + " / PATRON: " + patron + " / DATA: " + data) itemlist.append(item.clone(action='', title=item.channel.capitalize() + ': ERROR 02: LISTADO: Ha cambiado la estructura de la Web. Reportar el error con el log')) if len(itemlist) > 1: diff --git a/plugin.video.alfa/lib/generictools.py b/plugin.video.alfa/lib/generictools.py index 3eb5f344..4c2d19c3 100644 --- a/plugin.video.alfa/lib/generictools.py +++ b/plugin.video.alfa/lib/generictools.py @@ -327,6 +327,8 @@ def post_tmdb_listado(item, itemlist): except: pass + __modo_grafico__ = config.get_setting('modo_grafico', item.channel) + # Si TMDB no ha encontrado el vídeo limpiamos el año if item_local.infoLabels['year'] == "-": item_local.infoLabels['year'] = '' @@ -338,7 +340,7 @@ def post_tmdb_listado(item, itemlist): logger.error(item_local) del item_local.infoLabels['tmdb_id'] #puede traer un TMDB-ID erroneo try: - tmdb.set_infoLabels(item_local, True) #pasamos otra vez por TMDB + tmdb.set_infoLabels(item_local, __modo_grafico__) #pasamos otra vez por TMDB except: pass logger.error(item_local) @@ -349,7 +351,7 @@ def post_tmdb_listado(item, itemlist): year = item_local.infoLabels['year'] #salvamos el año por si no tiene éxito la nueva búsqueda item_local.infoLabels['year'] = "-" #reseteo el año try: - tmdb.set_infoLabels(item_local, True) #pasamos otra vez por TMDB + tmdb.set_infoLabels(item_local, __modo_grafico__) #pasamos otra vez por TMDB except: pass if not item_local.infoLabels['tmdb_id']: #ha tenido éxito? diff --git a/plugin.video.alfa/tools/UserAgent.csv b/plugin.video.alfa/tools/UserAgent.csv index 740db0f0..1653f111 100644 --- a/plugin.video.alfa/tools/UserAgent.csv +++ b/plugin.video.alfa/tools/UserAgent.csv @@ -21,7 +21,6 @@ Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8; .NET4.0C; .NE -Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MS-RTC LM 8) Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.0.3705; Media Center PC 3.1; Alexa Toolbar; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.40607) Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) @@ -36,7 +35,6 @@ Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0) Mozilla/4.0 (compatible; MSIE 8.0; Linux i686; en) Opera 10.51 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; ko) Opera 10.53 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; pl) Opera 11.00 -Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; ja) Opera 11.00 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; en) Opera 10.62 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; fr) Opera 11.00 @@ -46,7 +44,6 @@ Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .N Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8; -Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8) Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; msn Optimized Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 3.0) Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2) @@ -373,7 +370,6 @@ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090401 Fi Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090409 Firefox/3.5b4pre Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b5pre) Gecko/20090517 Firefox/3.5b4pre (.NET CLR 3.5.30729) Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.0.16 (.NET CLR 3.5.30729) -Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2b4) Gecko/20091124 Firefox/3.6b4 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b1) Gecko/2007110703 Firefox/3.0b1 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b3) Gecko/2008020514 Firefox/3.0b3