예제 #1
0
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
    )
예제 #2
0
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
예제 #3
0
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()
예제 #4
0
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
예제 #5
0
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
    )
예제 #6
0
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 
    )
예제 #7
0
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
      )