diff --git a/default.py b/default.py index e52e6d5c..b0285886 100644 --- a/default.py +++ b/default.py @@ -5,7 +5,6 @@ import os import sys -from threading import Thread import xbmc from platformcode import config, logger @@ -17,7 +16,7 @@ sys.path.insert(0, librerias) if not config.dev_mode(): from platformcode import updater - Thread(target=updater.timer()) + updater.showSavedChangelog() from platformcode import launcher diff --git a/platformcode/updater.py b/platformcode/updater.py index 26570c2e..121bdf1c 100644 --- a/platformcode/updater.py +++ b/platformcode/updater.py @@ -26,6 +26,7 @@ repo = 'addon' addonDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))).replace('\\', '/') + '/' maxPage = 5 # le api restituiscono 30 commit per volta, quindi se si è rimasti troppo indietro c'è bisogno di andare avanti con le pagine trackingFile = "last_commit.txt" +changelogFile = "special://profile/addon_data/plugin.video.kod/changelog.txt" def loadCommits(page=1): @@ -46,7 +47,7 @@ def loadCommits(page=1): return ret -def check(): +def check(background=False): if not addon.getSetting('addon_update_enabled'): return False logger.info('Cerco aggiornamenti..') @@ -155,7 +156,11 @@ def check(): changelog += commitJson['commit']['message'] + "\n" nCommitApplied += 1 if addon.getSetting("addon_update_message"): - platformtools.dialog_ok('Kodi on Demand', 'Aggiornamenti applicati:\n' + changelog) + if background: + with open(xbmc.translatePath(changelogFile), 'a+') as fileC: + fileC.write(changelog) + else: + platformtools.dialog_ok('Kodi on Demand', 'Aggiornamenti applicati:\n' + changelog) localCommitFile.seek(0) localCommitFile.truncate() @@ -171,33 +176,14 @@ def check(): return updated -def timer(force=False): - import time - curTime = time.time() - file = "special://profile/addon_data/plugin.video.kod/updater_last_check.txt" - period = float(addon.getSetting('addon_update_timer')) * 3600 - updated = False - - if force: - updated = check() - checked = True - else: - checked = False - try: - with open(xbmc.translatePath(file), 'r') as fileC: - lastCheck = float(fileC.read()) - if curTime - lastCheck > period: - updated = check() - checked = True - except: - updated = check() - checked = True - if checked: - with open(xbmc.translatePath(file), 'w') as fileC: - fileC.write(str(curTime)) - return updated - - +def showSavedChangelog(): + try: + with open(xbmc.translatePath(changelogFile), 'r') as fileC: + changelog = fileC.read() + platformtools.dialog_ok('Kodi on Demand', 'Aggiornamenti applicati:\n' + changelog) + filetools.remove(xbmc.translatePath(changelogFile)) + except: + pass def calcCurrHash(): treeHash = githash.tree_hash(addonDir).hexdigest() diff --git a/resources/settings.xml b/resources/settings.xml index b40e95e4..a683d76d 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -107,7 +107,7 @@ - + diff --git a/specials/setting.py b/specials/setting.py index 800d7cdd..7979dd2c 100644 --- a/specials/setting.py +++ b/specials/setting.py @@ -343,7 +343,7 @@ def check_quickfixes(item): if not config.dev_mode(): from platformcode import updater - if not updater.timer(True): + if not updater.check(): platformtools.dialog_ok('Kodi on Demand', config.get_localized_string(70667)) else: return False diff --git a/videolibrary_service.py b/videolibrary_service.py index 8efd3df2..2a56c7d6 100644 --- a/videolibrary_service.py +++ b/videolibrary_service.py @@ -22,6 +22,7 @@ from core import channeltools, filetools, videolibrarytools from platformcode import logger from platformcode import platformtools from specials import videolibrary +from platformcode import updater def update(path, p_dialog, i, t, serie, overwrite): @@ -306,6 +307,15 @@ def monitor_update(): logger.info("Inicio actualizacion programada para las %s h.: %s" % (update_start, datetime.datetime.now())) check_for_update(overwrite=False) + if not config.dev_mode(): + period = float(config.get_setting('addon_update_timer')) * 3600 + curTime = time.time() + lastCheck = float(config.get_setting("updater_last_check", "videolibrary", '0')) + + if curTime - lastCheck > period: + updater.check(background=True) + config.set_setting("updater_last_check", "videolibrary", str(curTime)) + # def get_channel_json(): # import urllib, os, xbmc # addon = config.get_addon_core() @@ -377,8 +387,7 @@ if __name__ == "__main__": # Verificar quick-fixes al abrirse Kodi, y dejarlo corriendo como Thread if not config.dev_mode(): - from platformcode import updater - updater.timer(True) + updater.check() # Copia Custom code a las carpetas de Alfa desde la zona de Userdata from platformcode import custom_code