From fc51e0bc4e465c2e5715fd27125c3a3111dff6a9 Mon Sep 17 00:00:00 2001 From: alfa_addon_10 Date: Thu, 17 Aug 2017 23:39:49 +0200 Subject: [PATCH] fix adult with types and setting.xml --- plugin.video.alfa/channels/inkapelis.py | 2 +- plugin.video.alfa/channels/search.py | 2 +- plugin.video.alfa/platformcode/config.py | 105 +++++---------------- plugin.video.alfa/platformcode/launcher.py | 4 +- plugin.video.alfa/videolibrary_service.py | 8 +- 5 files changed, 33 insertions(+), 88 deletions(-) diff --git a/plugin.video.alfa/channels/inkapelis.py b/plugin.video.alfa/channels/inkapelis.py index ca8863cf..29d7bf2f 100755 --- a/plugin.video.alfa/channels/inkapelis.py +++ b/plugin.video.alfa/channels/inkapelis.py @@ -101,7 +101,7 @@ def generos(item): matches = scrapertools.find_multiple_matches(data, '
  • (.*?)') 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)) diff --git a/plugin.video.alfa/channels/search.py b/plugin.video.alfa/channels/search.py index d9a05f5b..4ae621fc 100644 --- a/plugin.video.alfa/channels/search.py +++ b/plugin.video.alfa/channels/search.py @@ -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') diff --git a/plugin.video.alfa/platformcode/config.py b/plugin.video.alfa/platformcode/config.py index 47b19146..78f2325e 100644 --- a/plugin.video.alfa/platformcode/config.py +++ b/plugin.video.alfa/platformcode/config.py @@ -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('