def get_json_response(service,parameters): plugintools.log("ruyaiptv.api.get_json_response service="+service+", parameters="+repr(parameters)) base_url = get_base_url() # Adds session token s = plugintools.get_setting("token") parameters["s"] = s # Adds origin server o = plugintools.get_setting("server") parameters["o"] = o # Service call service_url = urlparse.urljoin(base_url,service) plugintools.log("ruyaiptv.api.get_json_response service_url="+service_url) service_parameters = urllib.urlencode(parameters) plugintools.log("ruyaiptv.api.get_json_response parameters="+service_parameters) try: body , response_headers = plugintools.read_body_and_headers( service_url , post=service_parameters ) except: import traceback plugintools.log("ruyaiptv.api.get_json_response "+traceback.format_exc()) json_response = jsontools.load_json(body) return json_response
def get_json_response(service, parameters): plugintools.log("ruyaiptv.api.get_json_response service=" + service + ", parameters=" + repr(parameters)) base_url = get_base_url() # Adds session token s = plugintools.get_setting("token") parameters["s"] = s # Adds origin server o = plugintools.get_setting("server") parameters["o"] = o # Service call service_url = urlparse.urljoin(base_url, service) plugintools.log("ruyaiptv.api.get_json_response service_url=" + service_url) service_parameters = urllib.urlencode(parameters) plugintools.log("ruyaiptv.api.get_json_response parameters=" + service_parameters) try: body, response_headers = plugintools.read_body_and_headers( service_url, post=service_parameters) except: import traceback plugintools.log("ruyaiptv.api.get_json_response " + traceback.format_exc()) json_response = jsontools.load_json(body) return json_response
def set_channel_setting(name, value, channel): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' 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 parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. @param name: nombre del parametro @type name: str @param value: valor del parametro @type value: str @param channel: nombre del canal @type channel: str @return: 'value' en caso de que se haya podido fijar el valor y None en caso contrario @rtype: str, None """ # Creamos la carpeta si no existe if not os.path.exists( os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings = os.path.join(config.get_data_path(), "settings_channels", channel + "_data.json") dict_settings = {} dict_file = None if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "r").read()) dict_settings = dict_file.get('settings', {}) except EnvironmentError: logger.info("ERROR al leer el archivo: {0}".format(file_settings)) dict_settings[name] = value # comprobamos si existe dict_file y es un diccionario, sino lo creamos if dict_file is None or not dict_file: dict_file = {} dict_file['settings'] = dict_settings # Creamos el archivo ../settings/channel_data.json try: json_data = jsontools.dump_json(dict_file).encode("utf-8") open(file_settings, "w").write(json_data) except EnvironmentError: logger.info("[config.py] ERROR al salvar el archivo: {0}".format( file_settings)) return None return value
def get_channel_setting(name, channel): """ Retorna el valor de configuracion del parametro solicitado. Devuelve el valor del parametro 'name' en la configuracion propia del canal 'channel'. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.pelisalacarta\settings_channels el archivo channel_data.json y lee el valor del parametro 'name'. 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 retornar el valor solicitado. @param name: nombre del parametro @type name: str @param channel: nombre del canal @type channel: str @return: El valor del parametro 'name' @rtype: str """ # Creamos la carpeta si no existe if not os.path.exists( os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings = os.path.join(config.get_data_path(), "settings_channels", channel + "_data.json") dict_settings = {} dict_file = {} if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "rb").read()) if isinstance(dict_file, dict) and 'settings' in dict_file: dict_settings = dict_file['settings'] except EnvironmentError: logger.error("ERROR al leer el archivo: %s" % file_settings) if not dict_settings or name not in dict_settings: # Obtenemos controles del archivo ../channels/channel.xml try: list_controls, default_settings = get_channel_controls_settings( channel) except: default_settings = {} if name in default_settings: # Si el parametro existe en el channel.xml creamos el channel_data.json default_settings.update(dict_settings) dict_settings = default_settings dict_file['settings'] = dict_settings # Creamos el archivo ../settings/channel_data.json json_data = jsontools.dump_json(dict_file) try: open(file_settings, "wb").write(json_data) except EnvironmentError: logger.error("ERROR al salvar el archivo: %s" % file_settings) # Devolvemos el valor del parametro local 'name' si existe, si no se devuelve None return dict_settings.get(name, None)
def get_channel_setting(name, channel): """ Retorna el valor de configuracion del parametro solicitado. Devuelve el valor del parametro 'name' en la configuracion propia del canal 'channel'. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.pelisalacarta\settings_channels el archivo channel_data.json y lee el valor del parametro 'name'. 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 retornar el valor solicitado. @param name: nombre del parametro @type name: str @param channel: nombre del canal @type channel: str @return: El valor del parametro 'name' @rtype: str """ # Creamos la carpeta si no existe if not os.path.exists(os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings = os.path.join(config.get_data_path(), "settings_channels", channel+"_data.json") dict_settings = {} dict_file = {} if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "rb").read()) if isinstance(dict_file, dict) and 'settings' in dict_file: dict_settings = dict_file['settings'] except EnvironmentError: logger.info("ERROR al leer el archivo: %s" % file_settings) if len(dict_settings) == 0 or name not in dict_settings: # Obtenemos controles del archivo ../channels/channel.xml try: list_controls, default_settings = get_channel_controls_settings(channel) except: default_settings = {} if name in default_settings: # Si el parametro existe en el channel.xml creamos el channel_data.json default_settings.update(dict_settings) dict_settings = default_settings dict_file['settings'] = dict_settings # Creamos el archivo ../settings/channel_data.json json_data = jsontools.dump_json(dict_file) try: open(file_settings, "wb").write(json_data) except EnvironmentError: logger.info("ERROR al salvar el archivo: %s" % file_settings) # Devolvemos el valor del parametro local 'name' si existe if name in dict_settings: return dict_settings[name] else: return None
def get_channel_setting(name, channel): """ Retorna el valor de configuracion del parametro solicitado. Devuelve el valor del parametro 'name' en la configuracion propia del canal 'channel'. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.pelisalacarta\settings_channels el archivo channel_data.json y lee el valor del parametro 'name'. 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 retornar el valor solicitado. Parametros: name -- nombre del parametro channel [ -- nombre del canal Retorna: value -- El valor del parametro 'name' """ #Creamos la carpeta si no existe if not os.path.exists(os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings= os.path.join(config.get_data_path(), "settings_channels", channel+"_data.json") dict_settings ={} if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "r").read()) if isinstance(dict_file, dict) and dict_file.has_key('settings'): dict_settings = dict_file['settings'] except EnvironmentError: logger.info("ERROR al leer el archivo: {0}".format(file_settings)) if len(dict_settings) == 0 or not dict_settings.has_key(name): # Obtenemos controles del archivo ../channels/channel.xml from core import channeltools try: list_controls, default_settings = channeltools.get_channel_controls_settings(channel) except: default_settings = {} if default_settings.has_key(name): # Si el parametro existe en el channel.xml creamos el channel_data.json default_settings.update(dict_settings) dict_settings = default_settings dict_file = {} dict_file['settings']= dict_settings # Creamos el archivo ../settings/channel_data.json json_data = jsontools.dump_json(dict_file).encode("utf-8") try: open(file_settings, "w").write(json_data) except EnvironmentError: logger.info("[config.py] ERROR al salvar el archivo: {0}".format(file_settings)) # Devolvemos el valor del parametro local 'name' si existe if dict_settings.has_key(name): return dict_settings[name] else: return None
def set_channel_setting(name, value, channel): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' 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.streamondemand\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. @param name: nombre del parametro @type name: str @param value: valor del parametro @type value: str @param channel: nombre del canal @type channel: str @return: 'value' en caso de que se haya podido fijar el valor y None en caso contrario @rtype: str, None """ # Creamos la carpeta si no existe if not os.path.exists(os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings = os.path.join(config.get_data_path(), "settings_channels", channel+"_data.json") dict_settings = {} dict_file = None if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "r").read()) dict_settings = dict_file.get('settings', {}) except EnvironmentError: logger.info("ERROR al leer el archivo: %s" % file_settings) dict_settings[name] = value # comprobamos si existe dict_file y es un diccionario, sino lo creamos if dict_file is None or not dict_file: dict_file = {} dict_file['settings'] = dict_settings # Creamos el archivo ../settings/channel_data.json try: json_data = jsontools.dump_json(dict_file) open(file_settings, "w").write(json_data) except EnvironmentError: logger.info("ERROR al salvar el archivo: %s" % file_settings) return None return value
def set_channel_setting(name, value, channel): """ Fija el valor de configuracion del parametro indicado. Establece 'value' como el valor del parametro 'name' 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 parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. Parametros: name -- nombre del parametro value -- valor del parametro channel -- nombre del canal Retorna: 'value' en caso de que se haya podido fijar el valor y None en caso contrario """ #Creamos la carpeta si no existe if not os.path.exists(os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings= os.path.join(config.get_data_path(), "settings_channels", channel+"_data.json") dict_settings ={} if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "r").read()) if dict_file.has_key('settings'): dict_settings = dict_file['settings'] except EnvironmentError: logger.info("ERROR al leer el archivo: {0}".format(file_settings)) dict_settings[name] = value dict_file = {} dict_file['settings']= dict_settings # Creamos el archivo ../settings/channel_data.json try: open(file_settings, "w").write(jsontools.dump_json(dict_file)) except EnvironmentError: logger.info("[config.py] ERROR al salvar el archivo: {0}".format(file_settings)) return None return value
def remote_call(url,parameters={},require_session=True): logger.info("streamondemand.core.api.remote_call url="+url+", parameters="+repr(parameters)) if not url.startswith("http"): url = MAIN_URL + "/" + url if not "api_key" in parameters: parameters["api_key"] = API_KEY # Add session token if not here #if not "s" in parameters and require_session: # parameters["s"] = get_session_token() headers = DEFAULT_HEADERS post = urllib.urlencode(parameters) response_body = scrapertools.downloadpage(url,post,headers) return jsontools.load_json(response_body)
def remote_call(url, parameters={}, require_session=True): logger.info("url=" + url + ", parameters=" + repr(parameters)) if not url.startswith("http"): url = MAIN_URL + "/" + url if not "api_key" in parameters: parameters["api_key"] = API_KEY # Add session token if not here #if not "s" in parameters and require_session: # parameters["s"] = get_session_token() headers = DEFAULT_HEADERS post = urllib.urlencode(parameters) response_body = scrapertools.downloadpage(url, post, headers) return jsontools.load_json(response_body)
def remote_call(url,parameters={},require_session=True): plugintools.log("tvalacarta.core.api.remote_call url="+url+", parameters="+repr(parameters)) if not url.startswith("http"): url = MAIN_URL + "/" + url if not "api_key" in parameters: parameters["api_key"] = API_KEY # Add session token if not here if not "s" in parameters and require_session: parameters["s"] = get_session_token() headers = DEFAULT_HEADERS post = urllib.urlencode(parameters) response_body,response_headers = plugintools.read_body_and_headers(url,post,headers) return jsontools.load_json(response_body)
def remote_call(url, parameters={}, require_session=True): plugintools.log("tvalacarta.core.api.remote_call url=" + url + ", parameters=" + repr(parameters)) if not url.startswith("http"): url = MAIN_URL + "/" + url if not "api_key" in parameters: parameters["api_key"] = API_KEY # Add session token if not here if not "s" in parameters and require_session: parameters["s"] = get_session_token() headers = DEFAULT_HEADERS post = urllib.urlencode(parameters) response_body, response_headers = plugintools.read_body_and_headers( url, post, headers) return jsontools.load_json(response_body)
def get_channel_setting(name, channel): """ Retorna el valor de configuracion del parametro solicitado. Devuelve el valor del parametro 'name' en la configuracion propia del canal 'channel'. Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.pelisalacarta\settings_channels el archivo channel_data.json y lee el valor del parametro 'name'. 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 retornar el valor solicitado. Parametros: name -- nombre del parametro channel [ -- nombre del canal Retorna: value -- El valor del parametro 'name' """ #Creamos la carpeta si no existe if not os.path.exists( os.path.join(config.get_data_path(), "settings_channels")): os.mkdir(os.path.join(config.get_data_path(), "settings_channels")) file_settings = os.path.join(config.get_data_path(), "settings_channels", channel + "_data.json") dict_settings = {} if os.path.exists(file_settings): # Obtenemos configuracion guardada de ../settings/channel_data.json try: dict_file = jsontools.load_json(open(file_settings, "r").read()) if isinstance(dict_file, dict) and dict_file.has_key('settings'): dict_settings = dict_file['settings'] except EnvironmentError: logger.info("ERROR al leer el archivo: {0}".format(file_settings)) if len(dict_settings) == 0 or not dict_settings.has_key(name): # Obtenemos controles del archivo ../channels/channel.xml from core import channeltools try: list_controls, default_settings = channeltools.get_channel_controls_settings( channel) except: default_settings = {} if default_settings.has_key( name ): # Si el parametro existe en el channel.xml creamos el channel_data.json default_settings.update(dict_settings) dict_settings = default_settings dict_file = {} dict_file['settings'] = dict_settings # Creamos el archivo ../settings/channel_data.json json_data = jsontools.dump_json(dict_file).encode("utf-8") try: open(file_settings, "w").write(json_data) except EnvironmentError: logger.info( "[config.py] ERROR al salvar el archivo: {0}".format( file_settings)) # Devolvemos el valor del parametro local 'name' si existe if dict_settings.has_key(name): return dict_settings[name] else: return None