Correcciones
This commit is contained in:
@@ -136,6 +136,8 @@ def start(itemlist, item):
|
|||||||
|
|
||||||
# Obtiene las listas servidores, calidades disponibles desde el nodo del json de AutoPlay
|
# Obtiene las listas servidores, calidades disponibles desde el nodo del json de AutoPlay
|
||||||
server_list = channel_node.get('servers', [])
|
server_list = channel_node.get('servers', [])
|
||||||
|
for server in server_list:
|
||||||
|
server = server.lower()
|
||||||
quality_list = channel_node.get('quality', [])
|
quality_list = channel_node.get('quality', [])
|
||||||
|
|
||||||
# Si no se definen calidades la se asigna default como calidad unica
|
# 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',
|
# Se guardan los textos de cada servidor y calidad en listas p.e. favorite_servers = ['openload',
|
||||||
# 'streamcloud']
|
# 'streamcloud']
|
||||||
for num in range(1, 4):
|
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]])
|
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
|
# 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,
|
# si el servidor y la calidad no se encuentran en las listas de favoritos o la url esta repetida,
|
||||||
# descartamos el item
|
# 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:
|
or item.url in url_list_valid:
|
||||||
item.type_b = True
|
item.type_b = True
|
||||||
b_dict['videoitem']= item
|
b_dict['videoitem']= item
|
||||||
autoplay_b.append(b_dict)
|
autoplay_b.append(b_dict)
|
||||||
continue
|
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)
|
autoplay_elem["indice_quality"] = favorite_quality.index(item.quality)
|
||||||
|
|
||||||
elif priority == 2: # Solo servidores
|
elif priority == 2: # Solo servidores
|
||||||
|
|
||||||
# si el servidor no se encuentra en la lista de favoritos o la url esta repetida,
|
# si el servidor no se encuentra en la lista de favoritos o la url esta repetida,
|
||||||
# descartamos el item
|
# 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
|
item.type_b = True
|
||||||
b_dict['videoitem'] = item
|
b_dict['videoitem'] = item
|
||||||
autoplay_b.append(b_dict)
|
autoplay_b.append(b_dict)
|
||||||
continue
|
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
|
elif priority == 3: # Solo calidades
|
||||||
|
|
||||||
@@ -261,11 +263,11 @@ def start(itemlist, item):
|
|||||||
if not platformtools.is_playing() and not played:
|
if not platformtools.is_playing() and not played:
|
||||||
videoitem = autoplay_elem['videoitem']
|
videoitem = autoplay_elem['videoitem']
|
||||||
logger.debug('videoitem %s' % videoitem)
|
logger.debug('videoitem %s' % videoitem)
|
||||||
if videoitem.server not in max_intentos_servers:
|
if videoitem.server.lower() not in max_intentos_servers:
|
||||||
max_intentos_servers[videoitem.server] = max_intentos
|
max_intentos_servers[videoitem.server.lower()] = max_intentos
|
||||||
|
|
||||||
# Si se han alcanzado el numero maximo de intentos de este servidor saltamos al siguiente
|
# 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
|
continue
|
||||||
|
|
||||||
lang = " "
|
lang = " "
|
||||||
@@ -312,15 +314,15 @@ def start(itemlist, item):
|
|||||||
logger.debug(str(len(autoplay_list)))
|
logger.debug(str(len(autoplay_list)))
|
||||||
|
|
||||||
# Si hemos llegado hasta aqui es por q no se ha podido reproducir
|
# 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
|
# Si se han alcanzado el numero maximo de intentos de este servidor
|
||||||
# preguntar si queremos seguir probando o lo ignoramos
|
# 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()
|
text = "Parece que los enlaces de %s no estan funcionando." % videoitem.server.upper()
|
||||||
if not platformtools.dialog_yesno("AutoPlay", text,
|
if not platformtools.dialog_yesno("AutoPlay", text,
|
||||||
"¿Desea ignorar todos los enlaces de este servidor?"):
|
"¿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
|
# Si no quedan elementos en la lista se informa
|
||||||
if autoplay_elem == autoplay_list[-1]:
|
if autoplay_elem == autoplay_list[-1]:
|
||||||
@@ -439,7 +441,7 @@ def check_value(channel, itemlist):
|
|||||||
quality_list = channel_node['quality'] = list()
|
quality_list = channel_node['quality'] = list()
|
||||||
|
|
||||||
for item in itemlist:
|
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)
|
server_list.append(item.server)
|
||||||
change = True
|
change = True
|
||||||
if item.quality not in quality_list and item.quality !='':
|
if item.quality not in quality_list and item.quality !='':
|
||||||
|
|||||||
@@ -664,14 +664,12 @@ def findvideos(item):
|
|||||||
data = agrupa_datos(httptools.downloadpage(item.url).data)
|
data = agrupa_datos(httptools.downloadpage(item.url).data)
|
||||||
data_obf = scrapertools.find_single_match(data, "var ad\s*=\s*'([^']+)'")
|
data_obf = scrapertools.find_single_match(data, "var ad\s*=\s*'([^']+)'")
|
||||||
data_decrypt = jsontools.load(obfs(base64.b64decode(data_obf), 126 - int(key)))
|
data_decrypt = jsontools.load(obfs(base64.b64decode(data_obf), 126 - int(key)))
|
||||||
|
|
||||||
infolabels = {}
|
infolabels = {}
|
||||||
year = scrapertools.find_single_match(data, '<span>Año:\s*</span>.*?(\d{4})')
|
year = scrapertools.find_single_match(data, '<span>Año:\s*</span>.*?(\d{4})')
|
||||||
infolabels["year"] = year
|
infolabels["year"] = year
|
||||||
matches = []
|
matches = []
|
||||||
for match in data_decrypt:
|
for match in data_decrypt:
|
||||||
prov = eval(scrapertools.find_single_match(data_js, 'p\[%s\]\s*=\s*(\{.*?\}[\']\})' % match["provider"]))
|
prov = eval(scrapertools.find_single_match(data_js, 'p\[%s\]\s*=\s*(\{.*?\}[\']\})' % match["provider"]))
|
||||||
|
|
||||||
server_url = scrapertools.find_single_match(prov['l'], 'return\s*"(.*?)"')
|
server_url = scrapertools.find_single_match(prov['l'], 'return\s*"(.*?)"')
|
||||||
|
|
||||||
url = '%s%s' % (server_url, match['code'])
|
url = '%s%s' % (server_url, match['code'])
|
||||||
@@ -831,20 +829,10 @@ def get_status(status, type, id):
|
|||||||
## --------------------------------------------------------------------------------
|
## --------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def jhexdecode(t):
|
def jhexdecode(t):
|
||||||
|
r = re.sub(r'_\d+x\w+x(\d+)', 'var_' + r'\1', t)
|
||||||
|
r = re.sub(r'_\d+x\w+', 'var_0', r)
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
def to_hx(c):
|
def to_hx(c):
|
||||||
h = int("%s" % c.groups(0), 16)
|
h = int("%s" % c.groups(0), 16)
|
||||||
@@ -852,14 +840,8 @@ def jhexdecode(t):
|
|||||||
return chr(h)
|
return chr(h)
|
||||||
else:
|
else:
|
||||||
return ""
|
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):
|
r = re.sub(r'(?:\\|)x(\w{2})', to_hx, r).replace('var ', '')
|
||||||
server_list.append(server_list[0])
|
|
||||||
server_list.pop(0)
|
|
||||||
|
|
||||||
r = re.sub(r'=\[(.*?)\]', '=%s' % str(server_list), r)
|
|
||||||
|
|
||||||
f = eval(scrapertools.get_match(r, '\s*var_0\s*=\s*([^;]+);'))
|
f = eval(scrapertools.get_match(r, '\s*var_0\s*=\s*([^;]+);'))
|
||||||
for i, v in enumerate(f):
|
for i, v in enumerate(f):
|
||||||
@@ -875,7 +857,6 @@ def jhexdecode(t):
|
|||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
def obfs(data, key, n=126):
|
def obfs(data, key, n=126):
|
||||||
chars = list(data)
|
chars = list(data)
|
||||||
for i in range(0, len(chars)):
|
for i in range(0, len(chars)):
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from core import servertools
|
|||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import logger, config
|
from platformcode import logger, config
|
||||||
|
|
||||||
HOST = 'http://peliculasaudiolatino.com'
|
HOST = 'http://verpeliculasenlatino.com'
|
||||||
|
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
|
|||||||
@@ -410,8 +410,7 @@ def findvideos(item):
|
|||||||
if config.get_setting("quit_channel_name", "videolibrary") == 0:
|
if config.get_setting("quit_channel_name", "videolibrary") == 0:
|
||||||
server.title = "%s: %s" % (nom_canal.capitalize(), server.title)
|
server.title = "%s: %s" % (nom_canal.capitalize(), server.title)
|
||||||
|
|
||||||
server.infoLabels = item_json.infoLabels
|
#server.infoLabels = item_json.infoLabels
|
||||||
|
|
||||||
if not server.thumbnail:
|
if not server.thumbnail:
|
||||||
server.thumbnail = item.thumbnail
|
server.thumbnail = item.thumbnail
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ def start():
|
|||||||
funciones que deseamos que se ejecuten nada mas abrir el plugin.
|
funciones que deseamos que se ejecuten nada mas abrir el plugin.
|
||||||
"""
|
"""
|
||||||
logger.info()
|
logger.info()
|
||||||
|
config.set_setting('show_once', True)
|
||||||
# Test if all the required directories are created
|
# Test if all the required directories are created
|
||||||
config.verify_directories_created()
|
config.verify_directories_created()
|
||||||
|
|
||||||
@@ -51,6 +51,11 @@ def run(item=None):
|
|||||||
item.start = True;
|
item.start = True;
|
||||||
else:
|
else:
|
||||||
item = Item(channel="channelselector", action="getmainlist", viewmode="movie")
|
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())
|
logger.info(item.tostring())
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -310,6 +315,7 @@ def run(item=None):
|
|||||||
log_message)
|
log_message)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def reorder_itemlist(itemlist):
|
def reorder_itemlist(itemlist):
|
||||||
logger.info()
|
logger.info()
|
||||||
# logger.debug("Inlet itemlist size: %i" % len(itemlist))
|
# logger.debug("Inlet itemlist size: %i" % len(itemlist))
|
||||||
|
|||||||
Reference in New Issue
Block a user