fix adult with types and setting.xml
This commit is contained in:
@@ -101,7 +101,7 @@ def generos(item):
|
||||
matches = scrapertools.find_multiple_matches(data, '<li class="cat-item cat-item-.*?><a href="([^"]+)".*?>(.*?)<b>')
|
||||
|
||||
for scrapedurl, scrapedtitle in matches:
|
||||
if scrapedtitle == "Eroticas +18 " and config.get_setting("adult_mode") != "0":
|
||||
if scrapedtitle == "Eroticas +18 " and config.get_setting("adult_mode") != 0:
|
||||
itemlist.append(item.clone(action="eroticas", title=scrapedtitle, url=scrapedurl))
|
||||
elif (scrapedtitle != "Estrenos ") and (scrapedtitle != "Próximos Estrenos "):
|
||||
itemlist.append(item.clone(action="entradas", title=scrapedtitle, url=scrapedurl))
|
||||
|
||||
@@ -222,7 +222,7 @@ def show_result(item):
|
||||
if item.adult and config.get_setting("adult_request_password"):
|
||||
# Solicitar contraseña
|
||||
tecleado = platformtools.dialog_input("", "Contraseña para canales de adultos", True)
|
||||
if tecleado is None or tecleado != config.get_setting("adult_pin"):
|
||||
if tecleado is None or tecleado != config.get_setting("adult_password"):
|
||||
return []
|
||||
|
||||
item.channel = item.__dict__.pop('from_channel')
|
||||
|
||||
@@ -8,7 +8,6 @@ import re
|
||||
|
||||
import xbmc
|
||||
import xbmcaddon
|
||||
import xbmcgui
|
||||
|
||||
PLUGIN_NAME = "alfa"
|
||||
|
||||
@@ -112,18 +111,12 @@ def open_settings():
|
||||
# Cambio de contraseña
|
||||
if settings_post['adult_aux_new_password1']:
|
||||
if settings_post['adult_aux_new_password1'] == settings_post['adult_aux_new_password2']:
|
||||
adult_password = set_setting('adult_password', settings_post['adult_aux_new_password1'])
|
||||
set_setting('adult_password', settings_post['adult_aux_new_password1'])
|
||||
else:
|
||||
platformtools.dialog_ok("Canales para adultos",
|
||||
"Los campos 'Nueva contraseña' y 'Confirmar nueva contraseña' no coinciden.",
|
||||
"Entre de nuevo en 'Preferencias' para cambiar la contraseña")
|
||||
|
||||
# Fijar adult_pin
|
||||
adult_pin = ""
|
||||
if settings_post["adult_request_password"] == True:
|
||||
adult_pin = adult_password
|
||||
set_setting("adult_pin", adult_pin)
|
||||
|
||||
else:
|
||||
platformtools.dialog_ok("Canales para adultos", "La contraseña no es correcta.",
|
||||
"Los cambios realizados en esta sección no se guardaran.")
|
||||
@@ -156,13 +149,13 @@ def get_setting(name, channel="", server="", default=None):
|
||||
"""
|
||||
Retorna el valor de configuracion del parametro solicitado.
|
||||
|
||||
Devuelve el valor del parametro 'name' en la configuracion global, en la configuracion propia del canal 'channel'
|
||||
Devuelve el valor del parametro 'name' en la configuracion global, en la configuracion propia del canal 'channel'
|
||||
o en la del servidor 'server'.
|
||||
|
||||
Los parametros channel y server no deben usarse simultaneamente. Si se especifica el nombre del canal se devolvera
|
||||
el resultado de llamar a channeltools.get_channel_setting(name, channel, default). Si se especifica el nombre del
|
||||
Los parametros channel y server no deben usarse simultaneamente. Si se especifica el nombre del canal se devolvera
|
||||
el resultado de llamar a channeltools.get_channel_setting(name, channel, default). Si se especifica el nombre del
|
||||
servidor se devolvera el resultado de llamar a servertools.get_channel_setting(name, server, default). Si no se
|
||||
especifica ninguno de los anteriores se devolvera el valor del parametro en la configuracion global si existe o
|
||||
especifica ninguno de los anteriores se devolvera el valor del parametro en la configuracion global si existe o
|
||||
el valor default en caso contrario.
|
||||
|
||||
@param name: nombre del parametro
|
||||
@@ -175,7 +168,7 @@ def get_setting(name, channel="", server="", default=None):
|
||||
@type default: cualquiera
|
||||
|
||||
@return: El valor del parametro 'name'
|
||||
@rtype: El tipo del valor del parametro
|
||||
@rtype: El tipo del valor del parametro
|
||||
|
||||
"""
|
||||
|
||||
@@ -206,35 +199,20 @@ def get_setting(name, channel="", server="", default=None):
|
||||
value = xbmc.translatePath(value)
|
||||
|
||||
# hack para devolver el tipo correspondiente
|
||||
settings_types = get_settings_types()
|
||||
|
||||
if settings_types.get(name) in ['enum', 'number']:
|
||||
try:
|
||||
value = int(value)
|
||||
except Exception, ex:
|
||||
from platformcode import logger
|
||||
logger.error("Error al convertir '%s' de tipo 'enum','number' \n%s" % (name, ex))
|
||||
|
||||
elif settings_types.get(name) == 'bool':
|
||||
value = value == 'true'
|
||||
|
||||
elif name not in settings_types:
|
||||
try:
|
||||
if value in ['true', 'false']:
|
||||
if value == 'true':
|
||||
aux_val = True
|
||||
else:
|
||||
aux_val = False
|
||||
value = bool(aux_val)
|
||||
else:
|
||||
t = eval(value)
|
||||
value = t[0](t[1])
|
||||
except Exception, ex:
|
||||
from platformcode import logger
|
||||
logger.error("Error al convertir '%s' se pasa como tipo 'None'\n%s" % (name, ex))
|
||||
value = None
|
||||
|
||||
return value
|
||||
if value == "true":
|
||||
return True
|
||||
elif value == "false":
|
||||
return False
|
||||
else:
|
||||
# special case return as str
|
||||
if name in ["adult_password", "adult_aux_intro_password", "adult_aux_new_password1", "adult_aux_new_password2"]:
|
||||
return value
|
||||
else:
|
||||
try:
|
||||
value = int(value)
|
||||
except ValueError:
|
||||
pass
|
||||
return value
|
||||
|
||||
|
||||
def set_setting(name, value, channel="", server=""):
|
||||
@@ -269,25 +247,16 @@ def set_setting(name, value, channel="", server=""):
|
||||
return servertools.set_server_setting(name, value, server)
|
||||
else:
|
||||
try:
|
||||
settings_types = get_settings_types()
|
||||
|
||||
if settings_types.get(name) == 'bool':
|
||||
if isinstance(value, bool):
|
||||
if value:
|
||||
new_value = "true"
|
||||
value = "true"
|
||||
else:
|
||||
new_value = "false"
|
||||
value = "false"
|
||||
|
||||
elif settings_types.get(name):
|
||||
new_value = str(value)
|
||||
elif isinstance(value, (int, long)):
|
||||
value = str(value)
|
||||
|
||||
else:
|
||||
if isinstance(value, basestring):
|
||||
new_value = "(%s, %s)" % (type(value).__name__, repr(value))
|
||||
|
||||
else:
|
||||
new_value = "(%s, %s)" % (type(value).__name__, value)
|
||||
|
||||
__settings__.setSetting(name, new_value)
|
||||
__settings__.setSetting(name, value)
|
||||
|
||||
except Exception, ex:
|
||||
from platformcode import logger
|
||||
@@ -297,28 +266,6 @@ def set_setting(name, value, channel="", server=""):
|
||||
return value
|
||||
|
||||
|
||||
def get_settings_types():
|
||||
"""
|
||||
Devuelve un diccionario con los parametros (key) de la configuracion global y sus tipos (value)
|
||||
|
||||
:return: dict
|
||||
"""
|
||||
win10000 = xbmcgui.Window(10000)
|
||||
settings_types = win10000.getProperty(PLUGIN_NAME + "_settings_types")
|
||||
|
||||
if not settings_types:
|
||||
infile = open(os.path.join(get_runtime_path(), "resources", "settings.xml"))
|
||||
data = infile.read()
|
||||
infile.close()
|
||||
|
||||
matches = re.findall('<setting id="([^"]*)" type="([^"]*)', data)
|
||||
settings_types = "{%s}" % ",".join("'%s': '%s'" % tup for tup in matches)
|
||||
|
||||
win10000.setProperty(PLUGIN_NAME + "_settings_types", settings_types)
|
||||
|
||||
return eval(settings_types)
|
||||
|
||||
|
||||
def get_localized_string(code):
|
||||
dev = __language__(code)
|
||||
|
||||
|
||||
@@ -129,9 +129,9 @@ def run(item=None):
|
||||
|
||||
# Parental control
|
||||
# If it is an adult channel, and user has configured pin, asks for it
|
||||
if channeltools.is_adult(item.channel) and config.get_setting("adult_pin") != "":
|
||||
if channeltools.is_adult(item.channel) and config.get_setting("adult_request_password"):
|
||||
tecleado = platformtools.dialog_input("", "Contraseña para canales de adultos", True)
|
||||
if tecleado is None or tecleado != config.get_setting("adult_pin"):
|
||||
if tecleado is None or tecleado != config.get_setting("adult_password"):
|
||||
return
|
||||
|
||||
# # Actualiza el canal individual
|
||||
|
||||
@@ -235,12 +235,10 @@ if __name__ == "__main__":
|
||||
import xbmc
|
||||
|
||||
# modo adulto:
|
||||
# Conversion de False y True al sitema actual 0: Nunca, 1:Siempre, 2:Solo hasta que se reinicie Kodi
|
||||
# y si es == 2 lo desactivamos.
|
||||
if config.get_setting("adult_mode") == False or config.get_setting("adult_mode") == 2:
|
||||
# sistema actual 0: Nunca, 1:Siempre, 2:Solo hasta que se reinicie Kodi
|
||||
# si es == 2 lo desactivamos.
|
||||
if config.get_setting("adult_mode") == 2:
|
||||
config.set_setting("adult_mode", 0)
|
||||
elif config.get_setting("adult_mode") == True:
|
||||
config.set_setting("adult_mode", 1)
|
||||
|
||||
update_wait = [0, 10000, 20000, 30000, 60000]
|
||||
wait = update_wait[int(config.get_setting("update_wait", "videolibrary"))]
|
||||
|
||||
Reference in New Issue
Block a user