From 12175a078864c43287108fe83fa8215a41b963e3 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Fri, 20 Oct 2023 10:29:46 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=91=8D[Update]=20Model=20:=20?= =?UTF-8?q?=E7=BF=BB=E8=A8=B3=E3=82=A8=E3=83=B3=E3=82=B8=E3=83=B3=E3=81=B8?= =?UTF-8?q?=E3=81=AErequest=E3=81=8C=E5=A4=B1=E6=95=97=E3=81=97=E3=81=9F?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=81=AB=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=AD?= =?UTF-8?q?=E3=82=B0=E3=82=92=E5=87=BA=E5=8A=9B=E3=81=99=E3=82=8B=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller.py | 22 +++--- model.py | 74 +++++++++----------- models/translation/translation_translator.py | 2 +- 3 files changed, 47 insertions(+), 51 deletions(-) diff --git a/controller.py b/controller.py index bb7fae7b..2082840e 100644 --- a/controller.py +++ b/controller.py @@ -26,9 +26,10 @@ def sendMicMessage(message): view.printToTextbox_AuthenticationError() else: translation = model.getInputTranslate(message) - - if translation == None: - translation = "" + if translation == False: + config.ENABLE_TRANSLATION = False + translation = "" + view.translationEngineLimitErrorProcess() if config.ENABLE_TRANSCRIPTION_SEND is True: if config.ENABLE_SEND_MESSAGE_TO_VRC is True: @@ -91,9 +92,10 @@ def receiveSpeakerMessage(message): view.printToTextbox_AuthenticationError() else: translation = model.getOutputTranslate(message) - - if translation == None: - translation = "" + if translation == False: + config.ENABLE_TRANSLATION = False + translation = "" + view.translationEngineLimitErrorProcess() if config.ENABLE_TRANSCRIPTION_RECEIVE is True: if config.ENABLE_NOTICE_XSOVERLAY is True: @@ -158,9 +160,10 @@ def sendChatMessage(message): view.printToTextbox_AuthenticationError() else: translation = model.getInputTranslate(message) - - if translation == None: - translation = "" + if translation == False: + config.ENABLE_TRANSLATION = False + translation = "" + view.translationEngineLimitErrorProcess() # send OSC message if config.ENABLE_SEND_MESSAGE_TO_VRC is True: @@ -389,7 +392,6 @@ def callbackSetDeeplAuthkey(value): config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) else: view.printToTextbox_AuthenticationError() - print(config.AUTH_KEYS, config.CHOICE_TRANSLATOR) # Transcription Tab (Mic) def callbackSetMicHost(value): diff --git a/model.py b/model.py index 91507df1..8f25c706 100644 --- a/model.py +++ b/model.py @@ -142,51 +142,45 @@ class Model: return self.translator.translator_status[config.CHOICE_TRANSLATOR] def getInputTranslate(self, message): - try: - if config.CHOICE_TRANSLATOR == "DeepL_API": - if config.TARGET_LANGUAGE == "English": - if config.TARGET_COUNTRY in ["United States", "Canada", "Philippines"]: - config.TARGET_LANGUAGE = "English American" - else: - config.TARGET_LANGUAGE = "English British" - elif config.TARGET_LANGUAGE in ["Portuguese"]: - if config.TARGET_COUNTRY == "Portugal": - config.TARGET_LANGUAGE = "Portuguese European" - else: - config.TARGET_LANGUAGE = "Portuguese Brazilian" + if config.CHOICE_TRANSLATOR == "DeepL_API": + if config.TARGET_LANGUAGE == "English": + if config.TARGET_COUNTRY in ["United States", "Canada", "Philippines"]: + config.TARGET_LANGUAGE = "English American" + else: + config.TARGET_LANGUAGE = "English British" + elif config.TARGET_LANGUAGE in ["Portuguese"]: + if config.TARGET_COUNTRY == "Portugal": + config.TARGET_LANGUAGE = "Portuguese European" + else: + config.TARGET_LANGUAGE = "Portuguese Brazilian" - translation = self.translator.translate( - translator_name=config.CHOICE_TRANSLATOR, - source_language=config.SOURCE_LANGUAGE, - target_language=config.TARGET_LANGUAGE, - message=message - ) - except: - translation = None + translation = self.translator.translate( + translator_name=config.CHOICE_TRANSLATOR, + source_language=config.SOURCE_LANGUAGE, + target_language=config.TARGET_LANGUAGE, + message=message + ) return translation def getOutputTranslate(self, message): - try: - if config.CHOICE_TRANSLATOR == "DeepL_API": - if config.SOURCE_LANGUAGE == "English": - if config.SOURCE_COUNTRY in ["United States", "Canada", "Philippines"]: - config.SOURCE_LANGUAGE = "English American" - else: - config.SOURCE_LANGUAGE = "English British" - elif config.SOURCE_LANGUAGE in ["Portuguese"]: - if config.SOURCE_COUNTRY == "Portugal": - config.SOURCE_LANGUAGE = "Portuguese European" - else: - config.SOURCE_LANGUAGE = "Portuguese Brazilian" + if config.CHOICE_TRANSLATOR == "DeepL_API": + if config.SOURCE_LANGUAGE == "English": + if config.SOURCE_COUNTRY in ["United States", "Canada", "Philippines"]: + config.SOURCE_LANGUAGE = "English American" + else: + config.SOURCE_LANGUAGE = "English British" + elif config.SOURCE_LANGUAGE in ["Portuguese"]: + if config.SOURCE_COUNTRY == "Portugal": + config.SOURCE_LANGUAGE = "Portuguese European" + else: + config.SOURCE_LANGUAGE = "Portuguese Brazilian" - translation = self.translator.translate( - translator_name=config.CHOICE_TRANSLATOR, - source_language=config.TARGET_LANGUAGE, - target_language=config.SOURCE_LANGUAGE, - message=message - ) - except: - translation = None + translation = self.translator.translate( + translator_name=config.CHOICE_TRANSLATOR, + source_language=config.TARGET_LANGUAGE, + target_language=config.SOURCE_LANGUAGE, + message=message + ) return translation def addKeywords(self): diff --git a/models/translation/translation_translator.py b/models/translation/translation_translator.py index 4f4a1550..bcca750f 100644 --- a/models/translation/translation_translator.py +++ b/models/translation/translation_translator.py @@ -66,5 +66,5 @@ class Translator(): to_language=target_language, ) except: - pass + result = False return result \ No newline at end of file From ff0e13caf03f86ce07cce0420989deab6ca6c206 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Fri, 20 Oct 2023 10:36:03 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=91=8D[Update]=20Main=20:=20error.log?= =?UTF-8?q?=E3=82=92=E5=87=BA=E5=8A=9B=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E6=A9=9F=E8=83=BD=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index 2c68e5d2..5db42c69 100644 --- a/main.py +++ b/main.py @@ -1,13 +1,18 @@ -import ctypes -ctypes.windll.shcore.SetProcessDpiAwareness(0) - -from vrct_gui.splash_window import SplashWindow -splash = SplashWindow() -splash.showSplash() - -import controller - if __name__ == "__main__": - controller.createMainWindow() - splash.destroySplash() - controller.showMainWindow() \ No newline at end of file + try: + import ctypes + ctypes.windll.shcore.SetProcessDpiAwareness(0) + + from vrct_gui.splash_window import SplashWindow + splash = SplashWindow() + splash.showSplash() + + import controller + controller.createMainWindow() + splash.destroySplash() + controller.showMainWindow() + + except Exception as e: + import traceback + with open('error.log', 'a') as f: + traceback.print_exc(file=f) \ No newline at end of file From b63990d4ceb267672ed908fa8714c72683b8cb81 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Fri, 20 Oct 2023 14:35:29 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=90=9B[bugfix]=20Model=20:=20auth=20k?= =?UTF-8?q?ey=E3=82=92=E8=A8=98=E5=85=A5=E3=81=97=E3=81=9F=E3=81=82?= =?UTF-8?q?=E3=81=A8=E3=81=AB=E3=80=81=E5=89=8A=E9=99=A4=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=81=A8=E7=BF=BB=E8=A8=B3=E3=81=AB=E5=A4=B1=E6=95=97=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=83=90=E3=82=B0=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller.py | 30 ++++++++------------ model.py | 20 +++++++++---- models/translation/translation_translator.py | 20 +++---------- 3 files changed, 30 insertions(+), 40 deletions(-) diff --git a/controller.py b/controller.py index 2082840e..d8dfc1fb 100644 --- a/controller.py +++ b/controller.py @@ -22,8 +22,6 @@ def sendMicMessage(message): return elif config.ENABLE_TRANSLATION is False: pass - elif model.getTranslatorStatus() is False: - view.printToTextbox_AuthenticationError() else: translation = model.getInputTranslate(message) if translation == False: @@ -88,8 +86,6 @@ def receiveSpeakerMessage(message): translation = "" if config.ENABLE_TRANSLATION is False: pass - elif model.getTranslatorStatus() is False: - view.printToTextbox_AuthenticationError() else: translation = model.getOutputTranslate(message) if translation == False: @@ -156,8 +152,6 @@ def sendChatMessage(message): translation = "" if config.ENABLE_TRANSLATION is False: pass - elif model.getTranslatorStatus() is False: - view.printToTextbox_AuthenticationError() else: translation = model.getInputTranslate(message) if translation == False: @@ -215,7 +209,6 @@ def initSetLanguageAndCountry(): config.TARGET_LANGUAGE = language config.TARGET_COUNTRY = country config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) - model.authenticationTranslator() def setYourLanguageAndCountry(select): languages = config.SELECTED_TAB_YOUR_LANGUAGES @@ -225,7 +218,6 @@ def setYourLanguageAndCountry(select): config.SOURCE_LANGUAGE = language config.SOURCE_COUNTRY = country config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) - model.authenticationTranslator() view.printToTextbox_selectedYourLanguages(select) def setTargetLanguageAndCountry(select): @@ -236,7 +228,6 @@ def setTargetLanguageAndCountry(select): config.TARGET_LANGUAGE = language config.TARGET_COUNTRY = country config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) - model.authenticationTranslator() view.printToTextbox_selectedTargetLanguages(select) def callbackSelectedLanguagePresetTab(selected_tab_no): @@ -253,7 +244,6 @@ def callbackSelectedLanguagePresetTab(selected_tab_no): config.TARGET_LANGUAGE = language config.TARGET_COUNTRY = country config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) - model.authenticationTranslator() view.printToTextbox_changedLanguagePresetTab(config.SELECTED_TAB_NO) # command func @@ -377,21 +367,23 @@ def callbackSetUiLanguage(value): # Translation Tab def callbackSetDeeplAuthkey(value): print("callbackSetDeeplAuthkey", str(value)) - if len(value) > 0: + if len(value) == 39: result = model.authenticationTranslator(choice_translator="DeepL_API", auth_key=value) if result is True: - auth_keys = config.AUTH_KEYS - auth_keys["DeepL_API"] = value - config.AUTH_KEYS = auth_keys + key = value view.printToTextbox_AuthenticationSuccess() + else: + key = None + view.printToTextbox_AuthenticationError() + auth_keys = config.AUTH_KEYS + auth_keys["DeepL_API"] = key + config.AUTH_KEYS = auth_keys config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) elif len(value) == 0: auth_keys = config.AUTH_KEYS auth_keys["DeepL_API"] = None config.AUTH_KEYS = auth_keys config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) - else: - view.printToTextbox_AuthenticationError() # Transcription Tab (Mic) def callbackSetMicHost(value): @@ -638,11 +630,13 @@ def createMainWindow(): # init config initSetLanguageAndCountry() - if model.authenticationTranslator() is False: + if model.authenticationTranslator(config.CHOICE_TRANSLATOR, config.AUTH_KEYS[config.CHOICE_TRANSLATOR]) is False: # error update Auth key + auth_keys = config.AUTH_KEYS + auth_keys[config.CHOICE_TRANSLATOR] = None + config.AUTH_KEYS = auth_keys view.printToTextbox_AuthenticationError() config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE) - model.authenticationTranslator() # set word filter model.addKeywords() diff --git a/model.py b/model.py index 8f25c706..8d0f0083 100644 --- a/model.py +++ b/model.py @@ -121,8 +121,7 @@ class Model: country = parts[1][1:-1] return language, country - @staticmethod - def findTranslationEngine(source_lang, target_lang): + def findTranslationEngine(self, source_lang, target_lang): compatible_engines = [] for engine in translatorEngine: source_languages = translation_lang.get(engine, {}).get("source", {}) @@ -132,16 +131,15 @@ class Model: engine_name = compatible_engines[0] if engine_name == "DeepL" and config.AUTH_KEYS["DeepL_API"] != None: - engine_name = "DeepL_API" + if self.authenticationTranslator(engine_name, config.AUTH_KEYS["DeepL_API"]) is True: + engine_name = "DeepL_API" elif engine_name == "DeepL_API" and config.AUTH_KEYS["DeepL_API"] == None: engine_name = "DeepL" return engine_name - def getTranslatorStatus(self): - return self.translator.translator_status[config.CHOICE_TRANSLATOR] - def getInputTranslate(self, message): + print(config.CHOICE_TRANSLATOR, config.AUTH_KEYS) if config.CHOICE_TRANSLATOR == "DeepL_API": if config.TARGET_LANGUAGE == "English": if config.TARGET_COUNTRY in ["United States", "Canada", "Philippines"]: @@ -153,6 +151,11 @@ class Model: config.TARGET_LANGUAGE = "Portuguese European" else: config.TARGET_LANGUAGE = "Portuguese Brazilian" + elif config.CHOICE_TRANSLATOR == "DeepL": + if config.TARGET_LANGUAGE in ["English American", "English British"]: + config.TARGET_LANGUAGE = "English" + elif config.TARGET_LANGUAGE in ["Portuguese European", "Portuguese Brazilian"]: + config.TARGET_COUNTRY = "Portugal" translation = self.translator.translate( translator_name=config.CHOICE_TRANSLATOR, @@ -174,6 +177,11 @@ class Model: config.SOURCE_LANGUAGE = "Portuguese European" else: config.SOURCE_LANGUAGE = "Portuguese Brazilian" + elif config.CHOICE_TRANSLATOR == "DeepL": + if config.SOURCE_LANGUAGE in ["English American", "English British"]: + config.SOURCE_LANGUAGE = "English" + elif config.SOURCE_LANGUAGE in ["Portuguese European", "Portuguese Brazilian"]: + config.SOURCE_COUNTRY = "Portugal" translation = self.translator.translate( translator_name=config.CHOICE_TRANSLATOR, diff --git a/models/translation/translation_translator.py b/models/translation/translation_translator.py index bcca750f..81bd0ef5 100644 --- a/models/translation/translation_translator.py +++ b/models/translation/translation_translator.py @@ -6,34 +6,22 @@ from .translation_languages import translatorEngine, translation_lang # Translator class Translator(): def __init__(self): + pass self.translator_status = {} - for translator in translatorEngine: - self.translator_status[translator] = False - self.deepl_client = None def authentication(self, translator_name, authkey=None): - result = False + result = True match translator_name: - case "DeepL": - self.translator_status[translator_name] = True - result = True case "DeepL_API": try: self.deepl_client = deepl_Translator(authkey) self.deepl_client.translate_text(" ", target_lang="EN-US") - self.translator_status[translator_name] = True - result = True except: - self.translator_status[translator_name] = False - case "Google": - self.translator_status[translator_name] = True - result = True - case "Bing": - self.translator_status[translator_name] = True - result = True + result = False return result def translate(self, translator_name, source_language, target_language, message): + print(translator_name, source_language, target_language, message) try: result = "" source_language=translation_lang[translator_name]["source"][source_language]