From 16293d252ed33ae409f4f3353a8018a8c3856ea2 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Wed, 8 Aug 2018 17:14:56 -0500 Subject: [PATCH 1/9] rapidvideo: fix --- plugin.video.alfa/servers/rapidvideo.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugin.video.alfa/servers/rapidvideo.py b/plugin.video.alfa/servers/rapidvideo.py index 062e3752..d6705262 100755 --- a/plugin.video.alfa/servers/rapidvideo.py +++ b/plugin.video.alfa/servers/rapidvideo.py @@ -35,8 +35,8 @@ 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 + post = "confirm.x=77&confirm.y=76&block=1" if "Please click on this button to open this video" in data: - post = "confirm.x=77&confirm.y=76&block=1" data = httptools.downloadpage(page_url, post=post).data patron = 'https://www.rapidvideo.com/e/[^"]+' match = scrapertools.find_multiple_matches(data, patron) @@ -44,6 +44,8 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= for url1 in match: res = scrapertools.find_single_match(url1, '=(\w+)') data = httptools.downloadpage(url1).data + if "Please click on this button to open this video" in data: + data = httptools.downloadpage(url1, post=post).data url = scrapertools.find_single_match(data, 'source src="([^"]+)') ext = scrapertools.get_filename_from_url(url)[-4:] video_urls.append(['%s %s [rapidvideo]' % (ext, res), url]) From 4ac77a3307da5f167c1eba16704e6a94e10753e2 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Tue, 14 Aug 2018 15:11:25 -0500 Subject: [PATCH 2/9] fix languages, tvmovidedb, watchvideo --- plugin.video.alfa/channels/tvmoviedb.py | 2 +- .../resources/language/English/strings.po | 2 +- .../resources/language/Italian/strings.po | 2 +- .../language/Spanish (Argentina)/strings.po | 16 ++++++------ .../language/Spanish (Mexico)/strings.po | 16 ++++++------ .../resources/language/Spanish/strings.po | 16 ++++++------ plugin.video.alfa/servers/watchvideo.py | 26 +++++-------------- 7 files changed, 34 insertions(+), 46 deletions(-) diff --git a/plugin.video.alfa/channels/tvmoviedb.py b/plugin.video.alfa/channels/tvmoviedb.py index 12e1b19d..2eabf442 100644 --- a/plugin.video.alfa/channels/tvmoviedb.py +++ b/plugin.video.alfa/channels/tvmoviedb.py @@ -1070,7 +1070,7 @@ def filtro_imdb(item): list_controls.append({'id': 'orden', 'label': config.get_localized_string(70455), 'enabled': True, 'color': '0xFF25AA48', 'type': 'list', 'default': -1, 'visible': True}) orden = [config.get_localized_string(70456), config.get_localized_string(70457), config.get_localized_string(70458), config.get_localized_string(70459), config.get_localized_string(70460), config.get_localized_string(70461), - config.get_localized_string(70462, config.get_localized_string(70463)] + config.get_localized_string(70462), config.get_localized_string(70463)] orden_imdb = ['moviemeter,asc', 'moviemeter,desc', 'year,desc', 'year,asc', 'user_rating,desc', 'user_rating,asc', 'alpha,asc', 'alpha,desc'] diff --git a/plugin.video.alfa/resources/language/English/strings.po b/plugin.video.alfa/resources/language/English/strings.po index 9fca45a7..62983bf0 100644 --- a/plugin.video.alfa/resources/language/English/strings.po +++ b/plugin.video.alfa/resources/language/English/strings.po @@ -2902,7 +2902,7 @@ msgid "Search Movies/TV Shows" msgstr "" msgctxt "#70047" -msgid " Search by director" +msgid "Search by director" msgstr "" msgctxt "#70048" diff --git a/plugin.video.alfa/resources/language/Italian/strings.po b/plugin.video.alfa/resources/language/Italian/strings.po index 3c2c5148..950f4d09 100644 --- a/plugin.video.alfa/resources/language/Italian/strings.po +++ b/plugin.video.alfa/resources/language/Italian/strings.po @@ -2890,7 +2890,7 @@ msgid "Search Movies/TV Shows" msgstr "Cerca Film/Serie TV" msgctxt "#70047" -msgid " Search by director" +msgid "Search by director" msgstr "Cerca per regista" msgctxt "#70048" diff --git a/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po b/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po index 80ea8959..588352ea 100644 --- a/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po +++ b/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po @@ -479,7 +479,7 @@ msgstr "Elegir canales incluidos en la búsqueda" msgctxt "#59995" msgid "Saved Searches" -msgstr "Búsquedasguardadas" +msgstr "Búsquedas guardadas" msgctxt "#59996" msgid "Delete saved searches" @@ -2846,7 +2846,7 @@ msgid "Genres" msgstr "Géneros" msgctxt "#70033" -msgid "Actors / Actresses by popularity" +msgid "Actors/Actresses by popularity" msgstr "Actores/Actrices por popularidad" msgctxt "#70034" @@ -2858,12 +2858,12 @@ msgid "Search %s" msgstr "Buscar %s" msgctxt "#70036" -msgid " Search actor/actress" -msgstr " Buscar actor/actriz" +msgid "Search actor/actress" +msgstr "Buscar actor/actriz" msgctxt "#70037" -msgid " Search director, writer..." -msgstr " Buscar director, guionista..." +msgid "Search director, writer..." +msgstr "Buscar director, escritor..." msgctxt "#70038" msgid "Custom Filter" @@ -2902,8 +2902,8 @@ msgid "Search Movies/TV Shows" msgstr "Buscar Películas/Series" msgctxt "#70047" -msgid " Search by director" -msgstr " Buscar por director" +msgid "Search by director" +msgstr "Buscar por director" msgctxt "#70048" msgid " My Account" diff --git a/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po b/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po index 80ea8959..588352ea 100644 --- a/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po +++ b/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po @@ -479,7 +479,7 @@ msgstr "Elegir canales incluidos en la búsqueda" msgctxt "#59995" msgid "Saved Searches" -msgstr "Búsquedasguardadas" +msgstr "Búsquedas guardadas" msgctxt "#59996" msgid "Delete saved searches" @@ -2846,7 +2846,7 @@ msgid "Genres" msgstr "Géneros" msgctxt "#70033" -msgid "Actors / Actresses by popularity" +msgid "Actors/Actresses by popularity" msgstr "Actores/Actrices por popularidad" msgctxt "#70034" @@ -2858,12 +2858,12 @@ msgid "Search %s" msgstr "Buscar %s" msgctxt "#70036" -msgid " Search actor/actress" -msgstr " Buscar actor/actriz" +msgid "Search actor/actress" +msgstr "Buscar actor/actriz" msgctxt "#70037" -msgid " Search director, writer..." -msgstr " Buscar director, guionista..." +msgid "Search director, writer..." +msgstr "Buscar director, escritor..." msgctxt "#70038" msgid "Custom Filter" @@ -2902,8 +2902,8 @@ msgid "Search Movies/TV Shows" msgstr "Buscar Películas/Series" msgctxt "#70047" -msgid " Search by director" -msgstr " Buscar por director" +msgid "Search by director" +msgstr "Buscar por director" msgctxt "#70048" msgid " My Account" diff --git a/plugin.video.alfa/resources/language/Spanish/strings.po b/plugin.video.alfa/resources/language/Spanish/strings.po index 80ea8959..588352ea 100644 --- a/plugin.video.alfa/resources/language/Spanish/strings.po +++ b/plugin.video.alfa/resources/language/Spanish/strings.po @@ -479,7 +479,7 @@ msgstr "Elegir canales incluidos en la búsqueda" msgctxt "#59995" msgid "Saved Searches" -msgstr "Búsquedasguardadas" +msgstr "Búsquedas guardadas" msgctxt "#59996" msgid "Delete saved searches" @@ -2846,7 +2846,7 @@ msgid "Genres" msgstr "Géneros" msgctxt "#70033" -msgid "Actors / Actresses by popularity" +msgid "Actors/Actresses by popularity" msgstr "Actores/Actrices por popularidad" msgctxt "#70034" @@ -2858,12 +2858,12 @@ msgid "Search %s" msgstr "Buscar %s" msgctxt "#70036" -msgid " Search actor/actress" -msgstr " Buscar actor/actriz" +msgid "Search actor/actress" +msgstr "Buscar actor/actriz" msgctxt "#70037" -msgid " Search director, writer..." -msgstr " Buscar director, guionista..." +msgid "Search director, writer..." +msgstr "Buscar director, escritor..." msgctxt "#70038" msgid "Custom Filter" @@ -2902,8 +2902,8 @@ msgid "Search Movies/TV Shows" msgstr "Buscar Películas/Series" msgctxt "#70047" -msgid " Search by director" -msgstr " Buscar por director" +msgid "Search by director" +msgstr "Buscar por director" msgctxt "#70048" msgid " My Account" diff --git a/plugin.video.alfa/servers/watchvideo.py b/plugin.video.alfa/servers/watchvideo.py index 879fe6eb..43bea8fc 100755 --- a/plugin.video.alfa/servers/watchvideo.py +++ b/plugin.video.alfa/servers/watchvideo.py @@ -8,35 +8,23 @@ from platformcode import logger def test_video_exists(page_url): logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "Not Found" in data or "File was deleted" in data: return False, "[Watchvideo] El fichero 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 = httptools.downloadpage(page_url).data - enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(eval.*?)\s*") - dec_data = jsunpack.unpack(enc_data) - video_urls = [] - media_urls = scrapertools.find_multiple_matches(dec_data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}') - for media_url, label in media_urls: - ext = scrapertools.get_filename_from_url(media_url)[-4:] - video_urls.append(["%s %sp [watchvideo]" % (ext, label), media_url]) - + data = httptools.downloadpage(page_url).data + media_urls = scrapertools.find_multiple_matches(data, 'file:"([^"]+)"') + for media_url in media_urls: + ext = "mp4" + if "m3u8" in media_url: + ext = "m3u8" + video_urls.append(["%s [watchvideo]" % (ext), media_url]) video_urls.reverse() - m3u8 = scrapertools.find_single_match(dec_data, '\{file\:"(.*?.m3u8)"\}') - if m3u8: - title = video_urls[-1][0].split(" ", 1)[1] - video_urls.insert(0, [".m3u8 %s" % title, m3u8]) - for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) - return video_urls From 9929913a48b4b977bbfb111bfbd375cf708fa4a6 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Tue, 14 Aug 2018 15:47:35 -0500 Subject: [PATCH 3/9] Ejecutable en windows Modificaciones para crear el ejecutable en windows --- mediaserver/HTTPAndWSServer.py | 2 ++ mediaserver/alfa.py | 2 ++ mediaserver/genera.bat | 5 +++++ mediaserver/platformcode/config.py | 2 +- .../platformcode/controllers/__init__.py | 4 ++-- mediaserver/setup.py | 18 ++++++++++++++++++ 6 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 mediaserver/genera.bat create mode 100644 mediaserver/setup.py diff --git a/mediaserver/HTTPAndWSServer.py b/mediaserver/HTTPAndWSServer.py index 04529a28..8786a8e7 100644 --- a/mediaserver/HTTPAndWSServer.py +++ b/mediaserver/HTTPAndWSServer.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- +import os import random import re import threading import time import traceback +from platformcode import platformtools from BaseHTTPServer import HTTPServer from HTTPWebSocketsHandler import HTTPWebSocketsHandler diff --git a/mediaserver/alfa.py b/mediaserver/alfa.py index e53fe499..f61ab910 100644 --- a/mediaserver/alfa.py +++ b/mediaserver/alfa.py @@ -8,6 +8,8 @@ import sys import threading import time from functools import wraps +# Requerido para el ejecutable en windows +import SimpleHTTPServer sys.dont_write_bytecode = True from platformcode import config diff --git a/mediaserver/genera.bat b/mediaserver/genera.bat new file mode 100644 index 00000000..648884ce --- /dev/null +++ b/mediaserver/genera.bat @@ -0,0 +1,5 @@ +REM Genera los archivos para el ejecutable en windows de Alfa Mediaserver +python setup.py py2exe -p channels,servers,lib,platformcode +xcopy lib dist\lib /y /s /i +xcopy platformcode dist\platformcode /y /s /i +xcopy resources dist\resources /y /s /i diff --git a/mediaserver/platformcode/config.py b/mediaserver/platformcode/config.py index 835384da..042271fe 100644 --- a/mediaserver/platformcode/config.py +++ b/mediaserver/platformcode/config.py @@ -14,7 +14,7 @@ settings_dic = {} adult_setting = {} -def get_addon_version(linea_inicio=0, total_lineas=2): +def get_addon_version(linea_inicio=0, total_lineas=2, with_fix=False): ''' Devuelve el número de de versión del addon, obtenido desde el archivo addon.xml ''' diff --git a/mediaserver/platformcode/controllers/__init__.py b/mediaserver/platformcode/controllers/__init__.py index bc031b42..41b7e8ae 100644 --- a/mediaserver/platformcode/controllers/__init__.py +++ b/mediaserver/platformcode/controllers/__init__.py @@ -7,12 +7,12 @@ import os from inspect import isclass from controller import Controller -from platformcode import logger +from platformcode import config, logger def load_controllers(): controllers = [] - path = os.path.split(__file__)[0] + path = os.path.join(config.get_runtime_path(),"platformcode\controllers") for fname in os.listdir(path): mod, ext = os.path.splitext(fname) fname = os.path.join(path, fname) diff --git a/mediaserver/setup.py b/mediaserver/setup.py new file mode 100644 index 00000000..34d9a062 --- /dev/null +++ b/mediaserver/setup.py @@ -0,0 +1,18 @@ +# setup.py +# Para crear el ejecutable de Alfa mediaserver en windows +# Se usa py2exe +# Linea de comandos para la creacion: python setup.py py2exe -p channels,servers,lib,platformcode +from distutils.core import setup +import glob +import py2exe + +setup(packages=['channels','servers','lib','platformcode','platformcode/controllers'], + data_files=[("channels",glob.glob("channels\\*.py")), + ("channels",glob.glob("channels\\*.json")), + ("servers",glob.glob("servers\\*.py")), + ("servers",glob.glob("servers\\*.json")), + ("",glob.glob("addon.xml")), + ], + console=["alfa.py"] + ) + From 5e828f73b1ae82001f617eabb037674917878bde Mon Sep 17 00:00:00 2001 From: Intel1 Date: Tue, 14 Aug 2018 17:58:05 -0500 Subject: [PATCH 4/9] flashx: fix --- plugin.video.alfa/servers/flashx.json | 4 ++++ plugin.video.alfa/servers/flashx.py | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugin.video.alfa/servers/flashx.json b/plugin.video.alfa/servers/flashx.json index 20c5e9ff..a43573b3 100644 --- a/plugin.video.alfa/servers/flashx.json +++ b/plugin.video.alfa/servers/flashx.json @@ -6,6 +6,10 @@ { "pattern": "flashx.(?:tv|pw|ws|sx|to)/(?:embed.php\\?c=|embed-|playvid-|)([A-z0-9]+)", "url": "https://www.flashx.tv/\\1.html" + }, + { + "pattern": "flashx.co/([A-z0-9]+).jsp", + "url": "https://www.flashx.to/\\1.jsp" } ] }, diff --git a/plugin.video.alfa/servers/flashx.py b/plugin.video.alfa/servers/flashx.py index 987ea410..d752b14b 100644 --- a/plugin.video.alfa/servers/flashx.py +++ b/plugin.video.alfa/servers/flashx.py @@ -17,15 +17,16 @@ def test_video_exists(page_url): def get_video_url(page_url, premium=False, user="", password="", video_password=""): + domain_fx = "(?:co|tv)" logger.info("url=" + page_url) pfxfx = "" data = httptools.downloadpage(page_url, cookies=False).data data = data.replace("\n","") - cgi_counter = scrapertools.find_single_match(data, """(?is)src=.(https://www.flashx.co/counter.cgi.*?[^(?:'|")]+)""") + cgi_counter = scrapertools.find_single_match(data, """(?is)src=.(https://www.flashx.%s/counter.cgi.*?[^(?:'|")]+)""" %domain_fx) cgi_counter = cgi_counter.replace("%0A","").replace("%22","") - playnow = scrapertools.find_single_match(data, 'https://www.flashx.co/dl[^"]+') + playnow = scrapertools.find_single_match(data, 'https://www.flashx.%s/dl[^"]+' %domain_fx) # Para obtener el f y el fxfx - js_fxfx = "https://www." + scrapertools.find_single_match(data.replace("//","/"), """(?is)(flashx.co/js\w+/c\w+.*?[^(?:'|")]+)""") + js_fxfx = "https://www." + scrapertools.find_single_match(data.replace("//","/"), """(?is)(flashx.%s/js\w+/c\w+.*?[^(?:'|")]+)""" %domain_fx) data_fxfx = httptools.downloadpage(js_fxfx).data mfxfx = scrapertools.find_single_match(data_fxfx, 'get.*?({.*?})').replace("'","").replace(" ","") matches = scrapertools.find_multiple_matches(mfxfx, '(\w+):(\w+)') @@ -35,7 +36,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= logger.info("mfxfxfx2= %s" %pfxfx) if pfxfx == "": pfxfx = "ss=yes&f=fail&fxfx=6" - coding_url = 'https://www.flashx.co/flashx.php?%s' %pfxfx + coding_url = 'https://www.flashx.co/flashx.php?%s' %(pfxfx) # {f: 'y', fxfx: '6'} bloque = scrapertools.find_single_match(data, '(?s)Form method="POST" action(.*?)span') flashx_id = scrapertools.find_single_match(bloque, 'name="id" value="([^"]+)"') From d7b70067099ec61107a36a0bee5521cea3dcbcc2 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Wed, 15 Aug 2018 09:52:57 -0500 Subject: [PATCH 5/9] Canales eliminados seriesverde alltorrent yaske --- plugin.video.alfa/channels/alltorrent.json | 39 --- plugin.video.alfa/channels/alltorrent.py | 314 ------------------ plugin.video.alfa/channels/seriesverde.json | 37 --- plugin.video.alfa/channels/seriesverde.py | 321 ------------------ plugin.video.alfa/channels/yaske.json | 48 --- plugin.video.alfa/channels/yaske.py | 349 -------------------- 6 files changed, 1108 deletions(-) delete mode 100755 plugin.video.alfa/channels/alltorrent.json delete mode 100755 plugin.video.alfa/channels/alltorrent.py delete mode 100644 plugin.video.alfa/channels/seriesverde.json delete mode 100644 plugin.video.alfa/channels/seriesverde.py delete mode 100644 plugin.video.alfa/channels/yaske.json delete mode 100644 plugin.video.alfa/channels/yaske.py diff --git a/plugin.video.alfa/channels/alltorrent.json b/plugin.video.alfa/channels/alltorrent.json deleted file mode 100755 index ae9bbebe..00000000 --- a/plugin.video.alfa/channels/alltorrent.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "id": "alltorrent", - "name": "Alltorrent", - "active": false, - "adult": false, - "language": ["cast"], - "thumbnail": "altorrent.png", - "fanart": "altorrent.jpg", - "categories": [ - "torrent", - "movie" - ], - "settings": [ - { - "id": "modo_grafico", - "type": "bool", - "label": "Buscar información extra", - "default": true, - "enabled": true, - "visible": true - }, - { - "id": "include_in_global_search", - "type": "bool", - "label": "Incluir en busqueda global", - "default": false, - "enabled": true, - "visible": true - }, - { - "id": "include_in_newest_torrent", - "type": "bool", - "label": "Incluir en Novedades - Torrent", - "default": true, - "enabled": true, - "visible": true - } - ] -} \ No newline at end of file diff --git a/plugin.video.alfa/channels/alltorrent.py b/plugin.video.alfa/channels/alltorrent.py deleted file mode 100755 index 2f9ec7cd..00000000 --- a/plugin.video.alfa/channels/alltorrent.py +++ /dev/null @@ -1,314 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import sys -import urllib -import urlparse - -from channelselector import get_thumb -from core import httptools -from core import scrapertools -from core import servertools -from core.item import Item -from platformcode import config, logger -from core import tmdb -from lib import generictools - -host = 'http://alltorrent.net/' -__modo_grafico__ = config.get_setting('modo_grafico', 'alltorrent') - - -def mainlist(item): - logger.info() - itemlist = [] - - thumb_pelis = get_thumb("channels_movie.png") - thumb_pelis_hd = get_thumb("channels_movie_hd.png") - thumb_series = get_thumb("channels_tvshow.png") - thumb_series_hd = get_thumb("channels_tvshow_hd.png") - thumb_buscar = get_thumb("search.png") - - itemlist.append(item.clone(title="[COLOR springgreen][B]Todas Las Películas[/B][/COLOR]", action="listado", - url=host, thumbnail=thumb_pelis, extra="pelicula")) - itemlist.append(item.clone(title="[COLOR springgreen] Incluyen 1080p[/COLOR]", action="listado", - url=host + "rezolucia/1080p/", thumbnail=thumb_pelis_hd, extra="pelicula")) - itemlist.append(item.clone(title="[COLOR springgreen] Incluyen 720p[/COLOR]", action="listado", - url=host + "rezolucia/720p/", thumbnail=thumb_pelis_hd, extra="pelicula")) - itemlist.append(item.clone(title="[COLOR springgreen] Incluyen Hdrip[/COLOR]", action="listado", - url=host + "rezolucia/hdrip/", thumbnail=thumb_pelis, extra="pelicula")) - itemlist.append(item.clone(title="[COLOR springgreen] Incluyen 3D[/COLOR]", action="listado", - url=host + "rezolucia/3d/", thumbnail=thumb_pelis_hd, extra="pelicula")) - itemlist.append(item.clone(title="[COLOR floralwhite][B]Buscar[/B][/COLOR]", action="search", thumbnail=thumb_buscar, - extra="titulo")) - itemlist.append(item.clone(title="[COLOR oldlace] Por Título[/COLOR]", action="search", thumbnail=thumb_buscar, - extra="titulo")) - itemlist.append(item.clone(title="[COLOR oldlace] Por Año[/COLOR]", action="search", thumbnail=thumb_buscar, - extra="año")) - itemlist.append(item.clone(title="[COLOR oldlace] Por Rating Imdb[/COLOR]", action="search", thumbnail=thumb_buscar, - extra="rating")) - - return itemlist - - -def listado(item): - logger.info() - itemlist = [] - - # Descarga la página - data = '' - try: - data = re.sub(r"\n|\r|\t|\s{2}|()", "", httptools.downloadpage(item.url).data) - except: - pass - - if not data and item.extra != "año": #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: " + data) - 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')) - return itemlist #si no hay más datos, algo no funciona, pintamos lo que tenemos - elif not data and item.extra == "año": #cuando no hay datos para un año, da error. Tratamos de evitar el error - return itemlist - - patron = '
([^"]+)<\/a>\s?<\/div>
(.*?)<\/div><\/div><\/div>' - #data = scrapertools.find_single_match(data, patron) - matches = re.compile(patron, re.DOTALL).findall(data) - if not matches and not '' - data = scrapertools.find_single_match(data, patron) - patron = 'href="([^"]+)">([^<]+)' - matches = scrapertools.find_multiple_matches(data, patron) - for scrapedurl, scrapedtitle in matches: - url = HOST + scrapedurl - itemlist.append(Item(channel = item.channel, - action = "peliculas", - title = scrapedtitle, - url = url, - text_color = color1, - contentType = 'movie', - folder = True, - viewmode = "movie_with_plot" - )) - return itemlist - - -def findvideos(item): - logger.info() - itemlist = [] - sublist = [] - 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 += '\[([^\]]+)\].*?\[([^\]]+)\]' - data = httptools.downloadpage(url_m).data - matches = scrapertools.find_multiple_matches(data, patron) - page = 2 - while len(matches)>0: - for server, url, idioma, calidad in matches: - if "drive" in server: - server = "gvideo" - sublist.append(item.clone(action="play", url=url, folder=False, text_color=color1, quality=calidad.strip(), - language=idioma.strip(), - server = server, - title="Ver en %s %s" %(server, calidad) - )) - data = httptools.downloadpage(url_m + "&page=%s" %page).data - matches = scrapertools.find_multiple_matches(data, patron) - page +=1 - sublist = sorted(sublist, key=lambda Item: Item.quality + Item.server) - for k in ["Español", "Latino", "Ingles - Sub Español", "Ingles"]: - lista_idioma = filter(lambda i: i.language == k, sublist) - if lista_idioma: - itemlist.append(item.clone(title=k, folder=False, infoLabels = "", - text_color=color2, text_bold=True, thumbnail=thumbnail_host)) - itemlist.extend(lista_idioma) - - tmdb.set_infoLabels(itemlist, True) - # Insertar items "Buscar trailer" y "Añadir a la videoteca" - if itemlist and item.extra != "library": - title = "%s [Buscar trailer]" % (item.contentTitle) - itemlist.insert(0, item.clone(channel="trailertools", action="buscartrailer", - text_color=color3, title=title, viewmode="list")) - - if config.get_videolibrary_support(): - itemlist.append(Item(channel=item.channel, title="Añadir película a la videoteca", - action="add_pelicula_to_library", url=item.url, text_color="green", - contentTitle=item.contentTitle, extra="library", thumbnail=thumbnail_host)) - return itemlist - -def play(item): - logger.info() - itemlist = [] - ddd = httptools.downloadpage(item.url).data - url = "http://olimpo.link" + scrapertools.find_single_match(ddd, '