(.*?)
' + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedthumb, scrapedtitle, year, lang_data, scrapedplot in matches: + + title = scrapedtitle + url = scrapedurl + thumbnail = scrapedthumb + plot = scrapedplot + language = get_language(lang_data) + if language: + action = 'findvideos' + else: + action = 'seasons' + + new_item=Item(channel=item.channel, title=title, url=url, thumbnail=thumbnail, plot=plot, + action=action, + language=language, infoLabels={'year':year}) + if new_item.action == 'findvideos': + new_item.contentTitle = new_item.title + else: + new_item.contentSerieName = new_item.title + + itemlist.append(new_item) + + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + return itemlist + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + if categoria in ['peliculas']: + item.url = host + 'movies' + elif categoria == 'infantiles': + item.url = host + 'genre/animacion/' + elif categoria == 'terror': + item.url = host + 'genre/terror/' + item.type='movies' + itemlist = list_all(item) + if itemlist[-1].title == 'Siguiente >>': + itemlist.pop() + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist From 38e27aa01469285c597b1e4b80d79d1d8345e550 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 15 May 2018 14:53:12 -0500 Subject: [PATCH 09/26] estadepelis: fix From 8b2c0adbf4218378ac7f2945b60134d39a859441 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 15 May 2018 14:53:59 -0500 Subject: [PATCH 10/26] estadepelis: fix --- plugin.video.alfa/channels/estadepelis.json | 3 +- plugin.video.alfa/channels/estadepelis.py | 40 ++++++++------------- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/plugin.video.alfa/channels/estadepelis.json b/plugin.video.alfa/channels/estadepelis.json index 1bc265be..ff8f2a95 100755 --- a/plugin.video.alfa/channels/estadepelis.json +++ b/plugin.video.alfa/channels/estadepelis.json @@ -28,7 +28,8 @@ "lvalues": [ "No filtrar", "Latino", - "VOS" + "VOS", + "Castellano" ] }, { diff --git a/plugin.video.alfa/channels/estadepelis.py b/plugin.video.alfa/channels/estadepelis.py index 07989ada..325ae879 100755 --- a/plugin.video.alfa/channels/estadepelis.py +++ b/plugin.video.alfa/channels/estadepelis.py @@ -22,7 +22,7 @@ list_quality = [] list_servers = ['yourupload', 'openload', 'sendvid'] vars = { - 'ef5ca18f089cf01316bbc967fa10f72950790c39ef5ca18f089cf01316bbc967fa10f72950790c39': 'http://www.estadepelis.com/', + 'ef5ca18f089cf01316bbc967fa10f72950790c39ef5ca18f089cf01316bbc967fa10f72950790c39': 'http://tawnestdplsnetps.pw/', 'b48699bb49d4550f27879deeb948d4f7d9c5949a8': 'embed', 'JzewJkLlrvcFnLelj2ikbA': 'php?url=', 'p889c6853a117aca83ef9d6523335dc065213ae86': 'player', @@ -194,8 +194,8 @@ def generos(item): itemlist = [] norep = [] data = httptools.downloadpage(item.url).data - - patron = '([^<]+)<\/p>') else: - title = item.contentSerieName + ' (' + server + ') ' + idioma + title = item.contentSerieName + ' (' + server + ') ' + language plot = item.plot thumbnail = servertools.guess_server_thumbnail(title) @@ -399,7 +400,6 @@ def findvideos(item): quality='', language=language )) - logger.debug('url: %s' % url) # Requerido para FilterTools itemlist = filtertools.get_links(itemlist, item, list_language) @@ -423,23 +423,13 @@ def findvideos(item): def play(item): logger.info() itemlist = [] - data = httptools.downloadpage(item.url, add_referer=True).data + data = httptools.downloadpage(item.url).data if 'your' in item.url: item.url = 'http://www.yourupload.com/embed/' + scrapertools.find_single_match(data, 'src=".*?code=(.*?)"') itemlist.append(item) else: - itemlist = servertools.find_video_items(data=data) - if config.get_videolibrary_support() and len(itemlist) > 0: - itemlist.append(Item(channel=item.channel, - title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', - url=item.url, - action="add_pelicula_to_library", - extra="findvideos", - contentTitle=item.contentTitle - )) - return itemlist From 54b3c501e331d4cc5f5c6d573a7d5acf43d3e870 Mon Sep 17 00:00:00 2001 From: thedoctor66 <37449358+thedoctor66@users.noreply.github.com> Date: Fri, 18 May 2018 10:58:06 +0200 Subject: [PATCH 11/26] fix speedvideo by angedam --- plugin.video.alfa/servers/speedvideo.py | 32 +++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/plugin.video.alfa/servers/speedvideo.py b/plugin.video.alfa/servers/speedvideo.py index 506e0c47..795111b5 100755 --- a/plugin.video.alfa/servers/speedvideo.py +++ b/plugin.video.alfa/servers/speedvideo.py @@ -1,34 +1,36 @@ # -*- coding: utf-8 -*- -import base64 - -from core import scrapertools +from core import httptools, scrapertools from platformcode import logger def test_video_exists(page_url): logger.info("(page_url='%s')" % page_url) + data = httptools.downloadpage(page_url).data + + if "File was deleted" in data: + return False, "[speedvideo] Il file non esiste oppure è stato cancellato" + return True, "" -def get_video_url(page_url, premium=False, user="", password="", video_password=""): +def get_video_url(page_url, + premium=False, + user="", + password="", + video_password=""): logger.info("url=" + page_url) video_urls = [] - data = scrapertools.cachePage(page_url) + data = httptools.downloadpage(page_url).data - codif = scrapertools.find_single_match(data, 'var [a-z]+ = ([0-9]+);') - link = scrapertools.find_single_match(data, 'linkfile ="([^"]+)"') - numero = int(codif) + media_urls = scrapertools.find_multiple_matches(data, r"file:[^']'([^']+)',\s*label:[^\"]\"([^\"]+)\"") - # Decrypt link base64 // python version of speedvideo's base64_decode() [javascript] + for media_url, label in media_urls: + media_url = httptools.downloadpage(media_url, only_headers=True, follow_redirects=False).headers.get("location", "") - link1 = link[:numero] - link2 = link[numero + 10:] - link = link1 + link2 - media_url = base64.b64decode(link) - - video_urls.append(["." + media_url.rsplit('.', 1)[1] + ' [speedvideo]', media_url]) + if media_url: + video_urls.append([label + " " + media_url.rsplit('.', 1)[1] + ' [speedvideo]', media_url]) return video_urls From 768dcfb6104a29c2613e429506f9a04f83833d04 Mon Sep 17 00:00:00 2001 From: alaquepasa <39385022+alaquepasa@users.noreply.github.com> Date: Sat, 19 May 2018 12:15:38 +0200 Subject: [PATCH 12/26] [SeriesPapaya] Proteger de error el search() sin resultados --- plugin.video.alfa/channels/seriespapaya.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugin.video.alfa/channels/seriespapaya.py b/plugin.video.alfa/channels/seriespapaya.py index 13d02b25..8a8f09c4 100644 --- a/plugin.video.alfa/channels/seriespapaya.py +++ b/plugin.video.alfa/channels/seriespapaya.py @@ -177,7 +177,10 @@ def search(item, texto): logger.info("texto: %s" % texto) data = httptools.downloadpage(urlparse.urljoin(HOST, "/buscar.php?term=%s" % texto)).data data_dict = jsontools.load(data) - tvshows = data_dict["myData"] + try: + tvshows = data_dict["myData"] + except: + return [] return [item.clone(action="episodios", title=show["titulo"], From beebd679622fc84d4c138907d054cb6a73256b66 Mon Sep 17 00:00:00 2001 From: alaquepasa <39385022+alaquepasa@users.noreply.github.com> Date: Sat, 19 May 2018 12:16:56 +0200 Subject: [PATCH 13/26] =?UTF-8?q?[SeriesPapaya]=20Activar=20busqueda=20glo?= =?UTF-8?q?bal=20por=20defecto=20y=20a=C3=B1adir=20filtrado=20por=20tipo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/channels/seriespapaya.json | 31 +++++++++------- plugin.video.alfa/channels/seriespapaya.py | 39 +++++++++++++------- 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/plugin.video.alfa/channels/seriespapaya.json b/plugin.video.alfa/channels/seriespapaya.json index 7f0acff1..55c10596 100755 --- a/plugin.video.alfa/channels/seriespapaya.json +++ b/plugin.video.alfa/channels/seriespapaya.json @@ -11,6 +11,14 @@ "anime" ], "settings": [ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": true, + "enabled": true, + "visible": true + }, { "id": "filter_languages", "type": "list", @@ -28,20 +36,17 @@ ] }, { - "id": "include_in_global_search", - "type": "bool", - "label": "Incluir en busqueda global", - "default": true, + "id": "filterlinks", + "type": "list", + "label": "Mostrar enlaces de tipo...", + "default": 2, "enabled": true, - "visible": true - }, - { - "id": "include_in_newest_series", - "type": "bool", - "label": "Incluir en Novedades - Episodios de series", - "default": true, - "enabled": true, - "visible": true + "visible": true, + "lvalues": [ + "Solo Descarga", + "Solo Online", + "No filtrar" + ] } ] } diff --git a/plugin.video.alfa/channels/seriespapaya.py b/plugin.video.alfa/channels/seriespapaya.py index 8a8f09c4..bfdab784 100644 --- a/plugin.video.alfa/channels/seriespapaya.py +++ b/plugin.video.alfa/channels/seriespapaya.py @@ -206,23 +206,34 @@ def findvideos(item): links = re.findall(expr, data, re.MULTILINE | re.DOTALL) - itemlist = [item.clone( - action="play", - title="{linkType} en {server} [{lang}] [{quality}] ({uploader}: {date})".format( - linkType="Ver" if linkType != "descargar" else "Descargar", - lang=IDIOMAS.get(lang, lang), - date=date, - server=server.rstrip(), - quality=quality, - uploader=uploader), - server=server.rstrip(), - url=urlparse.urljoin(HOST, url), - language=IDIOMAS.get(lang,lang), - quality=quality - ) for lang, date, server, url, linkType, quality, uploader in links] + itemlist = [] + try: + filtro_enlaces = config.get_setting("filterlinks", item.channel) + except: + filtro_enlaces = 2 + typeListStr = ["Descargar", "Ver"] + for lang, date, server, url, linkType, quality, uploader in links: + linkTypeNum = 0 if linkType == "descargar" else 1 + if filtro_enlaces != 2 and filtro_enlaces != linkTypeNum: + continue + itemlist.append(item.clone( + action="play", + title="{linkType} en {server} [{lang}] [{quality}] ({uploader}: {date})".format( + linkType=typeListStr[linkTypeNum], + lang=IDIOMAS.get(lang, lang), + date=date, + server=server.rstrip(), + quality=quality, + uploader=uploader), + server=server.rstrip(), + url=urlparse.urljoin(HOST, url), + language=IDIOMAS.get(lang,lang), + quality=quality + ) + ) # Requerido para FilterTools From b75bf8537f6d0ac688bb4ac42a86ea1f899bbc82 Mon Sep 17 00:00:00 2001 From: alaquepasa <39385022+alaquepasa@users.noreply.github.com> Date: Sat, 19 May 2018 12:17:45 +0200 Subject: [PATCH 14/26] =?UTF-8?q?[SeriesDanko]=20A=C3=B1adir=20filtrado=20?= =?UTF-8?q?por=20tipo,=20a=C3=B1adir=20en=20novedades,=20recuperar=20filte?= =?UTF-8?q?rtools?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/channels/seriesdanko.json | 23 +++++++++++++++- plugin.video.alfa/channels/seriesdanko.py | 30 ++++++++++++++++----- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/plugin.video.alfa/channels/seriesdanko.json b/plugin.video.alfa/channels/seriesdanko.json index 4e70b493..e90a9e48 100755 --- a/plugin.video.alfa/channels/seriesdanko.json +++ b/plugin.video.alfa/channels/seriesdanko.json @@ -15,7 +15,15 @@ "id": "include_in_global_search", "type": "bool", "label": "Incluir en busqueda global", - "default": false, + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_series", + "type": "bool", + "label": "Incluir en Novedades - Episodios de series", + "default": true, "enabled": true, "visible": true }, @@ -33,6 +41,19 @@ "VO", "VOS" ] + }, + { + "id": "filterlinks", + "type": "list", + "label": "Mostrar enlaces de tipo...", + "default": 2, + "enabled": true, + "visible": true, + "lvalues": [ + "Solo Descarga", + "Solo Online", + "No filtrar" + ] } ] } \ No newline at end of file diff --git a/plugin.video.alfa/channels/seriesdanko.py b/plugin.video.alfa/channels/seriesdanko.py index 858a1ae7..046c9283 100644 --- a/plugin.video.alfa/channels/seriesdanko.py +++ b/plugin.video.alfa/channels/seriesdanko.py @@ -33,12 +33,20 @@ def mainlist(item): itemlist.append(Item(channel=item.channel, title="Buscar...", action="search", url=urlparse.urljoin(HOST, "all.php"))) - #itemlist = filtertools.show_option(itemlist, item.channel, list_idiomas, CALIDADES) + itemlist = filtertools.show_option(itemlist, item.channel, list_idiomas, CALIDADES) autoplay.show_option(item.channel, itemlist) return itemlist +def newest(categoria): + logger.info("categoria: %s" % categoria) + itemlist = [] + + if categoria == 'series': + itemlist = novedades(Item(channel="seriesdanko", title="Novedades", action="novedades", url=HOST)) + + return itemlist def novedades(item): logger.info() @@ -220,7 +228,7 @@ def episodios(item): infoLabels=infoLabels)) - #itemlist = filtertools.get_links(itemlist, item, list_idiomas, CALIDADES) + itemlist = filtertools.get_links(itemlist, item, list_idiomas, CALIDADES) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) # Opción "Añadir esta serie a la videoteca de XBMC" @@ -241,14 +249,24 @@ def findvideos(item): online = re.findall('
-
-
- patron = '