Plugin Tools

¿Qué es «Plugin Tools»?

Es una librería en Python diseñada para simplificar al máximo el desarrollo de add-ons para XBMC, proporcionando sencillas funciones para resolver los problemas habituales que tienes cuando programas.

Si analizas el código fuente verás que es muy sencillo (las primeras versiones tenían apenas 200 líneas), aunque es algo que va creciendo. Y está pensado para que el código de tu add-on sea sencillo y legible.

Más que una librería podría decirse que «Plugin Tools» es un framework de desarrollo, pero no se si podemos llamar «framework» a algo de 200 líneas. Por suerte, da igual cómo le llamemos 🙂

Te permitirá hacer de forma fácil algunas de las operaciones más habituales que te encontrarás cuando desarrollas un add-on de XBMC.

  • Escribir en el log de XBMC
  • Extraer los parámetros
  • Meter el contenido de una URL en una cadena de texto
  • Procesar expresiones regulares
  • Añadir ítems a XBMC
  • Reproducir un ítem
  • Acceder a la configuración del add-on
  • Usar el teclado en pantalla de XBMC
  • Cambiar la presentación

Descargar

Puedes descargar la última versión de plugintools.py en este enlace:

http://www.mimediacenter.info/descargas/plugintools-1.0.8.zip

O si lo prefieres, puedes descargar un add-on de vídeo ya terminado que he desarrollado usando esta librería. Su función es mostrar los vídeos de mi canal de YouTube, tómalo como un ejemplo que probablemente también irá mejorando en el futuro.

http://www.mimediacenter.info/descargas/plugin.video.mimediacenter-1.0.8.zip

Documentación

Uno de los motivos para publicar esta librería ha sido principalmente aportar mi granito de arena para que sea tan fácil desarrollar add-ons para XBMC, que cualquiera pueda hacer el suyo con unos conocimientos básicos de programación.

Así que la documentación de este add-on está escrita en una serie de entradas del blog describiendo sus funciones principales, y cómo usarlas para construir tus propios add-ons para XBMC.

¿De donde viene el nombre?

Hace mucho tiempo que desarrollo, y siempre evito utilizar la típica colección de funciones que los programadores ponen bajo el nombre de «utiles.php», «funciones.py» o similar. La principal razón es que acaba convirtiéndose en una especie de cajón de sastre donde cabe de todo, no suele ser reutilizable y a la larga trae más problemas de los que resuelve.

Mi técnica (cuestionable como cualquiera) es tener varias de estas funciones, con un nombre más cercano a su función y menos genérico, para el que me he acostumbrado a utilizar la terminación «tools». De esa forma puedo reutilizarlas entre proyectos, sin complicarme demasiado la vida.

Así, esta plugintools.py es una librería para desarrollar plugins. Pero puedes encontrar en pelisalacarta otros módulos como «xbmctools.py», «scrapertools.py», «servertools.py».

Todas las versiones

1.0.8

  • Añadido la posibilidad de poner fanart, información de biblioteca e infolabels en add_item
  • Añadido set_view para cambiar la vista según el skin
  • Añadido selector de opciones

Descarga: http://www.mimediacenter.info/descargas/plugintools-1.0.8.zip

1.0.5

  • Añadido read_body_and_headers
  • Añadido show_picture para add-ons de fotografía
  • Añadidos parámetros opcionales «title» y «hidden» a keyboard_input

Descarga: http://www.mimediacenter.info/descargas/plugintools-1.0.5.zip

1.0.4

  • Añadido get_temp_path, get_runtime_path, get_data_path
  • Añadido get_setting, set_setting, open_settings_dialog and get_localized_string
  • Añadido keyboard_input
  • Añadido message

Descarga: http://www.mimediacenter.info/descargas/plugintools-1.0.4.zip

1.0.3

  • Añadida función «direct_play» para reproducir un vídeo llamando directamente al reproductor, sin usar setResolvedUrl
  • Arreglado un fallo cuando el vídeo estaba marcado como isPlayable=True

Descarga: (No disponible)

1.0.2

  • Añadido parámetro isPlayable a «add_item» para indicar que el item es reproducible

Descarga: http://www.mimediacenter.info/descargas/plugintools-1.0.2.zip

1.0.1

  • Ahora cuando find_single_match no encuentra nada, devuelve una cadena vacía en lugar de dar un error
  • Retirado el ID del addon del módulo para hacerlo independiente del add-on

Descarga: (no disponible)

1.0.0

  • Primera versión

Descarga: http://www.mimediacenter.info/descargas/plugintools-1.0.0.zip

7 comentarios

  1. Muchas gracias por tu iniciativa y por el fantástico trabajo que realizas en pelisalacarta. Me interesa mucho el desarrollo de add-ons para XBMC.

    Espero próximas noticias.

    Saludos.

  2. jose ramon 10/12/2012 en 23:11

    muchas grcais crack..ya estoy deeando ver la documentacion, lo intente en el pasado con un canal y solo me funciono en el ipad….a estudiar

  3. Gracias, espero que los tutoriales sean fáciles de seguir.

    Si no quedan claros pregunta, que eso me ayudará a mejorarlos 🙂

  4. hola, Jesus
    Planeas hacer un update de esto para Gotham y Kodi

  5. Sin menospreciar la parte de scraping que usa este framework, os recomiendo que veais tambien este otro framework realmente util para hacer scraping de sitios web:

    https://pypi.python.org/pypi/Scrapy

    Es sencillamente perfecto.

  6. Hola una pregunta, quisiera saber si sirve también para kodi ? gracias.

  7. No se si aún sigues actualizando este código, pero estaría bien si se pudiera tener algún método para que el ícono del canal que agregamos sea importado automáticamente. Eso sería genial.

    Muchas gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *