From f676a0452e6b9f7a61c40474c309bdb57d218d19 Mon Sep 17 00:00:00 2001 From: yan Date: Tue, 5 Jan 2021 12:03:18 +0100 Subject: [PATCH] Changes: - Fixed a potential crash on exit due to an unterminated thread. - Little internal updater fixes. - Do not log each time we check for updates. --- addon/globalPlugins/translate/__init__.py | 4 +++- addon/globalPlugins/translate/updater.py | 10 ++++------ buildVars.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addon/globalPlugins/translate/__init__.py b/addon/globalPlugins/translate/__init__.py index 723ceb6..f431c68 100644 --- a/addon/globalPlugins/translate/__init__.py +++ b/addon/globalPlugins/translate/__init__.py @@ -317,7 +317,7 @@ def __init__(self): self.language = languageHandler.getWindowsLanguage()[:2] except: self.language = 'en' - self.updater = updater.TranslateUpdater() + self.updater = updater.ExtensionUpdater() self.updater.start() self.inTimer = False self.hasBeenUpdated = False @@ -344,6 +344,8 @@ def terminate(self): speech._manager.speak = _nvdaSpeak speech.getPropertiesSpeech = _nvdaGetPropertiesSpeech self.saveLocalCache() + self.updater.quit = True + self.updater.join() def onTimer(self): if self.inTimer is True or self.hasBeenUpdated is True: return diff --git a/addon/globalPlugins/translate/updater.py b/addon/globalPlugins/translate/updater.py index 0f8b2db..4745072 100644 --- a/addon/globalPlugins/translate/updater.py +++ b/addon/globalPlugins/translate/updater.py @@ -11,9 +11,8 @@ import json import os -class TranslateUpdater(threading.Thread): +class ExtensionUpdater(threading.Thread): quit = False - quitLock = threading.RLock() queue = queue.Queue() def run(self): @@ -22,7 +21,6 @@ def run(self): time.sleep(1) if time.time() - self.lastCheck < UPDATE_CHECK_INTERVAL: continue - logHandler.log.info("translate: Checking for update...") try: res = urllib.request.urlopen("http://www.mtyp.fr/nvda") data = res.read() @@ -31,7 +29,7 @@ def run(self): if mod is not None: new_version = self.getLatestVersion(mod) if new_version is not None: - logHandler.log.info("Translate update available: %s" %(new_version["version"])) + logHandler.log.info("%s update available: %s" %(ADDON_NAME, new_version["version"])) self.queue.put({"update": new_version}) self.download(new_version) except Exception as ex: @@ -42,7 +40,7 @@ def run(self): - logHandler.log.info("Translate: exiting update thred...") + logHandler.log.info("%s: exiting update thred..." %(ADDON_NAME)) def getLatestVersion(self, mod): import addonHandler actual = None @@ -73,7 +71,7 @@ def download(self, mod): f.write(res.read()) f.close() except Exception as ex: - logHandler.log.error("Translate: failed to download %s: %s" %(mod["url"], ex)) + logHandler.log.error("%s: failed to download %s: %s" %(ADDON_NAME, mod["url"], ex)) return False self.queue.put({"download": tmp, "version": mod["version"]}) diff --git a/buildVars.py b/buildVars.py index 82f0348..433b543 100644 --- a/buildVars.py +++ b/buildVars.py @@ -20,7 +20,7 @@ "addon_description" : _("""Uses the Google Translate API to translate each spoken text to the desired language, on the fly. This add-on requires an internet connection."""), # version - "addon_version" : "2021.01.1", + "addon_version" : "2021.01.2", # Author(s) "addon_author" : u"Yannick PLASSIARD , Hxebolax", # URL for the add-on documentation support