Hola, como ya lo tenía medio montado en mis versiones, he modificado un poco mi updater.py para hace más o menos lo que hemos estado comentando en el foro.
Os lo subo… por si queréis echarle un vistazo, creo que podría ser un punto de partida sobre lo que trabajar.
Lo que hace:
Genera un índice de canales y servidores de forma automática y gestiona cuando debe regenerarse en función de si ha cambiado algún archivo desde su creación (la idea es poder usarlo también en el channelselector, y mover el código al channeltools o donde corresponda)
Funciona en base a la fecha de creación de los archivos, y falta probar su comportamiento en linux, mac, etc... para asegurarnos que el índice se regenere si se ha cambiado algún archivo, y no se regenere en cada petición a get_channels_list()
Busca actualizaciones al entrar al plugin y actúa según la configuración (Actualmente se cambia editando unas variables al principio del .py, falta ponerlo al settings)
1. Auto, Descarga las actualizaciones sin preguntar nada
2. Preguntar, Te pregunta si quieres descargarlas, pero no te da opciones de elegir cual
3. Elegir, Te avisa que hay actualizaciones y tienes que ir al menú "Actualizaciones" para gestionar que quieres descargar.
Menu Actualizaciones en el menú principal:
Añadido un Ítem llamado "Actualizaciones" en el menú principal, justo después de "Configuración" para entrar al "Gestor de actualizaciones"
Dentro hay:
Opción "Volver a buscar actualizaciones" para volver a buscar nuevas actualizaciones
Opción "Descargar todo" para descargar todas las actualizaciones
Si hay actualizaciones, te muestra el listado, indicándote si es un canal o servidor, y si es nuevo o actualizado
De momento no te muestra ninguna opción para eliminar canales que no están en el repositorio (tengo dudas de la necesidad de eliminarlos ya que si se desactivan en el repositorio, ya no aparecerán y no hace falta borrar nada de momento)
Si seleccionas una actualización te sale un dialogo preguntándote si quieres descargarla, y te muestra la versión y los cambios de la actualización, si le das a si, se descarga y si le das a no sales sin descargar nada.
Tampoco esta añadido de momento la opción de ocultar actualizaciones
De momento usa solo el SHA1 para comprobar si son diferentes, pero comprueba los SHA1 de los JSON, no de los .py de manera que si tienes un canal modificado mientras el JSON sea igual, no lo sobrescribirá.
Nota:
Como esto es provisional y puesto que lo tenia montado en mi ultima versión, he añadido un archivo platformtools.py (es el hermano mayor de mi guitools.py, para gestionar todo lo relacionado con la plataforma, vendría a ser una mezcla entre el guitools y el xbmctools) porque así lo tenia montado, pero luego habrá que decidir como se gestiona el tema para los diálogos
Adjunto channelselector modificado para añadir el Ítem "Actualizaciones" y el launcher modificado (un pequeño cambio para que funcione con el platformtools)
Si os parece lo probáis y ya sobre algo funcionando, podemos ver mas claramente hacia donde dirigirlo, para hacer algo que sea práctico tanto para usuarios avanzados como para usuarios mas domésticos.
https://drive.google.com/file/d/0ByPRdO ... sp=sharing