Como prerequisito es necesario q tanto los canales remotos como locales hayan hecho el cambio desde los archivos xml a json para q todo funcione correctamente.
Como siempre envio esta modificacion como una pull request al repositorio oficial.
Cambios introducidos
- Se ha añadido una nueva ficha en la configuracion para reunir todo lo relacionado con las actualizaciones. Las opciones disponibles son:
- Actualizar la biblioteca al abrir XBMC: Esta opcion ya la conoceis, permite actualizar la biblioteca automaticamente.
- Actualizar Pelisalacarta automaticamente: Activa o desactiva la busqueda de nuevas versiones del plugin al entrar.
- Actualizar automaticamente canales: Permite elegir cuando se buscaran nuevas versiones de los canales. Las opciones son: Nunca, Al Inicio (actualiza, en segundo plano, todos los canales al iniciar el plugin) o Al entrar en el canal (como se hacia hasta ahora).
- Añadir nuevos canales automaticamente: Activa o desactiva la busqueda de nuevos canales en el repositorio oficial.
- Canales eliminados del repositorio oficial: Permite elegir que hacer cuando tenemos instalado un canal oficial que no aparece en el repositorio oficial. Las opciones son: Mostrar (en el listado de canales), Ocultar (marca el canal como desactivado, pero no lo borra) y Eliminar (borra el canal y su archivo json asociado de nuestro dispositivo)
- Buscar actualizaciones de canales no oficiales: Se introduce la posibilidad de fijar, en el archivo json, un repositorio alternativo ('update_url') desde el q actualizar los canales. Estos canales son los definidos como no oficiales. Las opciones disponibles son: Nunca y Como los oficiales (creo q sobran las explicaciones )
- Ahora el listado de canales es dinamico. Es decir no es necesario añadir nada en el channelselector.py para q nuestro canal aparezca en el listado. Para hacer esto se utiliza un indice de canales q se crea automaticamente si no existe en: ..\userdata\addon_data\plugin.video.pelisalacarta\list_channels.json ¿Como instalar un nuevo canal descargado del foro, por ejemplo? Muy facil, basta añadirlo en la carpeta ..\addons\plugin.video.pelisalacarta\channels y eliminar el archivo list_channels.json. Al volver a entrar en Pelisalacarta se volvera a crear y nuetro canal ya esta disponible.
- default.py: Gracias a divadr, del q cada dia aprendo algo nuevo, he consegido lanzar una llamada a una funcion (launcher.start) solo una vez, al iniciar el plugin.
- core/channeltools.py: Nuevo archivo. La idea seria añadir aqui todo lo relacionado con la gestion de los canales. Por ejemplo: Leer sus propiedades (canal.json), comprobar actualizaciones, descargarlo, crear y actualizar el indice de canales, etc...
- platformcode/guitools.py: Nuevo archivo. Su funcion seria adaptar la libreria xbmcgui a cada una de las plataformas. En este caso podria parecer un poco inutil al tratarse de Kodi, pero la idea es hacer el resto del codigo lo mas neutral posible.
- launcher.py, updater.py, jsontools.py, settings.xml y channelselector.py : Los cambios necesarios para q todo (o eso espero ) funcione. A algunos de estos archivos aun se les podria pasar un poco la escoba para hacer limpieza, pero eso lo dejo para mas adelante.