From d4d68d17cfdbc5d94dc56692583ad8fae47b81b9 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Fri, 9 Aug 2024 19:11:08 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8D=EF=B8=8F[Update]=20Main/Controller?= =?UTF-8?q?=20:=20=E3=82=A8=E3=83=B3=E3=83=89=E3=83=9D=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=81=AE=E6=A4=9C=E8=A8=BC=E7=94=A8=E3=81=AE=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=82=B3=E3=83=BC=E3=83=89=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=EF=BC=88=E9=80=94=E4=B8=AD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-python/config.py | 5 +- src-python/webui_controller.py | 172 ++++++++++++++++++++------------ src-python/webui_mainloop.py | 173 ++++++++++++++++++++++++++------- 3 files changed, 248 insertions(+), 102 deletions(-) diff --git a/src-python/config.py b/src-python/config.py index eec377c3..64ba9166 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -963,7 +963,10 @@ class Config: self._VERSION = "2.2.5" self._ENABLE_SPEAKER2CHATBOX = False # Speaker2Chatbox self._ENABLE_SPEAKER2CHATBOX_PASS_CONFIRMATION = "VRCT=0YEN" - self._PATH_LOCAL = os_path.dirname(sys.executable) + if getattr(sys, 'frozen', False): + self._PATH_LOCAL = os_path.dirname(sys.executable) + else: + self._PATH_LOCAL = os_path.dirname(os_path.abspath(__file__)) self._PATH_CONFIG = os_path.join(self._PATH_LOCAL, "config.json") self._PATH_LOGS = os_path.join(self._PATH_LOCAL, "logs") os_makedirs(self._PATH_LOGS, exist_ok=True) diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index a611543e..5d600e16 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -48,12 +48,12 @@ def callbackRestartSoftware(*args, **kwargs) -> dict: model.reStartSoftware() return {"status":200} -def callbackFilepathLogs(): +def callbackFilepathLogs(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackFilepathLogs"}), flush=True) Popen(['explorer', config.PATH_LOGS.replace('/', '\\')], shell=True) return {"status":200} -def callbackFilepathConfigFile(): +def callbackFilepathConfigFile(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackFilepathConfigFile"}), flush=True) Popen(['explorer', config.PATH_LOCAL.replace('/', '\\')], shell=True) return {"status":200} @@ -95,7 +95,7 @@ class MicMessage: def send(self, message: Union[str, bool]) -> None: if isinstance(message, bool) and message is False: self.action("error_device", { - "status":404, + "status":400, "result": { "message":"No mic device detected." } @@ -120,7 +120,7 @@ class MicMessage: if success is False: changeToCTranslate2Process() self.action("error_translation_engine", { - "status":404, + "status":400, "result": { "message":"translation engine limit error" } @@ -203,7 +203,7 @@ class SpeakerMessage: def receive(self, message): if isinstance(message, bool) and message is False: self.action("error_device",{ - "status":404, + "status":400, "result": { "message":"No mic device detected." }, @@ -219,7 +219,7 @@ class SpeakerMessage: if success is False: changeToCTranslate2Process() self.action("error_translation_engine", { - "status":404, + "status":400, "result": { "message":"translation engine limit error" } @@ -314,7 +314,7 @@ class ChatMessage: if success is False: changeToCTranslate2Process() self.action("error_translation_engine", { - "status":404, + "status":400, "result":{ "message":"translation engine limit error" } @@ -645,27 +645,42 @@ def callbackSetUiLanguage(data, *args, **kwargs) -> dict: config.UI_LANGUAGE = data return {"status":200, "result":config.UI_LANGUAGE} -def callbackSetEnableRestoreMainWindowGeometry(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetEnableRestoreMainWindowGeometry", "data":data}), flush=True) - config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY = data +def callbackEnableRestoreMainWindowGeometry(data, *args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableRestoreMainWindowGeometry"}), flush=True) + config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY = True + return {"status":200, "result":config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY} + +def callbackDisableRestoreMainWindowGeometry(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableRestoreMainWindowGeometry"}), flush=True) + config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY = True return {"status":200, "result":config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY} # Translation Tab -def callbackSetUseTranslationFeature(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetUseTranslationFeature", "data":data}), flush=True) - config.USE_TRANSLATION_FEATURE = data - if config.USE_TRANSLATION_FEATURE is True: - if model.checkCTranslatorCTranslate2ModelWeight(): - config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = False - def callback(): - model.changeTranslatorCTranslate2Model() - th_callback = Thread(target=callback) - th_callback.daemon = True - th_callback.start() - else: - config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = True - else: +def callbackEnableUseTranslationFeature(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableTranslationFeature"}), flush=True) + config.USE_TRANSLATION_FEATURE = True + + if model.checkCTranslatorCTranslate2ModelWeight(): config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = False + def callback(): + model.changeTranslatorCTranslate2Model() + th_callback = Thread(target=callback) + th_callback.daemon = True + th_callback.start() + else: + config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = True + + return {"status":200, + "result":{ + "feature":config.USE_TRANSLATION_FEATURE, + "reset":config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION, + }, + } + +def callbackDisableUseTranslationFeature(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableTranslationFeature"}), flush=True) + config.USE_TRANSLATION_FEATURE = False + config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = False return {"status":200, "result":{ "feature":config.USE_TRANSLATION_FEATURE, @@ -694,7 +709,7 @@ def callbackSetCtranslate2WeightType(data, *args, **kwargs) -> dict: def callbackSetDeeplAuthKey(data, *args, **kwargs) -> dict: print(json.dumps({"log": "callbackSetDeeplAuthKey", "data":data}), flush=True) - status = 404 + status = 400 if len(data) == 36 or len(data) == 39: result = model.authenticationTranslatorDeepLAuthKey(auth_key=data) if result is True: @@ -742,16 +757,21 @@ def callbackSetMicDevice(data, *args, **kwargs) -> dict: def callbackSetMicEnergyThreshold(data, *args, **kwargs) -> dict: print(json.dumps({"log": "callbackSetMicEnergyThreshold", "data":data}), flush=True) - status = 404 + status = 400 data = int(data) if 0 <= data <= config.MAX_MIC_ENERGY_THRESHOLD: config.INPUT_MIC_ENERGY_THRESHOLD = data status = 200 return {"status": status, "result": config.INPUT_MIC_ENERGY_THRESHOLD} -def callbackSetMicDynamicEnergyThreshold(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetMicDynamicEnergyThreshold", "data":data}), flush=True) - config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD = data +def callbackEnableMicDynamicEnergyThreshold(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableMicDynamicEnergyThreshold"}), flush=True) + config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD = True + return {"status":200, "result":config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD} + +def callbackDisableMicDynamicEnergyThreshold(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableMicDynamicEnergyThreshold"}), flush=True) + config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD = False return {"status":200, "result":config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD} class ProgressBarEnergy: @@ -781,7 +801,7 @@ def callbackSetMicRecordTimeout(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Mic Record Timeout"}} + response = {"status":400, "result":{"message":"Error Mic Record Timeout"}} else: response = {"status":200, "result":config.INPUT_MIC_RECORD_TIMEOUT} return response @@ -795,7 +815,7 @@ def callbackSetMicPhraseTimeout(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Mic Phrase Timeout"}} + response = {"status":400, "result":{"message":"Error Mic Phrase Timeout"}} else: response = {"status":200, "result":config.INPUT_MIC_PHRASE_TIMEOUT} return response @@ -809,7 +829,7 @@ def callbackSetMicMaxPhrases(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Mic Max Phrases"}} + response = {"status":400, "result":{"message":"Error Mic Max Phrases"}} else: response = {"status":200, "result":config.INPUT_MIC_MAX_PHRASES} return response @@ -864,14 +884,19 @@ def callbackSetSpeakerEnergyThreshold(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Set Speaker Energy Threshold"}} + response = {"status":400, "result":{"message":"Error Set Speaker Energy Threshold"}} else: response = {"status":200, "result":config.INPUT_SPEAKER_ENERGY_THRESHOLD} return response -def callbackSetSpeakerDynamicEnergyThreshold(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetSpeakerDynamicEnergyThreshold", "data":data}), flush=True) - config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD = data +def callbackEnableSpeakerDynamicEnergyThreshold(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableSpeakerDynamicEnergyThreshold"}), flush=True) + config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD = True + return {"status":200, "result":config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD} + +def callbackDisableSpeakerDynamicEnergyThreshold(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableSpeakerDynamicEnergyThreshold"}), flush=True) + config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD = False return {"status":200, "result":config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD} def callbackEnableCheckSpeakerThreshold(data, action, *args, **kwargs) -> dict: @@ -894,7 +919,7 @@ def callbackSetSpeakerRecordTimeout(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Speaker Record Timeout"}} + response = {"status":400, "result":{"message":"Error Speaker Record Timeout"}} else: response = {"status":200, "result":config.INPUT_SPEAKER_RECORD_TIMEOUT} return response @@ -908,7 +933,7 @@ def callbackSetSpeakerPhraseTimeout(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Speaker Phrase Timeout"}} + response = {"status":400, "result":{"message":"Error Speaker Phrase Timeout"}} else: response = {"status":200, "result":config.INPUT_SPEAKER_PHRASE_TIMEOUT} return response @@ -922,24 +947,20 @@ def callbackSetSpeakerMaxPhrases(data, *args, **kwargs) -> dict: else: raise ValueError() except Exception: - response = {"status":404, "result":{"message":"Error Speaker Max Phrases"}} + response = {"status":400, "result":{"message":"Error Speaker Max Phrases"}} else: response = {"status":200, "result":config.INPUT_SPEAKER_MAX_PHRASES} return response # Transcription (Internal AI Model) -def callbackSetUserWhisperFeature(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetUserWhisperFeature", "data":data}), flush=True) - config.USE_WHISPER_FEATURE = data - if config.USE_WHISPER_FEATURE is True: - if model.checkTranscriptionWhisperModelWeight() is True: - config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = False - config.SELECTED_TRANSCRIPTION_ENGINE = "Whisper" - else: - config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = True - config.SELECTED_TRANSCRIPTION_ENGINE = "Google" - else: +def callbackEnableUseWhisperFeature(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableUserWhisperFeature"}), flush=True) + config.USE_WHISPER_FEATURE = True + if model.checkTranscriptionWhisperModelWeight() is True: config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = False + config.SELECTED_TRANSCRIPTION_ENGINE = "Whisper" + else: + config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = True config.SELECTED_TRANSCRIPTION_ENGINE = "Google" return {"status":200, "result":{ @@ -949,6 +970,19 @@ def callbackSetUserWhisperFeature(data, *args, **kwargs) -> dict: }, } +def callbackDisableUseWhisperFeature(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableUserWhisperFeature"}), flush=True) + config.USE_WHISPER_FEATURE = False + config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = False + config.SELECTED_TRANSCRIPTION_ENGINE = "Google" + return {"status":200, + "result":{ + "feature":config.USE_WHISPER_FEATURE, + "transcription_engine":config.SELECTED_TRANSCRIPTION_ENGINE, + "reset":config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER, + }, + } + def callbackSetWhisperWeightType(data, *args, **kwargs) -> dict: print(json.dumps({"log": "callbackSetWhisperWeightType", "data":data}), flush=True) config.WHISPER_WEIGHT_TYPE = str(data) @@ -1049,14 +1083,24 @@ def callbackSetOverlaySmallLogSettingsZRotation(data, *args, **kwargs) -> dict: return {"status":200, "result":config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"]} # Others Tab -def callbackSetEnableAutoClearMessageBox(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetEnableAutoClearMessageBox", "data":data}), flush=True) - config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = data +def callbackEnableAutoClearMessageBox(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableAutoClearMessageBox"}), flush=True) + config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = True return {"status":200, "result":config.ENABLE_AUTO_CLEAR_MESSAGE_BOX} -def callbackSetEnableSendOnlyTranslatedMessages(data, *args, **kwargs) -> dict: - print(json.dumps({"log": "callbackSetEnableSendOnlyTranslatedMessages", "data":data}), flush=True) - config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = data +def callbackDisableAutoClearMessageBox(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableAutoClearMessageBox"}), flush=True) + config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = False + return {"status":200, "result":config.ENABLE_AUTO_CLEAR_MESSAGE_BOX} + +def callbackEnableSendOnlyTranslatedMessages(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableSendOnlyTranslatedMessages"}), flush=True) + config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = True + return {"status":200, "result":config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES} + +def callbackDisableSendOnlyTranslatedMessages(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableSendOnlyTranslatedMessages"}), flush=True) + config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = False return {"status":200, "result":config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES} def callbackSetSendMessageButtonType(data, *args, **kwargs) -> dict: @@ -1157,17 +1201,17 @@ def callbackSetOscPort(data, *args, **kwargs) -> dict: config.OSC_PORT = int(data) return {"status":200, "result":config.OSC_PORT} -def getListLanguageAndCountry(): - return model.getListLanguageAndCountry() +def getListLanguageAndCountry(*args, **kwargs) -> dict: + return {"status":200, "result": model.getListLanguageAndCountry()} -def getListInputHost(): - return model.getListInputHost() +def getListInputHost(*args, **kwargs) -> dict: + return {"status":200, "result": model.getListInputHost()} -def getListInputDevice(): - return model.getListInputDevice() +def getListInputDevice(*args, **kwargs) -> dict: + return {"status":200, "result": model.getListInputDevice()} -def getListOutputDevice(): - return model.getListOutputDevice() +def getListOutputDevice(*args, **kwargs) -> dict: + return {"status":200, "result": model.getListOutputDevice()} def init(): print(json.dumps({"log": "Start Initialization"}), flush=True) diff --git a/src-python/webui_mainloop.py b/src-python/webui_mainloop.py index b719607f..183771b4 100644 --- a/src-python/webui_mainloop.py +++ b/src-python/webui_mainloop.py @@ -97,8 +97,8 @@ controller_mapping = { "/controller/list_mic_host": controller.getListInputHost, "/controller/list_mic_device": controller.getListInputDevice, "/controller/list_speaker_device": controller.getListOutputDevice, - "/controller/callback_update_software": controller.callbackUpdateSoftware, - "/controller/callback_restart_software": controller.callbackRestartSoftware, + # "/controller/callback_update_software": controller.callbackUpdateSoftware, + # "/controller/callback_restart_software": controller.callbackRestartSoftware, "/controller/callback_filepath_logs": controller.callbackFilepathLogs, "/controller/callback_filepath_config_file": controller.callbackFilepathConfigFile, # "/controller/callback_enable_easter_egg": controller.callbackEnableEasterEgg, @@ -129,15 +129,18 @@ controller_mapping = { "/controller/callback_set_message_box_ratio": controller.callbackSetMessageBoxRatio, "/controller/callback_set_font_family": controller.callbackSetFontFamily, "/controller/callback_set_ui_language": controller.callbackSetUiLanguage, - "/controller/callback_set_enable_restore_main_window_geometry": controller.callbackSetEnableRestoreMainWindowGeometry, - "/controller/callback_set_use_translation_feature": controller.callbackSetUseTranslationFeature, + "/controller/callback_enable_restore_main_window_geometry": controller.callbackEnableRestoreMainWindowGeometry, + "/controller/callback_disable_restore_main_window_geometry": controller.callbackDisableRestoreMainWindowGeometry, + "/controller/callback_enable_use_translation_feature": controller.callbackEnableUseTranslationFeature, + "/controller/callback_disable_use_translation_feature": controller.callbackDisableUseTranslationFeature, "/controller/callback_set_ctranslate2_weight_type": controller.callbackSetCtranslate2WeightType, "/controller/callback_set_deepl_auth_key": controller.callbackSetDeeplAuthKey, "/controller/callback_clear_deepl_auth_key": controller.callbackClearDeeplAuthKey, "/controller/callback_set_mic_host": controller.callbackSetMicHost, "/controller/callback_set_mic_device": controller.callbackSetMicDevice, "/controller/callback_set_mic_energy_threshold": controller.callbackSetMicEnergyThreshold, - "/controller/callback_set_mic_dynamic_energy_threshold": controller.callbackSetMicDynamicEnergyThreshold, + "/controller/callback_enable_mic_dynamic_energy_threshold": controller.callbackEnableMicDynamicEnergyThreshold, + "/controller/callback_disable_mic_dynamic_energy_threshold": controller.callbackDisableMicDynamicEnergyThreshold, "/controller/callback_enable_check_mic_threshold": controller.callbackEnableCheckMicThreshold, "/controller/callback_disable_check_mic_threshold": controller.callbackDisableCheckMicThreshold, "/controller/callback_set_mic_record_timeout": controller.callbackSetMicRecordTimeout, @@ -147,13 +150,15 @@ controller_mapping = { "/controller/callback_delete_mic_word_filter": controller.callbackDeleteMicWordFilter, "/controller/callback_set_speaker_device": controller.callbackSetSpeakerDevice, "/controller/callback_set_speaker_energy_threshold": controller.callbackSetSpeakerEnergyThreshold, - "/controller/callback_set_speaker_dynamic_energy_threshold": controller.callbackSetSpeakerDynamicEnergyThreshold, + "/controller/callback_enable_speaker_dynamic_energy_threshold": controller.callbackEnableSpeakerDynamicEnergyThreshold, + "/controller/callback_disable_speaker_dynamic_energy_threshold": controller.callbackDisableSpeakerDynamicEnergyThreshold, "/controller/callback_enable_check_speaker_threshold": controller.callbackEnableCheckSpeakerThreshold, "/controller/callback_disable_check_speaker_threshold": controller.callbackDisableCheckSpeakerThreshold, "/controller/callback_set_speaker_record_timeout": controller.callbackSetSpeakerRecordTimeout, "/controller/callback_set_speaker_phrase_timeout": controller.callbackSetSpeakerPhraseTimeout, "/controller/callback_set_speaker_max_phrases": controller.callbackSetSpeakerMaxPhrases, - "/controller/callback_set_use_whisper_feature": controller.callbackSetUserWhisperFeature, + "/controller/callback_enable_use_whisper_feature": controller.callbackEnableUseWhisperFeature, + "/controller/callback_disable_use_whisper_feature": controller.callbackDisableUseWhisperFeature, "/controller/callback_set_whisper_weight_type": controller.callbackSetWhisperWeightType, "/controller/callback_set_overlay_settings_opacity": controller.callbackSetOverlaySettingsOpacity, "/controller/callback_set_overlay_settings_ui_scaling": controller.callbackSetOverlaySettingsUiScaling, @@ -165,8 +170,10 @@ controller_mapping = { "/controller/callback_set_overlay_small_log_settings_x_rotation": controller.callbackSetOverlaySmallLogSettingsXRotation, "/controller/callback_set_overlay_small_log_settings_y_rotation": controller.callbackSetOverlaySmallLogSettingsYRotation, "/controller/callback_set_overlay_small_log_settings_z_rotation": controller.callbackSetOverlaySmallLogSettingsZRotation, - "/controller/callback_set_enable_auto_clear_chatbox": controller.callbackSetEnableAutoClearMessageBox, - "/controller/callback_set_send_only_translated_messages": controller.callbackSetEnableSendOnlyTranslatedMessages, + "/controller/callback_enable_auto_clear_chatbox": controller.callbackEnableAutoClearMessageBox, + "/controller/callback_disable_auto_clear_chatbox": controller.callbackDisableAutoClearMessageBox, + "/controller/callback_enable_send_only_translated_messages": controller.callbackEnableSendOnlyTranslatedMessages, + "/controller/callback_disable_send_only_translated_messages": controller.callbackDisableSendOnlyTranslatedMessages, "/controller/callback_set_send_message_button_type": controller.callbackSetSendMessageButtonType, "/controller/callback_enable_notice_xsoverlay": controller.callbackEnableNoticeXsoverlay, "/controller/callback_disable_notice_xsoverlay": controller.callbackDisableNoticeXsoverlay, @@ -271,15 +278,6 @@ def main(): f.write(f"received_data: {received_data}\n") if received_data: - # response_data = { - # "status": 200, - # "id": received_data["id"], - # "data": received_data["data"], - # } - # response = json.dumps(response_data) - # time.sleep(2) - # print(response, flush=True) - endpoint = received_data.get("endpoint", None) data = received_data.get("data", None) @@ -311,23 +309,124 @@ def main(): print(response, flush=True) if __name__ == "__main__": - # endpoint = "/controller/list_mic_host" - # data = None - # response_data, status = handleControllerRequest(endpoint, data) - # response = { - # "status": status, - # "endpoint": endpoint, - # "data": response_data, - # } - # response = json.dumps(response) - # print(response, flush=True) + response_test = True + if response_test: + for endpoint, value in config_mapping.items(): + response_data, status = handleConfigRequest(endpoint) + response = { + "status": status, + "endpoint": endpoint, + "result": response_data, + } + response = json.dumps(response) + print(response, flush=True) - try: - controller.init() - print(json.dumps({"log": "Initialization from Python."}), flush=True) - while True: - main() - except Exception: - import traceback - with open('error.log', 'a') as f: - traceback.print_exc(file=f) \ No newline at end of file + for endpoint, value in controller_mapping.items(): + print("endpoint: ", endpoint) + + match endpoint: + case "/controller/callback_messagebox_press_key_enter": + data = "テスト" + case "/controller/set_your_language_and_country": + data = {"language": "English", "country": "Hong Kong"} + case "/controller/set_target_language_and_country": + data = {"language": "Japanese", "country": "Japan"} + case "/controller/callback_set_transparency": + data = 0.5 + case "/controller/callback_set_appearance": + data = "Dark" + case "/controller/callback_set_ui_scaling": + data = 1.5 + case "/controller/callback_set_textbox_ui_scaling": + data = 1.5 + case "/controller/callback_set_message_box_ratio": + data = 0.5 + case "/controller/callback_set_font_family": + data = "Yu Gothic UI" + case "/controller/callback_set_ui_language": + data = "ja" + case "/controller/callback_set_ctranslate2_weight_type": + data = "Small" + case "/controller/callback_set_deepl_auth_key": + data = "35eb1ccf-e36e-6ed2-ccf7-b0463defd962:fx" + case "/controller/callback_set_mic_host": + data = "MME" + case "/controller/callback_set_mic_device": + data = "マイク (Realtek High Definition Audio)" + case "/controller/callback_set_mic_energy_threshold": + data = 0.5 + case "/controller/callback_set_mic_record_timeout": + data = 5 + case "/controller/callback_set_mic_phrase_timeout": + data = 5 + case "/controller/callback_set_mic_max_phrases": + data = 5 + case "/controller/callback_set_mic_word_filter": + data = "test0, test1, test2" + case "/controller/callback_delete_mic_word_filter": + data = "test1" + case "/controller/callback_set_speaker_device": + data = "スピーカー (Realtek High Definition Audio)" + case "/controller/callback_set_speaker_energy_threshold": + data = 0.5 + case "/controller/callback_set_speaker_record_timeout": + data = 5 + case "/controller/callback_set_speaker_phrase_timeout": + data = 5 + case "/controller/callback_set_speaker_max_phrases": + data = 5 + case "/controller/callback_set_use_whisper_feature": + data = True + case "/controller/callback_set_whisper_weight_type": + data = "base" + case "/controller/callback_set_overlay_settings_opacity": + data = 0.5 + case "/controller/callback_set_overlay_settings_ui_scaling": + data = 1.5 + case "/controller/callback_set_overlay_small_log_settings_x_pos": + data = 0 + case "/controller/callback_set_overlay_small_log_settings_y_pos": + data = 0 + case "/controller/callback_set_overlay_small_log_settings_z_pos": + data = 0 + case "/controller/callback_set_overlay_small_log_settings_x_rotation": + data = 0 + case "/controller/callback_set_overlay_small_log_settings_y_rotation": + data = 0 + case "/controller/callback_set_overlay_small_log_settings_z_rotation": + data = 0 + case "/controller/callback_set_send_message_button_type": + data = "show" + case "/controller/callback_set_send_message_format": + data = "[message]" + case "/controller/callback_set_send_message_format_with_t": + data = "[message]([translation])" + case "/controller/callback_set_received_message_format": + data = "[message]" + case "/controller/callback_set_received_message_format_with_t": + data = "[message]([translation])" + case "/controller/callback_set_osc_ip_address": + data = "127.0.0.1" + case "/controller/callback_set_osc_port": + data = 8000 + case _: + data = None + + response_data, status = handleControllerRequest(endpoint, data) + response = { + "status": status, + "endpoint": endpoint, + "result": response_data, + } + response = json.dumps(response) + print(response, flush=True) + else: + try: + controller.init() + print(json.dumps({"log": "Initialization from Python."}), flush=True) + while True: + main() + except Exception: + import traceback + with open('error.log', 'a') as f: + traceback.print_exc(file=f) \ No newline at end of file