def set_setting(name, value, channel="", server=""): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' en la configuracion global o en la configuracion propia del canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.alfa\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.json y crea un archivo channel_data.json antes de modificar el parametro 'name'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. Parametros: name -- nombre del parametro value -- valor del parametro channel [opcional] -- nombre del canal Retorna: 'value' en caso de que se haya podido fijar el valor y None en caso contrario """ if channel: from core import channeltools return channeltools.set_channel_setting(name, value, channel) elif server: from core import servertools return servertools.set_server_setting(name, value, server) else: try: settings_types = get_settings_types() if settings_types.get(name) == 'bool': if value: new_value = "true" else: new_value = "false" elif settings_types.get(name): new_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) except Exception, ex: from core import logger logger.error("Error al convertir '%s' no se guarda el valor \n%s" % (name, ex)) return None return value
def set_setting(name, value, channel="", server=""): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' en la configuracion global o en la configuracion propia del canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.alfa\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.xml y crea un archivo channel_data.json antes de modificar el parametro 'name'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. Parametros: name -- nombre del parametro value -- valor del parametro channel [opcional] -- nombre del canal Retorna: 'value' en caso de que se haya podido fijar el valor y None en caso contrario """ if channel: from core import channeltools return channeltools.set_channel_setting(name, value, channel) elif server: from core import servertools return servertools.set_server_setting(name, value, server) else: global settings_dic if isinstance(value, bool): if value: value = "true" else: value = "false" elif isinstance(value, (int, long)): value = str(value) settings_dic[name] = value from xml.dom import minidom # Crea un Nuevo XML vacio new_settings = minidom.getDOMImplementation().createDocument( None, "settings", None) new_settings_root = new_settings.documentElement for key in settings_dic: nodo = new_settings.createElement("setting") nodo.setAttribute("value", settings_dic[key]) nodo.setAttribute("id", key) new_settings_root.appendChild(nodo) fichero = open(configfilepath, "w") fichero.write(new_settings.toprettyxml(encoding='utf-8')) fichero.close() return value
def set_setting(name, value, channel="", server=""): """ Sets the configuration value of the indicated parameter. Set 'value' as the value of the parameter 'name' in the global configuration or in the own configuration of the channel 'channel'. Returns the changed value or None if the assignment could not be completed. If the name of the channel is specified, search in the path \ addon_data \ plugin.video.kod \ settings_channels the channel_data.json file and set the parameter 'name' to the value indicated by 'value'. If the file channel_data.json does not exist look in the channels folder for the channel.json file and create a channel_data.json file before modifying the 'name' parameter. If the parameter 'name' does not exist, it adds it, with its value, to the corresponding file. Parameters: name - name of the parameter value - value of the parameter channel [optional] - channel name Returns: 'value' if the value could be set and None otherwise """ if channel: from core import channeltools return channeltools.set_channel_setting(name, value, channel) elif server: from core import servertools return servertools.set_server_setting(name, value, server) else: try: if isinstance(value, bool): if value: value = "true" else: value = "false" elif isinstance(value, (int, long)): value = str(value) __settings__.setSetting(name, value) except Exception as ex: from platformcode import logger logger.error("Error converting '%s' value is not saved \n%s" % (name, ex)) return None return value
def set_setting(name, value, channel="", server=""): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' en la configuracion global o en la configuracion propia del canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.pelisalacarta\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.xml y crea un archivo channel_data.json antes de modificar el parametro 'name'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. Parametros: name -- nombre del parametro value -- valor del parametro channel [opcional] -- nombre del canal Retorna: 'value' en caso de que se haya podido fijar el valor y None en caso contrario """ if channel: from core import channeltools return channeltools.set_channel_setting(name, value, channel) elif server: from core import servertools return servertools.set_server_setting(name, value, server) else: try: if isinstance(value, bool): if value: value = "true" else: value = "false" elif isinstance(value, (int, long)): value = str(value) import xbmcplugin xbmcplugin.setSetting(name, value) except: return None return value
def set_setting(name, value, channel="", server=""): global alfa_settings """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' en la configuracion global o en la configuracion propia del canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.alfa\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.json y crea un archivo channel_data.json antes de modificar el parametro 'name'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. Parametros: name -- nombre del parametro value -- valor del parametro channel [opcional] -- nombre del canal Retorna: 'value' en caso de que se haya podido fijar el valor y None en caso contrario """ value_init = value if channel: from core import channeltools return channeltools.set_channel_setting(name, value, channel) elif server: from core import servertools return servertools.set_server_setting(name, value, server) else: try: alfa_caching = bool(window.getProperty("alfa_caching")) if alfa_caching: alfa_settings = json.loads(window.getProperty("alfa_settings")) # Si el alfa_caching está activo, se usa la variable cargada. Si no, se cargan por el método tradicional if not alfa_settings: get_all_settings_addon() if isinstance(value, bool): if value: value = "true" else: value = "false" elif isinstance(value, (int, long)): value = str(value) __settings__.setSetting(name, value) if name == 'caching': if value_init: window.setProperty("alfa_caching", str(True)) alfa_caching = True else: window.setProperty("alfa_caching", '') alfa_caching = False if not alfa_caching: alfa_settings = {} window.setProperty("alfa_settings", json.dumps(alfa_settings)) if alfa_caching and alfa_settings and alfa_settings.get(name, '') != value_init: alfa_settings[name] = value_init window.setProperty("alfa_settings", json.dumps(alfa_settings)) except Exception as ex: alfa_settings = {} window.setProperty("alfa_settings", json.dumps(alfa_settings)) from platformcode import logger logger.error("Error al convertir '%s' no se guarda el valor \n%s" % (name, ex)) return None return value
def set_setting(name, value, channel="", server=""): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' en la configuracion global o en la configuracion propia del canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.pelisalacarta\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.xml y crea un archivo channel_data.json antes de modificar el parametro 'name'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. Parametros: name -- nombre del parametro value -- valor del parametro channel [opcional] -- nombre del canal Retorna: 'value' en caso de que se haya podido fijar el valor y None en caso contrario """ if channel: from core import channeltools return channeltools.set_channel_setting(name, value, channel) elif server: from core import servertools return servertools.set_server_setting(name, value, server) else: try: settings_types = get_settings_types() if settings_types.has_key(name): # El parametro esta en Preferences: lo abrimos y eliminamos la linea sep = os.path.sep user_preferences = get_data_path().replace( sep + "Data" + sep, sep + "Preferences" + sep) + ".xml" data = open(user_preferences, "rb").readlines() for line in data: if re.match("<%s/?>" % name, line.strip()): data.remove(line) # Añadir al final del listado el parametro con su nuevo valor if value: data.insert(-1, " <{0}>{1}</{0}>\n".format(name, value)) else: data.insert(-1, " <{0}/>\n".format(name)) # Guardar el archivo de nuevo out_file = open(user_preferences, "wb") for line in data: out_file.write(line) else: # El parametro no esta en Preferences: Lo añadimos a dict_global bridge.dict_global[name] = value except: return None return value