Updater
Mejora en control de errores en caso de .json corrupto
This commit is contained in:
@@ -26,46 +26,46 @@ def check_addon_init():
|
|||||||
|
|
||||||
# Obtiene el íntervalo entre actualizaciones y si se quieren mensajes
|
# Obtiene el íntervalo entre actualizaciones y si se quieren mensajes
|
||||||
try:
|
try:
|
||||||
timer = int(config.get_setting('addon_update_timer')) # Intervalo entre actualizaciones, en Ajustes de Alfa
|
timer = int(config.get_setting('addon_update_timer')) # Intervalo entre actualizaciones, en Ajustes de Alfa
|
||||||
if timer <= 0:
|
if timer <= 0:
|
||||||
return # 0. No se quieren actualizaciones
|
return # 0. No se quieren actualizaciones
|
||||||
verbose = config.get_setting('addon_update_message')
|
verbose = config.get_setting('addon_update_message')
|
||||||
except:
|
except:
|
||||||
timer = 12 # Por defecto cada 12 horas
|
timer = 12 # Por defecto cada 12 horas
|
||||||
verbose = False # Por defecto, sin mensajes
|
verbose = False # Por defecto, sin mensajes
|
||||||
timer = timer * 3600 # Lo pasamos a segundos
|
timer = timer * 3600 # Lo pasamos a segundos
|
||||||
|
|
||||||
if config.get_platform(True)['num_version'] >= 14: # Si es Kodi, lanzamos el monitor
|
if config.get_platform(True)['num_version'] >= 14: # Si es Kodi, lanzamos el monitor
|
||||||
import xbmc
|
import xbmc
|
||||||
monitor = xbmc.Monitor()
|
monitor = xbmc.Monitor()
|
||||||
else: # Lanzamos solo una actualización y salimos
|
else: # Lanzamos solo una actualización y salimos
|
||||||
check_addon_updates(verbose) # Lanza la actualización
|
check_addon_updates(verbose) # Lanza la actualización
|
||||||
return
|
return
|
||||||
|
|
||||||
while not monitor.abortRequested(): # Loop infinito hasta cancelar Kodi
|
while not monitor.abortRequested(): # Loop infinito hasta cancelar Kodi
|
||||||
|
|
||||||
check_addon_updates(verbose) # Lanza la actualización
|
check_addon_updates(verbose) # Lanza la actualización
|
||||||
|
|
||||||
if monitor.waitForAbort(timer): # Espera el tiempo programado o hasta que cancele Kodi
|
if monitor.waitForAbort(timer): # Espera el tiempo programado o hasta que cancele Kodi
|
||||||
break # Cancelación de Kodi, salimos
|
break # Cancelación de Kodi, salimos
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# Lanzamos en Servicio de actualización de FIXES
|
# Lanzamos en Servicio de actualización de FIXES
|
||||||
try:
|
try:
|
||||||
threading.Thread(target=check_addon_monitor).start() # Creamos un Thread independiente, hasta el fin de Kodi
|
threading.Thread(target=check_addon_monitor).start() # Creamos un Thread independiente, hasta el fin de Kodi
|
||||||
time.sleep(5) # Dejamos terminar la primera verificación...
|
time.sleep(5) # Dejamos terminar la primera verificación...
|
||||||
except: # Si hay problemas de threading, se llama una sola vez
|
except: # Si hay problemas de threading, se llama una sola vez
|
||||||
try:
|
try:
|
||||||
timer = int(config.get_setting('addon_update_timer')) # Intervalo entre actualizaciones, en Ajustes de Alfa
|
timer = int(config.get_setting('addon_update_timer')) # Intervalo entre actualizaciones, en Ajustes de Alfa
|
||||||
if timer <= 0:
|
if timer <= 0:
|
||||||
return # 0. No se quieren actualizaciones
|
return # 0. No se quieren actualizaciones
|
||||||
verbose = config.get_setting('addon_update_message')
|
verbose = config.get_setting('addon_update_message')
|
||||||
except:
|
except:
|
||||||
verbose = False # Por defecto, sin mensajes
|
verbose = False # Por defecto, sin mensajes
|
||||||
pass
|
pass
|
||||||
check_addon_updates(verbose) # Lanza la actualización, en Ajustes de Alfa
|
check_addon_updates(verbose) # Lanza la actualización, en Ajustes de Alfa
|
||||||
time.sleep(5) # Dejamos terminar la primera verificación...
|
time.sleep(5) # Dejamos terminar la primera verificación...
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -106,12 +106,20 @@ def check_addon_updates(verbose=False):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
if os.path.exists(last_fix_json):
|
if os.path.exists(last_fix_json):
|
||||||
lastfix = jsontools.load(filetools.read(last_fix_json))
|
try:
|
||||||
if lastfix['addon_version'] == data['addon_version'] and lastfix['fix_version'] == data['fix_version']:
|
lastfix = {}
|
||||||
logger.info('Ya está actualizado con los últimos cambios. Versión %s.fix%d' % (data['addon_version'], data['fix_version']))
|
lastfix = jsontools.load(filetools.read(last_fix_json))
|
||||||
if verbose:
|
if lastfix['addon_version'] == data['addon_version'] and lastfix['fix_version'] == data['fix_version']:
|
||||||
platformtools.dialog_notification('Alfa ya está actualizado', 'Versión %s.fix%d' % (data['addon_version'], data['fix_version']))
|
logger.info('Ya está actualizado con los últimos cambios. Versión %s.fix%d' % (data['addon_version'], data['fix_version']))
|
||||||
return False
|
if verbose:
|
||||||
|
platformtools.dialog_notification('Alfa ya está actualizado', 'Versión %s.fix%d' % (data['addon_version'], data['fix_version']))
|
||||||
|
return False
|
||||||
|
except:
|
||||||
|
if lastfix:
|
||||||
|
logger.error('last_fix.json: ERROR en: ' + str(lastfix))
|
||||||
|
else:
|
||||||
|
logger.error('last_fix.json: ERROR desconocido')
|
||||||
|
lastfix = {}
|
||||||
|
|
||||||
# Descargar zip con las actualizaciones
|
# Descargar zip con las actualizaciones
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user