From 86de19dfe26a1d5be57d0fb90ed1cb1cc272d8f4 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 25 Apr 2018 11:40:46 -0300 Subject: [PATCH] Correcciones --- plugin.video.alfa/channels/autoplay.py | 26 +++++++++--------- plugin.video.alfa/channels/hdfull.py | 27 +++---------------- .../channels/peliculasaudiolatino.py | 2 +- plugin.video.alfa/channels/videolibrary.py | 3 +-- plugin.video.alfa/platformcode/launcher.py | 8 +++++- 5 files changed, 27 insertions(+), 39 deletions(-) diff --git a/plugin.video.alfa/channels/autoplay.py b/plugin.video.alfa/channels/autoplay.py index a6352fc6..76e638ae 100644 --- a/plugin.video.alfa/channels/autoplay.py +++ b/plugin.video.alfa/channels/autoplay.py @@ -136,6 +136,8 @@ def start(itemlist, item): # Obtiene las listas servidores, calidades disponibles desde el nodo del json de AutoPlay server_list = channel_node.get('servers', []) + for server in server_list: + server = server.lower() quality_list = channel_node.get('quality', []) # Si no se definen calidades la se asigna default como calidad unica @@ -145,7 +147,7 @@ def start(itemlist, item): # Se guardan los textos de cada servidor y calidad en listas p.e. favorite_servers = ['openload', # 'streamcloud'] for num in range(1, 4): - favorite_servers.append(channel_node['servers'][settings_node['server_%s' % num]]) + favorite_servers.append(channel_node['servers'][settings_node['server_%s' % num]].lower()) favorite_quality.append(channel_node['quality'][settings_node['quality_%s' % num]]) # Se filtran los enlaces de itemlist y que se correspondan con los valores de autoplay @@ -175,25 +177,25 @@ def start(itemlist, item): # si el servidor y la calidad no se encuentran en las listas de favoritos o la url esta repetida, # descartamos el item - if item.server not in favorite_servers or item.quality not in favorite_quality \ + if item.server.lower() not in favorite_servers or item.quality not in favorite_quality \ or item.url in url_list_valid: item.type_b = True b_dict['videoitem']= item autoplay_b.append(b_dict) continue - autoplay_elem["indice_server"] = favorite_servers.index(item.server) + autoplay_elem["indice_server"] = favorite_servers.index(item.server.lower()) autoplay_elem["indice_quality"] = favorite_quality.index(item.quality) elif priority == 2: # Solo servidores # si el servidor no se encuentra en la lista de favoritos o la url esta repetida, # descartamos el item - if item.server not in favorite_servers or item.url in url_list_valid: + if item.server.lower() not in favorite_servers or item.url in url_list_valid: item.type_b = True b_dict['videoitem'] = item autoplay_b.append(b_dict) continue - autoplay_elem["indice_server"] = favorite_servers.index(item.server) + autoplay_elem["indice_server"] = favorite_servers.index(item.server.lower()) elif priority == 3: # Solo calidades @@ -261,11 +263,11 @@ def start(itemlist, item): if not platformtools.is_playing() and not played: videoitem = autoplay_elem['videoitem'] logger.debug('videoitem %s' % videoitem) - if videoitem.server not in max_intentos_servers: - max_intentos_servers[videoitem.server] = max_intentos + if videoitem.server.lower() not in max_intentos_servers: + max_intentos_servers[videoitem.server.lower()] = max_intentos # Si se han alcanzado el numero maximo de intentos de este servidor saltamos al siguiente - if max_intentos_servers[videoitem.server] == 0: + if max_intentos_servers[videoitem.server.lower()] == 0: continue lang = " " @@ -312,15 +314,15 @@ def start(itemlist, item): logger.debug(str(len(autoplay_list))) # Si hemos llegado hasta aqui es por q no se ha podido reproducir - max_intentos_servers[videoitem.server] -= 1 + max_intentos_servers[videoitem.server.lower()] -= 1 # Si se han alcanzado el numero maximo de intentos de este servidor # preguntar si queremos seguir probando o lo ignoramos - if max_intentos_servers[videoitem.server] == 0: + if max_intentos_servers[videoitem.server.lower()] == 0: text = "Parece que los enlaces de %s no estan funcionando." % videoitem.server.upper() if not platformtools.dialog_yesno("AutoPlay", text, "¿Desea ignorar todos los enlaces de este servidor?"): - max_intentos_servers[videoitem.server] = max_intentos + max_intentos_servers[videoitem.server.lower()] = max_intentos # Si no quedan elementos en la lista se informa if autoplay_elem == autoplay_list[-1]: @@ -439,7 +441,7 @@ def check_value(channel, itemlist): quality_list = channel_node['quality'] = list() for item in itemlist: - if item.server not in server_list and item.server !='': + if item.server.lower() not in server_list and item.server !='': server_list.append(item.server) change = True if item.quality not in quality_list and item.quality !='': diff --git a/plugin.video.alfa/channels/hdfull.py b/plugin.video.alfa/channels/hdfull.py index 180a85ec..78c605b5 100644 --- a/plugin.video.alfa/channels/hdfull.py +++ b/plugin.video.alfa/channels/hdfull.py @@ -664,14 +664,12 @@ def findvideos(item): data = agrupa_datos(httptools.downloadpage(item.url).data) data_obf = scrapertools.find_single_match(data, "var ad\s*=\s*'([^']+)'") data_decrypt = jsontools.load(obfs(base64.b64decode(data_obf), 126 - int(key))) - infolabels = {} year = scrapertools.find_single_match(data, 'Año:\s*.*?(\d{4})') infolabels["year"] = year matches = [] for match in data_decrypt: prov = eval(scrapertools.find_single_match(data_js, 'p\[%s\]\s*=\s*(\{.*?\}[\']\})' % match["provider"])) - server_url = scrapertools.find_single_match(prov['l'], 'return\s*"(.*?)"') url = '%s%s' % (server_url, match['code']) @@ -831,20 +829,10 @@ def get_status(status, type, id): ## -------------------------------------------------------------------------------- + def jhexdecode(t): - - - - k = re.sub(r'(_0x.{4})(?=\(|=)', 'var_0', t).replace('\'','\"') - def to_hex(c, type): - h = int("%s" % c, 16) - if type == '1': - return 'p[%s]' % h - if type == '2': - return '[%s]' % h - - x = re.sub(r'(?:p\[)(0x.{,2})(?:\])', lambda z: to_hex(z.group(1), '1'), k) - y = re.sub(r'(?:\(")(0x.{,2})(?:"\))', lambda z: to_hex(z.group(1), '2'), x) + r = re.sub(r'_\d+x\w+x(\d+)', 'var_' + r'\1', t) + r = re.sub(r'_\d+x\w+', 'var_0', r) def to_hx(c): h = int("%s" % c.groups(0), 16) @@ -852,14 +840,8 @@ def jhexdecode(t): return chr(h) else: return "" - r = re.sub(r'(?:\\|)x(\w{2})(?=[^\w\d])', to_hx, y).replace('var ', '') - server_list = eval(scrapertools.find_single_match(r, '=(\[.*?\])')) - for val in range(475,0, -1): - server_list.append(server_list[0]) - server_list.pop(0) - - r = re.sub(r'=\[(.*?)\]', '=%s' % str(server_list), r) + r = re.sub(r'(?:\\|)x(\w{2})', to_hx, r).replace('var ', '') f = eval(scrapertools.get_match(r, '\s*var_0\s*=\s*([^;]+);')) for i, v in enumerate(f): @@ -875,7 +857,6 @@ def jhexdecode(t): return r - def obfs(data, key, n=126): chars = list(data) for i in range(0, len(chars)): diff --git a/plugin.video.alfa/channels/peliculasaudiolatino.py b/plugin.video.alfa/channels/peliculasaudiolatino.py index 437a3dd2..75b55604 100644 --- a/plugin.video.alfa/channels/peliculasaudiolatino.py +++ b/plugin.video.alfa/channels/peliculasaudiolatino.py @@ -9,7 +9,7 @@ from core import servertools from core.item import Item from platformcode import logger, config -HOST = 'http://peliculasaudiolatino.com' +HOST = 'http://verpeliculasenlatino.com' def mainlist(item): diff --git a/plugin.video.alfa/channels/videolibrary.py b/plugin.video.alfa/channels/videolibrary.py index a23f3c2f..c173eb0c 100644 --- a/plugin.video.alfa/channels/videolibrary.py +++ b/plugin.video.alfa/channels/videolibrary.py @@ -410,8 +410,7 @@ def findvideos(item): if config.get_setting("quit_channel_name", "videolibrary") == 0: server.title = "%s: %s" % (nom_canal.capitalize(), server.title) - server.infoLabels = item_json.infoLabels - + #server.infoLabels = item_json.infoLabels if not server.thumbnail: server.thumbnail = item.thumbnail diff --git a/plugin.video.alfa/platformcode/launcher.py b/plugin.video.alfa/platformcode/launcher.py index c23f0ffe..49652dae 100644 --- a/plugin.video.alfa/platformcode/launcher.py +++ b/plugin.video.alfa/platformcode/launcher.py @@ -24,7 +24,7 @@ def start(): funciones que deseamos que se ejecuten nada mas abrir el plugin. """ logger.info() - + config.set_setting('show_once', True) # Test if all the required directories are created config.verify_directories_created() @@ -51,6 +51,11 @@ def run(item=None): item.start = True; else: item = Item(channel="channelselector", action="getmainlist", viewmode="movie") + if config.get_setting('show_once'): + platformtools.dialog_ok('Alfa', 'Alfa recomienda para mejorar tu experiencia:', + 'Palomitas, relajate y disfruta.') + config.set_setting('show_once', False) + logger.info(item.tostring()) try: @@ -310,6 +315,7 @@ def run(item=None): log_message) + def reorder_itemlist(itemlist): logger.info() # logger.debug("Inlet itemlist size: %i" % len(itemlist))