Llevo un buen rato probando el tema de las actualizaciones automáticas que envió superberny al Github, y está claro que esto requiere una de esas ramas de desarrollo que me habéis sugerido varias veces.
Los cambios que hay, y los que proponéis en este hilo, me parecen algunos muy interesantes, otros menos interesantes, y algunos simplemente no me convencen ja ja ja
Os cuento lo que interpreto de mis pruebas, de lo que hay ahora en Github, y de lo que he ido leyendo en este hilo:
1) La opción de lanzar la actualización en el "launcher.start" (al entrar a pelisalacarta la primera vez), y no en el "launcher.run" (cada vez que entras) tiene un fallo. El launcher.start sólo se ejecuta cuando abres Kodi y entras a pelisalacarta, pero no se vuelve a ejecutar hasta que no cierras Kodi. Como yo nunca cierro Kodi, no me actualizará nunca
2) Generar el JSON con la lista de canales para luego usarlo en el channelselector no lo veo necesario. En la 4.0.4 la lista de canales se genera leyendo los XML al vuelo, y no he visto a nadie que se queje de lentitud.
3) Los ficheros JSON tienen varios inconvenientes frente a los XML. Si te dejas una coma no cargan, o si pones un caracter con el encoding erroneo no sale el canal. En los últimos pull requests he visto dos casos en los que ha habido que corregir esto (luego no soy el único al que le pasa), y revisando los json actuales me he visto obligado a tirar de log para entender por qué no cargaba el canal. De los canales que hay ahora en Github no me abre por ejemplo newpct1 debido a esto (no se si será esa "ñ").
Código: Seleccionar todo
File "/Users/jesus/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/decoder.py", line 89, in py_scanstring
content = unicode(content, encoding)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-4: invalid data
Como la ventaja de los JSON era poder generarlos fácilmente por código, y no va a ser necesario (ya que la configuración del canal irá en otro fichero en el userdata), no veo ninguna ventaja real en cambiar los XML.
4) Actualizar lanzando llamadas a GitHub con el hash me parece una solución muy pesada. Si cada vez que alguien abre pelisalacarta lanzamos centenares de llamadas a GitHub, eso son millones de llamadas al mes contra sus servidores... hay que buscar otra fórmula.
5) Los números de versión de canales para las actualizaciones deben usar números enteros (1,2,3,4,5...) y no la sintaxis por puntos (1.0, 1.1, 1.2, ...). He tenido muchos problemas con esto en el pasado, por eso en la versión 4 todas las comprobaciones de versiones se basan en números enteros.
Intentando buscar un enfoque "divergente", se me ocurre que muchas de estas ideas vienen porque entendéis que si pasa mucho tiempo entre actualizaciones la utilidad de pelisalacarta se va deteriorando, y no tenéis forma de solucionarlas por vuestra cuenta hasta que yo no publico la nueva versión como pasa por ejemplo con los servidores.
¿No podría ser una buena opción publicar de forma automática, semanalmente o diariamente, una versión de pelisalacarta "nightly build" con lo que hay en GitHub?
De esta forma el usuario que tuviera la versión "oficial" sólo se actualizaría con la versión "oficial", y el que se instalara la "nightly" tendría actualizaciones más frecuentes con la posibilidad de que haya cosas que fallen.
Lo que vamos a hacer de momento es dejar la nueva versión 4.0.5 con los XML y el updater tal como estaba, ya que no voy a ser capaz de hacer que esto funcione a tiempo para publicar la nueva versión este fin de semana, voy a ver cómo demonios se hace en Github una rama para esto y vamos trabajando sobre ella.
Se que algunos habéis trabajado un montón en esto, espero que nadie se moleste.