def mostrar_agenda(params): plugintools.debug("arenavisionezy.mostrar_agenda "+repr(params)) # Parse json jsonUrl = parserJsonUrl + '?cat=all' plugintools.debug("arenavisionezy.mostrar_agenda Parsing: " + jsonUrl) jsonSrc = urllib2.urlopen(jsonUrl) datos = json.load(jsonSrc) eventos = datos['eventos'] last_update = datos['last_update'] # Titulo de la categoria titulo01 = " [COLOR skyblue]Agenda completa[/COLOR] (actualizado: "+last_update+")" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), action='', url='', isPlayable = False, folder = False ) # Para cada evento for evento in eventos: title = "[COLOR skyblue]" + evento['fecha'] + " " + evento['hora'] + "[/COLOR] " + evento['titulo'] plot = "" thumbnail = generar_miniatura(evento['categoria']) url = "plugin://plugin.video.arenavisionezy/?action=listado_canales&evento="+evento['id'] plugintools.add_item( action="listado_canales" , title=title , plot=plot , url=url , thumbnail=thumbnail , isPlayable=True, folder=True )
def mostrar_errores(titulo, mensaje, debug=""): plugintools.debug("ERROR: " + titulo) errTitle = "[COLOR red][UPPERCASE]ERROR: " + titulo + "[/UPPERCASE][/COLOR]" errMsg = mensaje + "[CR]Para mas informacion, por favor, consulta el registro." plugintools.add_item( title = errTitle, thumbnail = generar_miniatura('default'), action='', url='', isPlayable = False, folder = False ) plugintools.add_item( title = errMsg, thumbnail = generar_miniatura('default'), action='', url='', isPlayable = False, folder = False ) return
def run(): #plugintools.log("arenavisionezy.run") # Get params params = plugintools.get_params() plugintools.debug("arenavisionezy.run " + repr(params)) if params.get("action") is None: plugintools.debug("arenavisionezy.run No hay accion") listado_categorias(params) else: action = params.get("action") plugintools.log("arenavisionezy.run Accion: " + action) exec action+"(params)" plugintools.close_item_list()
def makeRequest(url): plugintools.debug("makeRequest: " + url) try: req = urllib2.Request(url) response = urllib2.urlopen(req) data = response.read() response.close() return data except urllib2.URLError, e: errorMsg = str(e) plugintools.debug(errorMsg); xbmc.executebuiltin("Notification(ArenavisionEzy,"+errorMsg+")") data_err = [] data_err.append(['error', True]) data_err.append(['msg', errorMsg]) data_err = json.dumps(data_err) data_err = "{\"error\":\"true\", \"msg\":\""+errorMsg+"\"}" return data_err
def listado_eventos(params): plugintools.debug("Python Version: " + (sys.version)) plugintools.debug("arenavisionezy.listado_eventos "+repr(params)) categoria = params['cat'] # Parse json jsonUrl = parserJsonUrl + '?cat='+urllib.quote(categoria) plugintools.debug("arenavisionezy.listado_eventos Parsing: " + jsonUrl) jsonSrc = makeRequest(jsonUrl) plugintools.debug("arenavisionezy.listado_eventos Recibido jsonSrc: " + jsonSrc) # Cargar respuesta en json datos = json.loads(jsonSrc) # Comprobar error en la respuesta if('error' in datos): errorTitle = 'Error procesando eventos' errorMsg = datos['msg'] mostrar_errores(errorTitle, errorMsg) return eventos = datos['eventos'] last_update = datos['last_update'] # Titulo de la categoria titulo01 = " [COLOR skyblue][UPPERCASE]"+categoria+"[/UPPERCASE][/COLOR] (actualizado: "+last_update+")" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), action='', url='', isPlayable = False, folder = False ) # Para cada evento for evento in eventos: # ToDo eventos del pasado #plugintools.debug("Fecha: " + fecha_hora) #showDate = datetime.strptime(fecha_hora, "%d/%m/%y %H:%M:%S").date() #todayDate = datetime.today().date() #if(showDate < todayDate): # color = 'grey' #else: # color = 'skyblue' color = 'skyblue' title = "[COLOR "+color+"]" + evento['fecha'] + " " + evento['hora'] + "[/COLOR] " + evento['titulo'] plot = "" thumbnail = generar_miniatura(categoria) url = "plugin://plugin.video.arenavisionezy/?action=listado_canales&evento="+evento['id'] plugintools.add_item( action="listado_canales" , title=title , plot=plot , url=url , thumbnail=thumbnail , isPlayable=True, folder=True )
def listado_canales(params): plugintools.debug("arenavisionezy.listado_canales "+repr(params)) evento = params['evento'] # Parse json jsonUrl = parserJsonUrl + '?evento='+evento plugintools.debug("arenavisionezy.listado_canales Parsing: " + jsonUrl) jsonSrc = makeRequest(jsonUrl) plugintools.debug("arenavisionezy.listado_eventos Recibido jsonSrc: " + jsonSrc) # Cargar respuesta en json evento = json.loads(jsonSrc) # Comprobar error en la respuesta if('error' in evento): errorTitle = 'Error procesando canales' errorMsg = evento['msg'] mostrar_errores(errorTitle, errorMsg) return return # Datos del evento categoria = evento['categoria'] titulo = evento['titulo'] fecha = evento['fecha'] canales = evento['canales'] # Informacion del evento titulo01 = "[COLOR skyblue] " + categoria + " - " + fecha + "[/COLOR]" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), isPlayable = True, folder = True ) titulo01 = "[COLOR skyblue] " + titulo + "[/COLOR]" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), isPlayable = True, folder = True ) # Canales del evento for canal in canales: canal_nombre = canal['canal'] canal_enlace = canal['enlace'] canal_type = canal['type'] canal_mode = canal['mode'] #etiqueta = "[COLOR red][" + "[UPPERCASE]" + canal_type + "[/UPPERCASE]" + " " + canal_nombre + "][/COLOR] " + titulo + " - " + canal_mode #etiqueta = "[COLOR red][[/COLOR]" etiqueta = "[COLOR red]" + canal_nombre + "[/COLOR]" + " " if(canal_type == "sop"): etiqueta = etiqueta + "[COLOR green][I](SOP)[/I][/COLOR]" else: etiqueta = etiqueta + "[COLOR blue][I](ACE)[/I][/COLOR]" #etiqueta = etiqueta + " " + "[COLOR red]" + "[" + " " + canal_nombre + "][/COLOR] " + titulo + " - " + canal_mode etiqueta = etiqueta + " " + titulo #enlace = "plugin://program.plexus/?url=" + canal_enlace + "&mode="+canal_mode+"&name=" + canal_nombre + " " + titulo enlace = "plugin://program.plexus/?url=" + canal_enlace + "&mode="+canal_mode+"&name=" + titulo plugintools.add_item( title = etiqueta , url = enlace , thumbnail = generar_miniatura(categoria) , isPlayable = True, folder = False )
def listado_categorias(params): plugintools.debug("arenavisionezy.listado_categorias "+repr(params)) # Definir URL del JSON jsonUrl = parserJsonUrl plugintools.debug("arenavisionezy.listado_categorias Parsing: " + jsonUrl) # Peticion del JSON jsonSrc = makeRequest(jsonUrl) plugintools.debug("arenavisionezy.listado_eventos Recibido jsonSrc: " + jsonSrc) # Comprobar formato respuesta if(is_json(jsonSrc) == False): errorTitle = 'Respuesta no JSON' errorMsg = "La respuesta recibida no tiene formato JSON" mostrar_errores(errorTitle, errorMsg, jsonSrc) return # Cargar respuesta en json datos = json.loads(jsonSrc) # Comprobar error en la respuesta if('error' in datos): errorTitle = 'Error procesando categorias' errorMsg = datos['msg'] mostrar_errores(errorTitle, errorMsg) return categorias = datos['categories'] last_update = datos['last_update'] # Informacion del evento titulo01 = " [COLOR skyblue]ArenaVision EZY[/COLOR] Version "+addon_version+" (by Wazzu)" titulo02 = " [COLOR deepskyblue]Ultima actualizacion: "+last_update+"[/COLOR]" plugintools.add_item( title = titulo01 , thumbnail = generar_miniatura('default'), folder = False ) plugintools.add_item( title = titulo02 , thumbnail = generar_miniatura('default'), folder = False ) # Todos los eventos plugintools.add_item( action = "mostrar_agenda" , title = "[COLOR deepskyblue][VER AGENDA COMPLETA][/COLOR]", plot = '' , url = "plugin://plugin.video.arenavisionezy/?action=mostrar_agenda", thumbnail = generar_miniatura('default'), isPlayable = True, folder = True ) # Listado de categorias for categoria in categorias: # Miniatura category_thumb = generar_miniatura(categoria['categoria']) plugintools.debug("arenavisionezy.category_thumb "+category_thumb) # Items plugintools.add_item( action = "listado_eventos" , title = "[UPPERCASE]" + categoria['categoria'] + "[/UPPERCASE]" + " (" + categoria['items'] + " eventos)", plot = '' , url = "plugin://plugin.video.arenavisionezy/?action=listado_eventos&cat="+urllib.quote(categoria['categoria']), thumbnail = category_thumb, isPlayable = True, folder = True )