From c3ca5b472f02ef641fcefa2529e6e396aeca8ade Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 23 Dec 2017 09:27:50 -0500 Subject: [PATCH 01/34] yaske: fix videoteca --- plugin.video.alfa/channels/yaske.py | 38 +++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/plugin.video.alfa/channels/yaske.py b/plugin.video.alfa/channels/yaske.py index 186e9708..a10a93d0 100644 --- a/plugin.video.alfa/channels/yaske.py +++ b/plugin.video.alfa/channels/yaske.py @@ -82,11 +82,11 @@ def series(item): for scrapedurl, scrapedthumbnail, scrapedepisodes, year, scrapedtitle in matches: scrapedepisodes.strip() year = year.strip() - contentTitle = scrapertools.htmlclean(scrapedtitle.strip()) - title = "%s (%s)" %(contentTitle, scrapedepisodes) + contentSerieName = scrapertools.htmlclean(scrapedtitle.strip()) + title = "%s (%s)" %(contentSerieName, scrapedepisodes) if "series" in scrapedurl: itemlist.append(Item(channel=item.channel, action="temporadas", title=title, url=scrapedurl, - thumbnail=scrapedthumbnail, show=contentTitle, + thumbnail=scrapedthumbnail, contentSerieName=contentSerieName, infoLabels={"year": year}, text_color=color1)) # Obtenemos los datos basicos de todas las peliculas mediante multihilos tmdb.set_infoLabels(itemlist, True) @@ -123,6 +123,22 @@ def temporadas(item): url = HOST_TVSHOWS_TPL )) tmdb.set_infoLabels(itemlist) + if config.get_videolibrary_support(): + itemlist.append(Item(channel=item.channel, title ="")) + itemlist.append(item.clone(action = "add_serie_to_library", + channel = item.channel, + extra = "get_episodes", + title = '[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]', + url = item.url + )) + return itemlist + +def get_episodes(item): + logger.info() + itemlist = [] + templist = temporadas(item) + for tempitem in templist: + itemlist += capitulos(tempitem) return itemlist @@ -138,13 +154,13 @@ def capitulos(item): for scrapedurl, scrapedtitle, scrapeddate in matches: scrapedtitle = scrapedtitle + " (%s)" %scrapeddate episode = scrapertools.find_single_match(scrapedurl, "capitulo-([0-9]+)") - query = item.show + " " + str(item.infoLabels["season"]) + "x" + episode.rjust(2, "0") + query = item.contentSerieName + " " + scrapertools.find_single_match(scrapedtitle, "\w+") item.infoLabels["episode"] = episode itemlist.append(item.clone(action = "findvideos", - title = scrapedtitle.decode("unicode-escape"), - query = query.replace(" ","+"), - url = scrapedurl.replace("\\","") - )) + title = scrapedtitle.decode("unicode-escape"), + query = query.replace(" ","+"), + url = scrapedurl.replace("\\","") + )) tmdb.set_infoLabels(itemlist) return itemlist @@ -237,8 +253,8 @@ def peliculas(item): contentTitle = scrapertools.htmlclean(scrapedtitle.strip()) title = "%s %s" % (contentTitle, idiomas_disponibles) itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=scrapedurl, - thumbnail=scrapedthumbnail, contentTitle=contentTitle, - infoLabels={"year": year}, text_color=color1, query = query)) + thumbnail=scrapedthumbnail, contentTitle=contentTitle, query = query, + infoLabels={"year": year}, text_color=color1)) # Obtenemos los datos basicos de todas las peliculas mediante multihilos tmdb.set_infoLabels(itemlist) @@ -281,6 +297,8 @@ def findvideos(item): data = httptools.downloadpage(item.url).data patron = '(?s)id="online".*?server="([^"]+)"' mserver = scrapertools.find_single_match(data, patron) + if not item.query: + item.query = scrapertools.find_single_match(item.url, "peliculas.*?/[0-9]+/([^/]+)").replace("-","+") url_m = "http://olimpo.link/?q=%s&server=%s" %(item.query, mserver) patron = 'class="favicon.*?domain=(?:www\.|)([^\.]+).*?text-overflow.*?href="([^"]+).*?' patron += '\[([^\]]+)\].*?\[([^\]]+)\]' From 0738a82372fa64877f52e3b1b60cf7a188b977c1 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 23 Dec 2017 09:29:39 -0500 Subject: [PATCH 02/34] divxatope: fix --- plugin.video.alfa/channels/divxatope.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugin.video.alfa/channels/divxatope.py b/plugin.video.alfa/channels/divxatope.py index 276dd858..d1aae940 100644 --- a/plugin.video.alfa/channels/divxatope.py +++ b/plugin.video.alfa/channels/divxatope.py @@ -260,14 +260,16 @@ def findvideos(item): item.plot = scrapertools.find_single_match(data, '
(.*?)
') item.plot = scrapertools.htmlclean(item.plot).strip() item.contentPlot = item.plot - - link = scrapertools.find_single_match(data, 'location\.href.*?=.*?"http:\/\/(?:tumejorserie|tumejorjuego).*?link=(.*?)"') - if link != "": - link = "http://www.divxatope1.com/" + link - logger.info("torrent=" + link) + al_url_fa = scrapertools.find_single_match(data, 'location\.href.*?=.*?"http:\/\/(?:tumejorserie|tumejorjuego).*?link=(.*?)"') + if al_url_fa == "": + al_url_fa = scrapertools.find_single_match(data, + 'location\.href.*?=.*?"http:\/\/divxatope1.com/(.*?)"') + if al_url_fa != "": + al_url_fa = "http://www.divxatope1.com/" + al_url_fa + logger.info("torrent=" + al_url_fa) itemlist.append( Item(channel=item.channel, action="play", server="torrent", title="Vídeo en torrent", fulltitle=item.title, - url=link, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False, + url=al_url_fa, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False, parentContent=item)) patron = '
([^<]+)<\/div[^<]+
([^<]+)' From de5eda5477853a45a5102271a76a2e3d131f6e46 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 23 Dec 2017 10:42:57 -0500 Subject: [PATCH 03/34] Update yaske.py --- plugin.video.alfa/channels/yaske.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/channels/yaske.py b/plugin.video.alfa/channels/yaske.py index a10a93d0..b81aa810 100644 --- a/plugin.video.alfa/channels/yaske.py +++ b/plugin.video.alfa/channels/yaske.py @@ -127,13 +127,13 @@ def temporadas(item): itemlist.append(Item(channel=item.channel, title ="")) itemlist.append(item.clone(action = "add_serie_to_library", channel = item.channel, - extra = "get_episodes", + extra = "episodios", title = '[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]', url = item.url )) return itemlist -def get_episodes(item): +def episodios(item): logger.info() itemlist = [] templist = temporadas(item) From 87e8ee4d46caeefce68fafd10be13dc10efd4f4a Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 26 Dec 2017 17:11:15 -0500 Subject: [PATCH 04/34] javtasty: fix patron y host --- plugin.video.alfa/channels/javtasty.py | 53 ++++++++------------------ 1 file changed, 16 insertions(+), 37 deletions(-) diff --git a/plugin.video.alfa/channels/javtasty.py b/plugin.video.alfa/channels/javtasty.py index 5d56edfe..c35c1a6b 100755 --- a/plugin.video.alfa/channels/javtasty.py +++ b/plugin.video.alfa/channels/javtasty.py @@ -6,21 +6,18 @@ from core import httptools from core import scrapertools from platformcode import config, logger -host = "http://www.javtasty.com" +host = "https://www.javwhores.com" def mainlist(item): logger.info() itemlist = [] - - itemlist.append(item.clone(action="lista", title="Nuevos Vídeos", url=host + "/videos")) - itemlist.append(item.clone(action="lista", title="Mejor Valorados", url=host + "/videos?o=tr")) - itemlist.append(item.clone(action="lista", title="Más Vistos", url=host + "/videos?o=mv")) - itemlist.append(item.clone(action="lista", title="Ordenados por duración", url=host + "/videos?o=lg")) - itemlist.append(item.clone(action="categorias", title="Categorías", url=host + "/categories")) + itemlist.append(item.clone(action="lista", title="Nuevos Vídeos", url=host + "/latest-updates/")) + itemlist.append(item.clone(action="lista", title="Mejor Valorados", url=host + "/top-rated/")) + itemlist.append(item.clone(action="lista", title="Más Vistos", url=host + "/most-popular/")) + itemlist.append(item.clone(action="categorias", title="Categorías", url=host + "/categories/")) itemlist.append(item.clone(title="Buscar...", action="search")) itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) - return itemlist @@ -33,7 +30,7 @@ def configuracion(item): def search(item, texto): logger.info() - item.url = "%s/search?search_query=%s&search_type=videos" % (host, texto) + item.url = "%s/search/%s/" % (host, texto) item.extra = texto try: return lista(item) @@ -48,83 +45,66 @@ def search(item, texto): def lista(item): logger.info() itemlist = [] - - # Descarga la pagina data = httptools.downloadpage(item.url).data - action = "play" if config.get_setting("menu_info", "javtasty"): action = "menu_info" - - # Extrae las entradas - patron = '
(?:.*?|)\s*([^<]+)<' + patron = 'div class="video-item.*?href="([^"]+)".*?' + patron += 'data-original="([^"]+)" ' + patron += 'alt="([^"]+)"(.*?)fa fa-clock-o">([^<]+)<' matches = scrapertools.find_multiple_matches(data, patron) for scrapedurl, scrapedthumbnail, scrapedtitle, quality, duration in matches: scrapedurl = urlparse.urljoin(host, scrapedurl) scrapedtitle = scrapedtitle.strip() if duration: scrapedtitle = "%s - %s" % (duration.strip(), scrapedtitle) - if '>HD<' in quality: scrapedtitle += " [COLOR red][HD][/COLOR]" - itemlist.append(item.clone(action=action, title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, fanart=scrapedthumbnail)) - # Extrae la marca de siguiente página - next_page = scrapertools.find_single_match(data, 'href="([^"]+)" class="prevnext">') + next_page = scrapertools.find_single_match(data, 'next">') matches = scrapertools.find_multiple_matches(bloque, 'src="([^"]+)"') for i, img in enumerate(matches): @@ -132,5 +112,4 @@ def menu_info(item): continue title = "Imagen %s" % (str(i)) itemlist.append(item.clone(action="", title=title, thumbnail=img, fanart=img)) - return itemlist From bc318f7a18717407412a23810664da0589009e84 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 26 Dec 2017 17:18:19 -0500 Subject: [PATCH 05/34] bitp: fix patron --- plugin.video.alfa/servers/bitp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/servers/bitp.py b/plugin.video.alfa/servers/bitp.py index 7ca99b97..2070f04c 100644 --- a/plugin.video.alfa/servers/bitp.py +++ b/plugin.video.alfa/servers/bitp.py @@ -23,7 +23,7 @@ def get_video_url(page_url, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) video_urls = [] data = httptools.downloadpage(page_url).data - videourl = scrapertools.find_multiple_matches(data, 'file":"([^"]+).*?label":"([^"]+)') + videourl = scrapertools.find_multiple_matches(data, ' Date: Tue, 26 Dec 2017 17:44:32 -0500 Subject: [PATCH 06/34] serviporno: fix patron --- plugin.video.alfa/channels/serviporno.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugin.video.alfa/channels/serviporno.py b/plugin.video.alfa/channels/serviporno.py index bd9f0189..46523670 100755 --- a/plugin.video.alfa/channels/serviporno.py +++ b/plugin.video.alfa/channels/serviporno.py @@ -3,16 +3,18 @@ import re import urlparse +from core import httptools from core import scrapertools from core.item import Item from platformcode import logger +host = "https://www.serviporno.com" def mainlist(item): logger.info() itemlist = [] itemlist.append( - Item(channel=item.channel, action="videos", title="Útimos videos", url="http://www.serviporno.com/")) + Item(channel=item.channel, action="videos", title="Útimos videos", url= host)) itemlist.append( Item(channel=item.channel, action="videos", title="Más vistos", url="http://www.serviporno.com/mas-vistos/")) itemlist.append( @@ -43,15 +45,14 @@ def search(item, texto): def videos(item): logger.info() itemlist = [] - data = scrapertools.downloadpage(item.url) + data = httptools.downloadpage(item.url).data - patron = '
.*?' + patron = '(?s)
.*?' patron += '
.*?' - patron += '.*?' - patron += '[^' - - matches = re.compile(patron, re.DOTALL).findall(data) - logger.info(str(matches)) + patron += ' Date: Tue, 26 Dec 2017 17:50:19 -0500 Subject: [PATCH 07/34] videoteca: fix por temporadas --- plugin.video.alfa/core/videolibrarytools.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugin.video.alfa/core/videolibrarytools.py b/plugin.video.alfa/core/videolibrarytools.py index 964f00bf..2fcae901 100644 --- a/plugin.video.alfa/core/videolibrarytools.py +++ b/plugin.video.alfa/core/videolibrarytools.py @@ -268,8 +268,9 @@ def save_tvshow(item, episodelist): # Creamos tvshow.nfo, si no existe, con la head_nfo, info de la serie y marcas de episodios vistos logger.info("Creando tvshow.nfo: " + tvshow_path) head_nfo = scraper.get_nfo(item) - - item_tvshow = Item(title=item.contentTitle, channel="videolibrary", action="get_seasons", + item.infoLabels['mediatype'] = "tvshow" + item.infoLabels['title'] = item.contentSerieName + item_tvshow = Item(title=item.contentSerieName, channel="videolibrary", action="get_seasons", fanart=item.infoLabels['fanart'], thumbnail=item.infoLabels['thumbnail'], infoLabels=item.infoLabels, path=path.replace(TVSHOWS_PATH, "")) item_tvshow.library_playcounts = {} @@ -294,7 +295,6 @@ def save_tvshow(item, episodelist): if item.channel != "downloads": item_tvshow.active = 1 # para que se actualice a diario cuando se llame a videolibrary_service - filetools.write(tvshow_path, head_nfo + item_tvshow.tojson()) if not episodelist: @@ -439,7 +439,7 @@ def save_episodes(path, episodelist, serie, silent=False, overwrite=True): news_in_playcounts["season %s" % e.contentSeason] = 0 # Marcamos la serie como no vista # logger.debug("serie " + serie.tostring('\n')) - news_in_playcounts[serie.contentTitle] = 0 + news_in_playcounts[serie.contentSerieName] = 0 else: logger.info("Sobreescrito: %s" % json_path) From b47db3ae041299170ea3f0bdb7fac09d9feff9e6 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 12:36:38 -0500 Subject: [PATCH 08/34] gvideo: actualizado test_video_exists --- plugin.video.alfa/servers/gvideo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/servers/gvideo.py b/plugin.video.alfa/servers/gvideo.py index 0020c425..08ecaaa4 100644 --- a/plugin.video.alfa/servers/gvideo.py +++ b/plugin.video.alfa/servers/gvideo.py @@ -9,8 +9,6 @@ from platformcode import logger def test_video_exists(page_url): - if 'googleusercontent' in page_url: - return True, "" response = httptools.downloadpage(page_url, cookies=False, headers={"Referer": page_url}) if "no+existe" in response.data: return False, "[gvideo] El video no existe o ha sido borrado" @@ -22,6 +20,8 @@ def test_video_exists(page_url): return False, "[gvideo] Se ha producido un error en el reproductor de google" if "No+se+puede+procesar+este" in response.data: return False, "[gvideo] No se puede procesar este video" + if response.code == 429: + return False, "[gvideo] Demasiadas conexiones al servidor, inténtelo despues" return True, "" From 2da412890ed58a7f20ce25fd3bd7afd67b5809dd Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 12:49:47 -0500 Subject: [PATCH 09/34] Delete divxstage.json --- plugin.video.alfa/servers/divxstage.json | 42 ------------------------ 1 file changed, 42 deletions(-) delete mode 100755 plugin.video.alfa/servers/divxstage.json diff --git a/plugin.video.alfa/servers/divxstage.json b/plugin.video.alfa/servers/divxstage.json deleted file mode 100755 index 0b417fb4..00000000 --- a/plugin.video.alfa/servers/divxstage.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(?:divxstage|cloudtime).[^/]+/video/([^\"' ]+)", - "url": "http://www.cloudtime.to/embed/?v=\\1" - } - ] - }, - "free": true, - "id": "divxstage", - "name": "divxstage", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "server_divxstage.png" -} \ No newline at end of file From 5c699ed8921b3586644a93be21484c45a6596336 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 12:50:37 -0500 Subject: [PATCH 10/34] Delete divxstage.py --- plugin.video.alfa/servers/divxstage.py | 46 -------------------------- 1 file changed, 46 deletions(-) delete mode 100755 plugin.video.alfa/servers/divxstage.py diff --git a/plugin.video.alfa/servers/divxstage.py b/plugin.video.alfa/servers/divxstage.py deleted file mode 100755 index f201e419..00000000 --- a/plugin.video.alfa/servers/divxstage.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from core import httptools -from core import scrapertools -from platformcode import logger - -host = "http://www.cloudtime.to" - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url.replace('/embed/?v=', '/video/')).data - - if "This file no longer exists" in data: - return False, "El archivo no existe
en divxstage o ha sido borrado." - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - if "divxstage.net" in page_url: - page_url = page_url.replace("divxstage.net", "cloudtime.to") - - data = httptools.downloadpage(page_url).data - - video_urls = [] - videourls = scrapertools.find_multiple_matches(data, 'src\s*:\s*[\'"]([^\'"]+)[\'"]') - if not videourls: - videourls = scrapertools.find_multiple_matches(data, ' Date: Wed, 27 Dec 2017 12:56:24 -0500 Subject: [PATCH 11/34] Delete idowatch.json --- plugin.video.alfa/servers/idowatch.json | 42 ------------------------- 1 file changed, 42 deletions(-) delete mode 100755 plugin.video.alfa/servers/idowatch.json diff --git a/plugin.video.alfa/servers/idowatch.json b/plugin.video.alfa/servers/idowatch.json deleted file mode 100755 index b64ca14d..00000000 --- a/plugin.video.alfa/servers/idowatch.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "idowatch.net/(?:embed-)?([a-z0-9]+)", - "url": "http://idowatch.net/\\1.html" - } - ] - }, - "free": true, - "id": "idowatch", - "name": "idowatch", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "server_idowatch.png" -} \ No newline at end of file From 245190ca70e1ea5fafd93dccd76b905faf66243e Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 12:56:42 -0500 Subject: [PATCH 12/34] Delete idowatch.py --- plugin.video.alfa/servers/idowatch.py | 34 --------------------------- 1 file changed, 34 deletions(-) delete mode 100755 plugin.video.alfa/servers/idowatch.py diff --git a/plugin.video.alfa/servers/idowatch.py b/plugin.video.alfa/servers/idowatch.py deleted file mode 100755 index 235ce63f..00000000 --- a/plugin.video.alfa/servers/idowatch.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import scrapertools -from lib import jsunpack -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = scrapertools.cache_page(page_url) - if "File Not Found" in data: - return False, "[Idowatch] El archivo no existe o ha sido borrado" - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - data = scrapertools.cache_page(page_url) - - mediaurl = scrapertools.find_single_match(data, ',{file:(?:\s+|)"([^"]+)"') - if not mediaurl: - matches = scrapertools.find_single_match(data, - "") - matchjs = jsunpack.unpack(matches).replace("\\", "") - mediaurl = scrapertools.find_single_match(matchjs, ',{file:(?:\s+|)"([^"]+)"') - - video_urls = [] - video_urls.append([scrapertools.get_filename_from_url(mediaurl)[-4:] + " [idowatch]", mediaurl]) - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls From 201e7f1e2e69c334e8f594c2217b63a8c4dd76cb Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:09:58 -0500 Subject: [PATCH 13/34] Delete nosvideo.json --- plugin.video.alfa/servers/nosvideo.json | 45 ------------------------- 1 file changed, 45 deletions(-) delete mode 100755 plugin.video.alfa/servers/nosvideo.json diff --git a/plugin.video.alfa/servers/nosvideo.json b/plugin.video.alfa/servers/nosvideo.json deleted file mode 100755 index 605f0027..00000000 --- a/plugin.video.alfa/servers/nosvideo.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "nosvideo.com/(?:\\?v=|vj/video.php\\?u=|)([a-z0-9]+)", - "url": "http://nosvideo.com/vj/videomain.php?u=\\1==530" - }, - { - "pattern": "nosupload.com(/\\?v\\=[a-z0-9]+)", - "url": "http://nosvideo.com\\1" - } - ] - }, - "free": true, - "id": "nosvideo", - "name": "nosvideo", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file From 1fb8db84962f37b582339c5115904ab58599e49b Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:10:17 -0500 Subject: [PATCH 14/34] Delete nosvideo.py --- plugin.video.alfa/servers/nosvideo.py | 41 --------------------------- 1 file changed, 41 deletions(-) delete mode 100755 plugin.video.alfa/servers/nosvideo.py diff --git a/plugin.video.alfa/servers/nosvideo.py b/plugin.video.alfa/servers/nosvideo.py deleted file mode 100755 index 32b67350..00000000 --- a/plugin.video.alfa/servers/nosvideo.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = scrapertools.cache_page(page_url) - - if "404 Page no found" in data: - return False, "[nosvideo] El archivo no existe o ha sido borrado" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - video_urls = [] - - # Lee la URL - data = scrapertools.cache_page(page_url) - urls = scrapertools.find_multiple_matches(data, ":'(http:\/\/.+?(?:v.mp4|.smil))") - urls = set(urls) - - for media_url in urls: - if ".smil" in media_url: - data = scrapertools.downloadpage(media_url) - rtmp = scrapertools.find_single_match(data, ' Date: Wed, 27 Dec 2017 14:11:26 -0500 Subject: [PATCH 15/34] Delete nowdownload.json --- plugin.video.alfa/servers/nowdownload.json | 45 ---------------------- 1 file changed, 45 deletions(-) delete mode 100755 plugin.video.alfa/servers/nowdownload.json diff --git a/plugin.video.alfa/servers/nowdownload.json b/plugin.video.alfa/servers/nowdownload.json deleted file mode 100755 index 8b7f0d89..00000000 --- a/plugin.video.alfa/servers/nowdownload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(nowdownload.\\w{2}]/dl/[a-z0-9]+)", - "url": "http://www.\\1" - } - ] - }, - "free": false, - "id": "nowdownload", - "name": "nowdownload", - "premium": [ - "realdebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "server_nowdownload.png" -} \ No newline at end of file From 6927f1f955c06cc8e43ba3e888624e1070ae32c3 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:11:38 -0500 Subject: [PATCH 16/34] Delete nowdownload.py --- plugin.video.alfa/servers/nowdownload.py | 36 ------------------------ 1 file changed, 36 deletions(-) delete mode 100755 plugin.video.alfa/servers/nowdownload.py diff --git a/plugin.video.alfa/servers/nowdownload.py b/plugin.video.alfa/servers/nowdownload.py deleted file mode 100755 index 8e5563b3..00000000 --- a/plugin.video.alfa/servers/nowdownload.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - ''' -
Download Now - ''' - data = scrapertools.cache_page(page_url) - logger.debug("data:" + data) - try: - url = scrapertools.get_match(data, - ' Download Now') - except: - # $.get("/api/token.php?token=7e1ab09df2775dbea02506e1a2651883"); - token = scrapertools.get_match(data, '(/api/token.php\?token=[^"]*)') - logger.debug("token:" + token) - d = scrapertools.cache_page("http://www.nowdownload.co" + token) - url = scrapertools.get_match(data, 'expiryText: \'Click here to download ! - url = scrapertools.get_match(data, 'Click here to download !') - logger.debug("url_final:" + url) - - video_urls = [url] - return video_urls From b5083d16b5609b97348cdb8bb2007298bf9a9cc2 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:14:05 -0500 Subject: [PATCH 17/34] Delete pcloud.json --- plugin.video.alfa/servers/pcloud.json | 32 --------------------------- 1 file changed, 32 deletions(-) delete mode 100755 plugin.video.alfa/servers/pcloud.json diff --git a/plugin.video.alfa/servers/pcloud.json b/plugin.video.alfa/servers/pcloud.json deleted file mode 100755 index 88fd42e4..00000000 --- a/plugin.video.alfa/servers/pcloud.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "active": true, - "free": true, - "id": "pcloud", - "name": "pcloud", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file From 76170820bbd0e6794241a0c0facc211b7598d66b Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:14:14 -0500 Subject: [PATCH 18/34] Delete pcloud.py --- plugin.video.alfa/servers/pcloud.py | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100755 plugin.video.alfa/servers/pcloud.py diff --git a/plugin.video.alfa/servers/pcloud.py b/plugin.video.alfa/servers/pcloud.py deleted file mode 100755 index cb97aaff..00000000 --- a/plugin.video.alfa/servers/pcloud.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = scrapertools.cache_page(page_url) - if "Invalid link" in data: return False, "[pCloud] El archivo no existe o ha sido borrado" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - - data = scrapertools.cache_page(page_url) - media_url = scrapertools.find_single_match(data, '"downloadlink":.*?"([^"]+)"') - media_url = media_url.replace("\\", "") - - video_urls = [] - video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [pCloud]", media_url]) - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls From 50c42fbc4b32e7796c4bcedefa4e99ed72e8b608 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:16:39 -0500 Subject: [PATCH 19/34] Delete stagevu.json --- plugin.video.alfa/servers/stagevu.json | 49 -------------------------- 1 file changed, 49 deletions(-) delete mode 100755 plugin.video.alfa/servers/stagevu.json diff --git a/plugin.video.alfa/servers/stagevu.json b/plugin.video.alfa/servers/stagevu.json deleted file mode 100755 index 8040f2c2..00000000 --- a/plugin.video.alfa/servers/stagevu.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(http://stagevu.com/video/[A-Z0-9a-z]+)", - "url": "\\1" - }, - { - "pattern": "http://stagevu.com.*?uid\\=([A-Z0-9a-z]+)", - "url": "http://stagevu.com/video/\\1" - }, - { - "pattern": "http://[^\\.]+\\.stagevu.com/v/[^/]+/(.*?).avi", - "url": "http://stagevu.com/video/\\1" - } - ] - }, - "free": true, - "id": "stagevu", - "name": "stagevu", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file From ee80f9c4d23b1eb88913fd347b800ce6e1545c20 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:16:59 -0500 Subject: [PATCH 20/34] Delete stagevu.py --- plugin.video.alfa/servers/stagevu.py | 33 ---------------------------- 1 file changed, 33 deletions(-) delete mode 100755 plugin.video.alfa/servers/stagevu.py diff --git a/plugin.video.alfa/servers/stagevu.py b/plugin.video.alfa/servers/stagevu.py deleted file mode 100755 index 5b44e05d..00000000 --- a/plugin.video.alfa/servers/stagevu.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from core import scrapertools -from platformcode import logger - - -# Returns an array of possible video url's from the page_url -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - video_urls = [] - - # Descarga la página del vídeo - data = scrapertools.cache_page(page_url) - - # Busca el vídeo de dos formas distintas - patronvideos = ' 0: - video_urls = [["[stagevu]", matches[0]]] - else: - patronvideos = 'src="([^"]+stagevu.com/[^i][^"]+)"' # Forma src="XXXstagevu.com/ y algo distinto de i para evitar images e includes - matches = re.findall(patronvideos, data) - if len(matches) > 0: - video_urls = [["[stagevu]", matches[0]]] - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls From 841f5e5f3d3c3f7a53d86312698dca293a0230a9 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:17:20 -0500 Subject: [PATCH 21/34] Delete stormo.json --- plugin.video.alfa/servers/stormo.json | 42 --------------------------- 1 file changed, 42 deletions(-) delete mode 100755 plugin.video.alfa/servers/stormo.json diff --git a/plugin.video.alfa/servers/stormo.json b/plugin.video.alfa/servers/stormo.json deleted file mode 100755 index e139a61c..00000000 --- a/plugin.video.alfa/servers/stormo.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "stormo.tv/(?:videos/|embed/)([0-9]+)", - "url": "http://stormo.tv/embed/\\1" - } - ] - }, - "free": true, - "id": "stormo", - "name": "stormo", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "http://i.imgur.com/mTYCw5E.png" -} \ No newline at end of file From f4bc398f9e56fcc2596ffe2817e28df35ca7de5e Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:17:35 -0500 Subject: [PATCH 22/34] Delete stormo.py --- plugin.video.alfa/servers/stormo.py | 33 ----------------------------- 1 file changed, 33 deletions(-) delete mode 100755 plugin.video.alfa/servers/stormo.py diff --git a/plugin.video.alfa/servers/stormo.py b/plugin.video.alfa/servers/stormo.py deleted file mode 100755 index e2ad5511..00000000 --- a/plugin.video.alfa/servers/stormo.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import httptools -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - response = httptools.downloadpage(page_url) - if "video_error.mp4" in response.data: - return False, "[Stormo] El archivo no existe o ha sido borrado" - if response.code == 451: - return False, "[Stormo] El archivo ha sido borrado por problemas legales." - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info(" url=" + page_url) - - video_urls = [] - data = httptools.downloadpage(page_url).data - media_url = scrapertools.find_single_match(data, "file\s*:\s*['\"]([^'\"]+)['\"]") - if media_url.endswith("/"): - media_url = media_url[:-1] - - video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [stormo]", media_url]) - for video_url in video_urls: - logger.info(" %s - %s" % (video_url[0], video_url[1])) - - return video_urls From 16a530a9d4377d8447bec981504da1b2a379511e Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:20:25 -0500 Subject: [PATCH 23/34] Delete turbovideos.json --- plugin.video.alfa/servers/turbovideos.json | 41 ---------------------- 1 file changed, 41 deletions(-) delete mode 100755 plugin.video.alfa/servers/turbovideos.json diff --git a/plugin.video.alfa/servers/turbovideos.json b/plugin.video.alfa/servers/turbovideos.json deleted file mode 100755 index ec36ef6d..00000000 --- a/plugin.video.alfa/servers/turbovideos.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "turbovideos.net/embed-([a-z0-9A-Z]+)", - "url": "http://turbovideos.net/embed-\\1.html" - } - ] - }, - "free": true, - "id": "turbovideos", - "name": "turbovideos", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "Incluir en lista negra", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "Incluir en lista de favoritos", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file From 14fce6ebac7ffc8215b78b7fb00e90a5bfb981b3 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:20:39 -0500 Subject: [PATCH 24/34] Delete turbovideos.py --- plugin.video.alfa/servers/turbovideos.py | 38 ------------------------ 1 file changed, 38 deletions(-) delete mode 100755 plugin.video.alfa/servers/turbovideos.py diff --git a/plugin.video.alfa/servers/turbovideos.py b/plugin.video.alfa/servers/turbovideos.py deleted file mode 100755 index 8a5b6ca6..00000000 --- a/plugin.video.alfa/servers/turbovideos.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import scrapertools -from lib import jsunpack -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - - if "embed" not in page_url: - page_url = page_url.replace("http://turbovideos.net/", "http://turbovideos.net/embed-") + ".html" - - data = scrapertools.cache_page(page_url) - logger.info("data=" + data) - - data = scrapertools.find_single_match(data, - "") - logger.info("data=" + data) - - data = jsunpack.unpack(data) - logger.info("data=" + data) - - video_urls = [] - # {file:"http://ultra.turbovideos.net/73ciplxta26xsbj2bqtkqcd4rtyxhgx5s6fvyzed7ocf4go2lxjnd6e5kjza/v.mp4",label:"360" - media_urls = scrapertools.find_multiple_matches(data, 'file:"([^"]+)",label:"([^"]+)"') - for media_url, label in media_urls: - - if not media_url.endswith("srt"): - video_urls.append( - [scrapertools.get_filename_from_url(media_url)[-4:] + " " + label + " [turbovideos]", media_url]) - - return video_urls From b7787e0ee5764e78956aecb4557c735e6b68cbbf Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 14:56:09 -0500 Subject: [PATCH 25/34] bitp: fix patron --- plugin.video.alfa/servers/bitp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/servers/bitp.json b/plugin.video.alfa/servers/bitp.json index c0ef601f..8068e544 100644 --- a/plugin.video.alfa/servers/bitp.json +++ b/plugin.video.alfa/servers/bitp.json @@ -8,7 +8,7 @@ "url": "https://www.bitporno.com/e/\\1" }, { - "pattern": "raptu.com/(?:\\?v=|embed/|e/)([A-z0-9]+)", + "pattern": "raptu.com/(?:\\?v=|embed/|e/|v/)([A-z0-9]+)", "url": "https://www.bitporno.com/e/\\1" } ] From 239a73219e26e58774f17dd93db6b92923846e42 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Wed, 27 Dec 2017 15:08:38 -0500 Subject: [PATCH 26/34] vk: actualizado test_video_exists --- plugin.video.alfa/servers/vk.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/plugin.video.alfa/servers/vk.py b/plugin.video.alfa/servers/vk.py index d3e8cb8e..b5062745 100755 --- a/plugin.video.alfa/servers/vk.py +++ b/plugin.video.alfa/servers/vk.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- +from core import httptools from core import scrapertools from platformcode import logger @@ -7,35 +8,28 @@ from platformcode import logger def test_video_exists(page_url): logger.info("(page_url='%s')" % page_url) - data = scrapertools.cache_page(page_url) + data = httptools.downloadpage(page_url).data - if "This video has been removed from public access" in data: + if "This video has been removed from public access" in data or "Video not found." in data: return False, "El archivo ya no esta disponible
en VK (ha sido borrado)" - else: - return True, "" + return True, "" # Returns an array of possible video url's from the page_url def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) - video_urls = [] try: oid, id = scrapertools.find_single_match(page_url, 'oid=([^&]+)&id=(\d+)') except: oid, id = scrapertools.find_single_match(page_url, 'video(\d+)_(\d+)') - - from core import httptools headers = {'User-Agent': 'Mozilla/5.0'} url = "http://vk.com/al_video.php?act=show_inline&al=1&video=%s_%s" % (oid, id) data = httptools.downloadpage(url, headers=headers).data - matches = scrapertools.find_multiple_matches(data, ' Date: Thu, 28 Dec 2017 08:25:46 -0500 Subject: [PATCH 27/34] Delete teledocumentales.json --- plugin.video.alfa/channels/teledocumentales.json | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100755 plugin.video.alfa/channels/teledocumentales.json diff --git a/plugin.video.alfa/channels/teledocumentales.json b/plugin.video.alfa/channels/teledocumentales.json deleted file mode 100755 index 0e3c12ea..00000000 --- a/plugin.video.alfa/channels/teledocumentales.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "teledocumentales", - "name": "Teledocumentales", - "active": true, - "adult": false, - "language": ["cast", "lat"], - "banner": "teledocumentales.png", - "thumbnail": "teledocumentales.png", - "categories": [ - "documentary" - ] -} \ No newline at end of file From 53911524085c3e6a9615aaba8c289c053c3de7f9 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Thu, 28 Dec 2017 08:25:54 -0500 Subject: [PATCH 28/34] Delete teledocumentales.py --- .../channels/teledocumentales.py | 109 ------------------ 1 file changed, 109 deletions(-) delete mode 100755 plugin.video.alfa/channels/teledocumentales.py diff --git a/plugin.video.alfa/channels/teledocumentales.py b/plugin.video.alfa/channels/teledocumentales.py deleted file mode 100755 index 4611a07b..00000000 --- a/plugin.video.alfa/channels/teledocumentales.py +++ /dev/null @@ -1,109 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import urlparse - -from core import scrapertools -from core import servertools -from core.item import Item -from platformcode import logger - - -def mainlist(item): - logger.info() - - itemlist = [] - itemlist.append(Item(channel=item.channel, action="ultimo", title="Últimos Documentales", - url="http://www.teledocumentales.com/", viewmode="movie_with_plot")) - itemlist.append(Item(channel=item.channel, action="ListaCat", title="Listado por Genero", - url="http://www.teledocumentales.com/")) - - return itemlist - - -def ultimo(item): - logger.info() - itemlist = [] - - data = scrapertools.cachePage(item.url) - - # Extrae las entradas - patron = '
' - matches = re.compile(patron, re.DOTALL).findall(data) - print "manolo" - print matches - - for match in matches: - scrapedtitle = scrapertools.get_match(match, '([^([^<]+)
') - itemlist.append( - Item(channel=item.channel, action="play", title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, - plot=scrapedplot, fanart=scrapedthumbnail)) - - # Extrae la marca de siguiente pagina - try: - next_page = scrapertools.get_match(data, '
Transformers: Dark of the Moon 2011 - #
- - patron = '