From 46160684b651812394f104f5c47ad29f6ff32d3e Mon Sep 17 00:00:00 2001 From: Intel1 Date: Wed, 9 Aug 2017 15:27:39 -0500 Subject: [PATCH 01/10] Update verpelis.py --- plugin.video.alfa/channels/verpelis.py | 75 +++++++++++--------------- 1 file changed, 31 insertions(+), 44 deletions(-) diff --git a/plugin.video.alfa/channels/verpelis.py b/plugin.video.alfa/channels/verpelis.py index 25810528..ffa9784b 100644 --- a/plugin.video.alfa/channels/verpelis.py +++ b/plugin.video.alfa/channels/verpelis.py @@ -16,8 +16,8 @@ host = "http://ver-pelis.me" def mainlist(item): logger.info() itemlist = [] - i = 0 global i + i = 0 itemlist.append( item.clone(title = "[COLOR oldlace]Películas[/COLOR]", action = "scraper", url = host + "/ver/", thumbnail = "http://imgur.com/36xALWc.png", fanart = "http://imgur.com/53dhEU4.jpg", @@ -49,7 +49,6 @@ def categoria_anno(item): itemlist = [] data = httptools.downloadpage(item.url).data bloque = scrapertools.find_single_match(data, 'mobile_menu.*?(%s.*?)' %item.extra) - logger.info("Intel44 %s" %bloque) patron = '(?is)([^"]+)') + patron = '([^"]+)' + patron = scrapertools.find_multiple_matches(data, patron) if len(patron) > 20: if item.next_page != 20: url_next_page = item.url @@ -91,9 +90,7 @@ def scraper(item): else: patron = patron[item.i:][:20] next_page = 20 - url_next_page = item.url - for url, thumb, title, cuality in patron: title = re.sub(r"Imagen", "", title) titulo = "[COLOR floralwhite]" + title + "[/COLOR]" + " " + "[COLOR crimson][B]" + cuality + "[/B][/COLOR]" @@ -101,31 +98,13 @@ def scraper(item): if item.extra != "search": item.i += 1 - new_item = item.clone(action="findvideos", title=titulo, url=url, thumbnail=thumb, fulltitle=title, - contentTitle=title, contentType="movie", library=True) - new_item.infoLabels['year'] = get_year(url) - itemlist.append(new_item) + itemlist.append(item.clone(action="findvideos", title=titulo, url=url, thumbnail=thumb, fulltitle=title, + contentTitle=title, contentType="movie", library=True)) ## Paginación if url_next_page: itemlist.append(item.clone(title="[COLOR crimson]Siguiente >>[/COLOR]", url=url_next_page, next_page=next_page, thumbnail="http://imgur.com/w3OMy2f.png", i=item.i)) - try: - from core import tmdb - tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__) - for item in itemlist: - if not "Siguiente >>" in item.title: - if "0." in str(item.infoLabels['rating']): - item.infoLabels['rating'] = "[COLOR indianred]Sin puntuacíon[/COLOR]" - else: - item.infoLabels['rating'] = "[COLOR orange]" + str(item.infoLabels['rating']) + "[/COLOR]" - item.title = item.title + " " + str(item.infoLabels['rating']) - except: - pass - - for item_tmdb in itemlist: - logger.info(str(item_tmdb.infoLabels['tmdb_id'])) - return itemlist @@ -137,10 +116,12 @@ def findvideos(item): if data_post: post = 'id=' + data_post[0] + '&slug=' + data_post[1] data_info = httptools.downloadpage(host + '/ajax/cargar_video.php', post=post).data - enlaces = scrapertools.find_multiple_matches(data_info, - " (\w+ \w+).*?([^']+)") + patron = """ ([^<]+)""" + patron += """.*?([^']+)""" + enlaces = scrapertools.find_multiple_matches(data_info, patron) for server, id_enlace, name, number, idioma_calidad in enlaces: - + server = server.strip() if "SUBTITULOS" in idioma_calidad and not "P" in idioma_calidad: idioma_calidad = idioma_calidad.replace("SUBTITULOS", "VO") idioma_calidad = idioma_calidad.replace("VO", "[COLOR orangered] VO[/COLOR]") @@ -164,14 +145,23 @@ def findvideos(item): url = host + "/ajax/video.php?id=" + id_enlace + "&slug=" + name + "&quality=" + number if not "Ultra" in server: - server = "[COLOR cyan][B]" + server + "[/B][/COLOR]" + server = "[COLOR cyan][B]" + server + " [/B][/COLOR]" extra = "" else: - server = "[COLOR yellow][B]" + server + "[/B][/COLOR]" + server = "[COLOR yellow][B]Gvideo [/B][/COLOR]" extra = "yes" title = server.strip() + " " + idioma_calidad - itemlist.append(Item(channel=item.channel, action="play", title=title, url=url, fanart=item.fanart, - thumbnail=item.thumbnail, fulltitle=item.title, extra=extra, folder=True)) + itemlist.append(Item( + channel = item.channel, + action = "play", + title = title, + url = url, + fanart = item.fanart, + thumbnail = item.thumbnail, + fulltitle = item.fulltitle, + extra = extra, + folder = True + )) if item.library and config.get_videolibrary_support() and len(itemlist) > 0: infoLabels = {'tmdb_id': item.infoLabels['tmdb_id'], 'title': item.infoLabels['title']} @@ -198,16 +188,13 @@ def play(item): url = scrapertools.find_single_match(data, '(?is)iframe src="([^"]+)"') videolist = servertools.find_video_items(data=url) for video in videolist: - itemlist.append(Item(channel=item.channel, url=video.url, server=video.server, - title="[COLOR floralwhite][B]" + video.server + "[/B][/COLOR]", action="play", - folder=False)) + itemlist.append(Item( + channel = item.channel, + url = video.url, + server = video.server, + fulltitle = item.fulltitle, + thumbnail = item.thumbnail, + action = "play" + )) return itemlist - - -def get_year(url): - data = httptools.downloadpage(url).data - year = scrapertools.find_single_match(data, '

Año:(.*?)

') - if year == "": - year = " " - return year From c956b28a3e38007074a350ed837687a756f978a5 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Wed, 9 Aug 2017 15:28:30 -0500 Subject: [PATCH 02/10] Update videolibrary_service.py --- plugin.video.alfa/videolibrary_service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/videolibrary_service.py b/plugin.video.alfa/videolibrary_service.py index ede7b9aa..a76ed40e 100644 --- a/plugin.video.alfa/videolibrary_service.py +++ b/plugin.video.alfa/videolibrary_service.py @@ -87,7 +87,7 @@ def check_for_update(overwrite=True): p_dialog.update(0, '') show_list = [] - for path, folders, files in filetools.walk(library.TVSHOWS_PATH): + for path, folders, files in filetools.walk(videolibrarytools.TVSHOWS_PATH): show_list.extend([filetools.join(path, f) for f in files if f == "tvshow.nfo"]) if show_list: From 5d658481875539a015694762e46c9f83056f9505 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Wed, 9 Aug 2017 16:00:56 -0500 Subject: [PATCH 03/10] Add files via upload --- .../general/default/thumb_channels_direct.png | Bin 14698 -> 17414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/plugin.video.alfa/resources/media/general/default/thumb_channels_direct.png b/plugin.video.alfa/resources/media/general/default/thumb_channels_direct.png index f038ff835594d3e89f0081d41f7b916582ecf82c..79ad6eb472aefb2a490685ee88ba6fd1e8f4fb5c 100644 GIT binary patch literal 17414 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

QGehUeY&H_Glw4ZB%(w1K&a=NovH`UgQ> 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%0D0nz| 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 From 8d62070a86a2c538a0a34ca672a6ba20e4981f29 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 09:34:23 -0500 Subject: [PATCH 04/10] Update vimeo.py --- plugin.video.alfa/servers/vimeo.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugin.video.alfa/servers/vimeo.py b/plugin.video.alfa/servers/vimeo.py index ead9058f..903f14b5 100755 --- a/plugin.video.alfa/servers/vimeo.py +++ b/plugin.video.alfa/servers/vimeo.py @@ -17,7 +17,6 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= page_url = scrapertools.find_single_match(page_url, ".*?video/[0-9]+") data = httptools.downloadpage(page_url, headers = headers).data - logger.info("Intel11 %s" %data) patron = 'mime":"([^"]+)"' patron += '.*?url":"([^"]+)"' patron += '.*?quality":"([^"]+)"' From 2882f3e8660d907cdef4eabb8e8f4c2cdd786551 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 10:31:04 -0500 Subject: [PATCH 05/10] Update datoporn.py --- plugin.video.alfa/channels/datoporn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/channels/datoporn.py b/plugin.video.alfa/channels/datoporn.py index ca62c977..73e0214c 100755 --- a/plugin.video.alfa/channels/datoporn.py +++ b/plugin.video.alfa/channels/datoporn.py @@ -32,7 +32,7 @@ def lista(item): matches = scrapertools.find_multiple_matches(data, patron) for scrapedurl, scrapedthumbnail, duration, scrapedtitle in matches: if "/embed-" not in scrapedurl: - scrapedurl = scrapedurl.replace("datoporn.com/", "datoporn.com/embed-") + ".html" + scrapedurl = scrapedurl.replace("dato.porn/", "dato.porn/embed-") + ".html" if duration: scrapedtitle = "%s - %s" % (duration, scrapedtitle) From 91669b70fbec7662e11cea763d862694d946acc9 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 10:31:49 -0500 Subject: [PATCH 06/10] Update datoporn.py --- plugin.video.alfa/servers/datoporn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/servers/datoporn.py b/plugin.video.alfa/servers/datoporn.py index def8c651..f2cb8a4c 100755 --- a/plugin.video.alfa/servers/datoporn.py +++ b/plugin.video.alfa/servers/datoporn.py @@ -26,7 +26,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= media_urls = scrapertools.find_multiple_matches(data, 'file\:"([^"]+\.mp4)",label:"([^"]+)"') if not media_urls: - match = scrapertools.find_single_match(data, "") + match = scrapertools.find_single_match(data, "p,a,c,k(.*?)") data = jsunpack.unpack(match) media_urls = scrapertools.find_multiple_matches(data, 'file\:"([^"]+\.mp4)",label:"([^"]+)"') From ab0665a40b234bd2fe3d1ef060277528aa634747 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 10:44:16 -0500 Subject: [PATCH 07/10] Update setting.py --- plugin.video.alfa/channels/setting.py | 38 ++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/plugin.video.alfa/channels/setting.py b/plugin.video.alfa/channels/setting.py index 2b9b7110..78d748c6 100644 --- a/plugin.video.alfa/channels/setting.py +++ b/plugin.video.alfa/channels/setting.py @@ -866,10 +866,11 @@ def overwrite_tools(item): from core import videolibrarytools seleccion = platformtools.dialog_yesno("Sobrescribir toda la videoteca", - "Esto puede llevar algun tiempo.", + "Esto puede llevar algún tiempo.", "¿Desea continuar?") if seleccion == 1: - heading = 'Sobrescribiendo videoteca....' + # tvshows + heading = 'Sobrescribiendo videoteca....SERIES' p_dialog = platformtools.dialog_progress_bg('alfa', heading) p_dialog.update(0, '') @@ -893,5 +894,36 @@ def overwrite_tools(item): # ... y la volvemos a añadir videolibrary_service.update(path, p_dialog, i, t, serie, 3) - p_dialog.close() + + # movies + heading = 'Sobrescribiendo videoteca....PELICULAS' + p_dialog2 = platformtools.dialog_progress_bg('alfa', heading) + p_dialog2.update(0, '') + + movies_list = [] + for path, folders, files in filetools.walk(videolibrarytools.MOVIES_PATH): + movies_list.extend([filetools.join(path, f) for f in files if f.endswith(".json")]) + + logger.debug("movies_list %s" % movies_list) + + if movies_list: + t = float(100) / len(movies_list) + + for i, movie_json in enumerate(movies_list): + from core import jsontools + path = filetools.dirname(movie_json) + movie = Item().fromjson(filetools.read(movie_json)) + + # Eliminamos la carpeta con la pelicula ... + filetools.rmdirtree(path) + + import math + heading = 'Actualizando videoteca....' + + p_dialog2.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (movie.contentTitle, + movie.channel.capitalize())) + # ... y la volvemos a añadir + videolibrarytools.save_movie(movie) + + p_dialog2.close() From f8981634ce1d0decb917ecfd63efefe3f55eb5db Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 10:45:27 -0500 Subject: [PATCH 08/10] Update playpornx.py --- plugin.video.alfa/channels/playpornx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/channels/playpornx.py b/plugin.video.alfa/channels/playpornx.py index a324d04e..c79e35fb 100644 --- a/plugin.video.alfa/channels/playpornx.py +++ b/plugin.video.alfa/channels/playpornx.py @@ -16,6 +16,7 @@ def mainlist(item): thumbnail='https://s18.postimg.org/fwvaeo6qh/todas.png', fanart='https://s18.postimg.org/fwvaeo6qh/todas.png', url ='https://www.playpornx.net/category/porn-movies/?filter=date')) + itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url='http://www.playpornx.net/?s=', thumbnail='https://s30.postimg.org/pei7txpa9/buscar.png', fanart='https://s30.postimg.org/pei7txpa9/buscar.png')) @@ -30,7 +31,6 @@ def lista(item): if item.url == '': item.url = host data = httptools.downloadpage(item.url).data data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) - logger.debug(data) patron = 'role=article>
.*?src=(.*?) class' matches = re.compile(patron, re.DOTALL).findall(data) @@ -45,7 +45,7 @@ def lista(item): if itemlist != []: actual_page_url = item.url - next_page = scrapertools.find_single_match(data, 'rel="next" href="([^"]+)"') + next_page = scrapertools.find_single_match(data, '') if next_page != '': itemlist.append(Item(channel=item.channel, action="lista", title='Siguiente >>>', url=next_page, thumbnail='https://s16.postimg.org/9okdu7hhx/siguiente.png', extra=item.extra)) From 110ebe5a5d9a6d52da42ccea4fb31ce20bcb722a Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 16:58:56 -0500 Subject: [PATCH 09/10] Update downace.json --- plugin.video.alfa/servers/downace.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/servers/downace.json b/plugin.video.alfa/servers/downace.json index 64142fce..43b392cc 100644 --- a/plugin.video.alfa/servers/downace.json +++ b/plugin.video.alfa/servers/downace.json @@ -10,7 +10,7 @@ "ignore_urls": [], "patterns": [ { - "pattern": "downace.com/embed/(.*?)", + "pattern": "downace.com/embed/([A-z0-9]+)", "url": "https://downace.com/embed/\\1" } ] @@ -46,4 +46,4 @@ ], "thumbnail": "https://s12.postimg.org/4n9fmdy7x/logo-downace.png", "version": 1 -} \ No newline at end of file +} From b325a1cfcd13c0b63235c903407e71d0cf0ddf19 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 10 Aug 2017 17:02:26 -0500 Subject: [PATCH 10/10] Update setting.py --- plugin.video.alfa/channels/setting.py | 28 ++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/plugin.video.alfa/channels/setting.py b/plugin.video.alfa/channels/setting.py index 78d748c6..db074015 100644 --- a/plugin.video.alfa/channels/setting.py +++ b/plugin.video.alfa/channels/setting.py @@ -911,19 +911,25 @@ def overwrite_tools(item): t = float(100) / len(movies_list) for i, movie_json in enumerate(movies_list): - from core import jsontools - path = filetools.dirname(movie_json) - movie = Item().fromjson(filetools.read(movie_json)) + try: + from core import jsontools + path = filetools.dirname(movie_json) + movie = Item().fromjson(filetools.read(movie_json)) - # Eliminamos la carpeta con la pelicula ... - filetools.rmdirtree(path) + # Eliminamos la carpeta con la pelicula ... + filetools.rmdirtree(path) - import math - heading = 'Actualizando videoteca....' + import math + heading = 'Actualizando videoteca....' - p_dialog2.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (movie.contentTitle, - movie.channel.capitalize())) - # ... y la volvemos a añadir - videolibrarytools.save_movie(movie) + p_dialog2.update(int(math.ceil((i + 1) * t)), heading, "%s: %s" % (movie.contentTitle, + movie.channel.capitalize())) + # ... y la volvemos a añadir + videolibrarytools.save_movie(movie) + except Exception, ex: + logger.error("Error al crear de nuevo la película") + template = "An exception of type %s occured. Arguments:\n%r" + message = template % (type(ex).__name__, ex.args) + logger.error(message) p_dialog2.close()