Re: Cambio de xml a json
Publicado: 14 Nov 2015, 20:21
Bueno, el updater yo lo tenia montado en mi versión modificada, que tengo creada una herramienta llamada guitools para mostrar diálogos y otras opciones independientemente de la plataforma, así que he echo una adaptación rápida añadiendo guitools para no tener que modificarlo, solo se usa para mostrar los diálogos en el updater, y para probar ya sirve, funciona solo para la versión kodi clásica ya que solo lo he preparado para este por ahora, te explico el funcionamiento:
Cuando entras en el plugin busca las actualizaciones:
1 Busca actualizaciones para el plugin, si encuentra te pregunta para actualizar, si no encuentra sigue buscando actualizaciones para canales y servers.
2. El mecanismo para buscar los canales es comparando el SHA1 devuelto por github con el del fichero, si no coinciden lo descarga, si el fichero local no existe, lo descarga.
3. Dado que hay problemas con los saltos de línea entre unix/Windows y a veces los hashes no coinciden, calcula cuatro hashes diferentes para cada archivo con varias combinaciones de saltos de Lina (CRLF, LF, CR, etc...) y comprueba si coincide con alguno de ellos, si coincide con alguno lo da por bueno.
4. Para no tener que calcular el hash cada vez, ya que para sistemas lentos como el blusens, tarda un poco (en un pc no se nota), crea un índice, así las demás veces solo lo tiene que comparar con el índice. la única pega o ventaja según se mire, es que una vez calculado el índice, si modificas un archivo local para hacer alguna prueba, no se dará cuenta, ya que solo comprueba el índice y no lo sobrescribirá
El índice lo crea en la carpeta addon_data los archivos Canales.json y Servers.json y se borran los archivos los vuelve a crear
5. Al actualizar cualquier canal, el índice se regenera, volviendo a actualizar todos los hashes.
Todo esto lo hace en segundo plano, dejándote usar pelisalacarta mientras tanto.
Aquí lo tienes
https://drive.google.com/file/d/0ByPRdO ... sp=sharing
Tienes que sobrescribir los archivos dentro de la carpeta del plugin.
Cuando entras en el plugin busca las actualizaciones:
1 Busca actualizaciones para el plugin, si encuentra te pregunta para actualizar, si no encuentra sigue buscando actualizaciones para canales y servers.
2. El mecanismo para buscar los canales es comparando el SHA1 devuelto por github con el del fichero, si no coinciden lo descarga, si el fichero local no existe, lo descarga.
3. Dado que hay problemas con los saltos de línea entre unix/Windows y a veces los hashes no coinciden, calcula cuatro hashes diferentes para cada archivo con varias combinaciones de saltos de Lina (CRLF, LF, CR, etc...) y comprueba si coincide con alguno de ellos, si coincide con alguno lo da por bueno.
4. Para no tener que calcular el hash cada vez, ya que para sistemas lentos como el blusens, tarda un poco (en un pc no se nota), crea un índice, así las demás veces solo lo tiene que comparar con el índice. la única pega o ventaja según se mire, es que una vez calculado el índice, si modificas un archivo local para hacer alguna prueba, no se dará cuenta, ya que solo comprueba el índice y no lo sobrescribirá
El índice lo crea en la carpeta addon_data los archivos Canales.json y Servers.json y se borran los archivos los vuelve a crear
5. Al actualizar cualquier canal, el índice se regenera, volviendo a actualizar todos los hashes.
Todo esto lo hace en segundo plano, dejándote usar pelisalacarta mientras tanto.
Aquí lo tienes
https://drive.google.com/file/d/0ByPRdO ... sp=sharing
Tienes que sobrescribir los archivos dentro de la carpeta del plugin.