From bc6798714d5a42dee17db3b6443b20414bce2250 Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Fri, 14 Nov 2025 10:42:40 +0900 Subject: [PATCH] [Fix] Improve OpenAI authentication handling and error response --- src-python/controller.py | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src-python/controller.py b/src-python/controller.py index 0e96a719..06df12bf 100644 --- a/src-python/controller.py +++ b/src-python/controller.py @@ -1813,20 +1813,30 @@ class Controller: try: data = str(data) if data.startswith("sk-") and len(data) >= 164: - key = data - auth_keys = config.AUTH_KEYS - auth_keys[translator_name] = key - config.AUTH_KEYS = auth_keys - config.SELECTABLE_TRANSLATION_ENGINE_STATUS[translator_name] = True - config.SELECTABLE_OPENAI_MODEL_LIST = model.getTranslatorOpenAIModelList() - self.run(200, self.run_mapping["selectable_openai_model_list"], config.SELECTABLE_OPENAI_MODEL_LIST) - if config.SELECTED_OPENAI_MODEL not in config.SELECTABLE_OPENAI_MODEL_LIST: - config.SELECTED_OPENAI_MODEL = config.SELECTABLE_OPENAI_MODEL_LIST[0] - model.setTranslatorOpenAIModel(model=config.SELECTED_OPENAI_MODEL) - self.run(200, self.run_mapping["selected_openai_model"], config.SELECTED_OPENAI_MODEL) - model.updateTranslatorOpenAIClient() - self.updateTranslationEngineAndEngineList() - response = {"status":200, "result":config.AUTH_KEYS[translator_name]} + result = model.authenticationTranslatorOpenAIAuthKey(auth_key=data) + if result is True: + key = data + auth_keys = config.AUTH_KEYS + auth_keys[translator_name] = key + config.AUTH_KEYS = auth_keys + config.SELECTABLE_TRANSLATION_ENGINE_STATUS[translator_name] = True + config.SELECTABLE_OPENAI_MODEL_LIST = model.getTranslatorOpenAIModelList() + self.run(200, self.run_mapping["selectable_openai_model_list"], config.SELECTABLE_OPENAI_MODEL_LIST) + if config.SELECTED_OPENAI_MODEL not in config.SELECTABLE_OPENAI_MODEL_LIST: + config.SELECTED_OPENAI_MODEL = config.SELECTABLE_OPENAI_MODEL_LIST[0] + model.setTranslatorOpenAIModel(model=config.SELECTED_OPENAI_MODEL) + self.run(200, self.run_mapping["selected_openai_model"], config.SELECTED_OPENAI_MODEL) + model.updateTranslatorOpenAIClient() + self.updateTranslationEngineAndEngineList() + response = {"status":200, "result":config.AUTH_KEYS[translator_name]} + else: + response = { + "status":400, + "result":{ + "message":"Authentication failure of OpenAI auth key", + "data": config.AUTH_KEYS[translator_name] + } + } else: response = { "status":400,