👍️[Update] Main/Controller : エンドポイントの検証用のテストコードを追加(途中)

This commit is contained in:
misyaguziya
2024-08-09 19:11:08 +09:00
parent 8bb5b27e9f
commit d4d68d17cf
3 changed files with 248 additions and 102 deletions

View File

@@ -963,7 +963,10 @@ class Config:
self._VERSION = "2.2.5" self._VERSION = "2.2.5"
self._ENABLE_SPEAKER2CHATBOX = False # Speaker2Chatbox self._ENABLE_SPEAKER2CHATBOX = False # Speaker2Chatbox
self._ENABLE_SPEAKER2CHATBOX_PASS_CONFIRMATION = "VRCT=0YEN" 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_CONFIG = os_path.join(self._PATH_LOCAL, "config.json")
self._PATH_LOGS = os_path.join(self._PATH_LOCAL, "logs") self._PATH_LOGS = os_path.join(self._PATH_LOCAL, "logs")
os_makedirs(self._PATH_LOGS, exist_ok=True) os_makedirs(self._PATH_LOGS, exist_ok=True)

View File

@@ -48,12 +48,12 @@ def callbackRestartSoftware(*args, **kwargs) -> dict:
model.reStartSoftware() model.reStartSoftware()
return {"status":200} return {"status":200}
def callbackFilepathLogs(): def callbackFilepathLogs(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackFilepathLogs"}), flush=True) print(json.dumps({"log": "callbackFilepathLogs"}), flush=True)
Popen(['explorer', config.PATH_LOGS.replace('/', '\\')], shell=True) Popen(['explorer', config.PATH_LOGS.replace('/', '\\')], shell=True)
return {"status":200} return {"status":200}
def callbackFilepathConfigFile(): def callbackFilepathConfigFile(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackFilepathConfigFile"}), flush=True) print(json.dumps({"log": "callbackFilepathConfigFile"}), flush=True)
Popen(['explorer', config.PATH_LOCAL.replace('/', '\\')], shell=True) Popen(['explorer', config.PATH_LOCAL.replace('/', '\\')], shell=True)
return {"status":200} return {"status":200}
@@ -95,7 +95,7 @@ class MicMessage:
def send(self, message: Union[str, bool]) -> None: def send(self, message: Union[str, bool]) -> None:
if isinstance(message, bool) and message is False: if isinstance(message, bool) and message is False:
self.action("error_device", { self.action("error_device", {
"status":404, "status":400,
"result": { "result": {
"message":"No mic device detected." "message":"No mic device detected."
} }
@@ -120,7 +120,7 @@ class MicMessage:
if success is False: if success is False:
changeToCTranslate2Process() changeToCTranslate2Process()
self.action("error_translation_engine", { self.action("error_translation_engine", {
"status":404, "status":400,
"result": { "result": {
"message":"translation engine limit error" "message":"translation engine limit error"
} }
@@ -203,7 +203,7 @@ class SpeakerMessage:
def receive(self, message): def receive(self, message):
if isinstance(message, bool) and message is False: if isinstance(message, bool) and message is False:
self.action("error_device",{ self.action("error_device",{
"status":404, "status":400,
"result": { "result": {
"message":"No mic device detected." "message":"No mic device detected."
}, },
@@ -219,7 +219,7 @@ class SpeakerMessage:
if success is False: if success is False:
changeToCTranslate2Process() changeToCTranslate2Process()
self.action("error_translation_engine", { self.action("error_translation_engine", {
"status":404, "status":400,
"result": { "result": {
"message":"translation engine limit error" "message":"translation engine limit error"
} }
@@ -314,7 +314,7 @@ class ChatMessage:
if success is False: if success is False:
changeToCTranslate2Process() changeToCTranslate2Process()
self.action("error_translation_engine", { self.action("error_translation_engine", {
"status":404, "status":400,
"result":{ "result":{
"message":"translation engine limit error" "message":"translation engine limit error"
} }
@@ -645,27 +645,42 @@ def callbackSetUiLanguage(data, *args, **kwargs) -> dict:
config.UI_LANGUAGE = data config.UI_LANGUAGE = data
return {"status":200, "result":config.UI_LANGUAGE} return {"status":200, "result":config.UI_LANGUAGE}
def callbackSetEnableRestoreMainWindowGeometry(data, *args, **kwargs) -> dict: def callbackEnableRestoreMainWindowGeometry(data, *args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetEnableRestoreMainWindowGeometry", "data":data}), flush=True) print(json.dumps({"log": "callbackEnableRestoreMainWindowGeometry"}), flush=True)
config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY = data 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} return {"status":200, "result":config.ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY}
# Translation Tab # Translation Tab
def callbackSetUseTranslationFeature(data, *args, **kwargs) -> dict: def callbackEnableUseTranslationFeature(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetUseTranslationFeature", "data":data}), flush=True) print(json.dumps({"log": "callbackEnableTranslationFeature"}), flush=True)
config.USE_TRANSLATION_FEATURE = data config.USE_TRANSLATION_FEATURE = True
if config.USE_TRANSLATION_FEATURE is True:
if model.checkCTranslatorCTranslate2ModelWeight(): 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:
config.IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = False 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, return {"status":200,
"result":{ "result":{
"feature":config.USE_TRANSLATION_FEATURE, "feature":config.USE_TRANSLATION_FEATURE,
@@ -694,7 +709,7 @@ def callbackSetCtranslate2WeightType(data, *args, **kwargs) -> dict:
def callbackSetDeeplAuthKey(data, *args, **kwargs) -> dict: def callbackSetDeeplAuthKey(data, *args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetDeeplAuthKey", "data":data}), flush=True) print(json.dumps({"log": "callbackSetDeeplAuthKey", "data":data}), flush=True)
status = 404 status = 400
if len(data) == 36 or len(data) == 39: if len(data) == 36 or len(data) == 39:
result = model.authenticationTranslatorDeepLAuthKey(auth_key=data) result = model.authenticationTranslatorDeepLAuthKey(auth_key=data)
if result is True: if result is True:
@@ -742,16 +757,21 @@ def callbackSetMicDevice(data, *args, **kwargs) -> dict:
def callbackSetMicEnergyThreshold(data, *args, **kwargs) -> dict: def callbackSetMicEnergyThreshold(data, *args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetMicEnergyThreshold", "data":data}), flush=True) print(json.dumps({"log": "callbackSetMicEnergyThreshold", "data":data}), flush=True)
status = 404 status = 400
data = int(data) data = int(data)
if 0 <= data <= config.MAX_MIC_ENERGY_THRESHOLD: if 0 <= data <= config.MAX_MIC_ENERGY_THRESHOLD:
config.INPUT_MIC_ENERGY_THRESHOLD = data config.INPUT_MIC_ENERGY_THRESHOLD = data
status = 200 status = 200
return {"status": status, "result": config.INPUT_MIC_ENERGY_THRESHOLD} return {"status": status, "result": config.INPUT_MIC_ENERGY_THRESHOLD}
def callbackSetMicDynamicEnergyThreshold(data, *args, **kwargs) -> dict: def callbackEnableMicDynamicEnergyThreshold(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetMicDynamicEnergyThreshold", "data":data}), flush=True) print(json.dumps({"log": "callbackEnableMicDynamicEnergyThreshold"}), flush=True)
config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD = data 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} return {"status":200, "result":config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD}
class ProgressBarEnergy: class ProgressBarEnergy:
@@ -781,7 +801,7 @@ def callbackSetMicRecordTimeout(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Mic Record Timeout"}} response = {"status":400, "result":{"message":"Error Mic Record Timeout"}}
else: else:
response = {"status":200, "result":config.INPUT_MIC_RECORD_TIMEOUT} response = {"status":200, "result":config.INPUT_MIC_RECORD_TIMEOUT}
return response return response
@@ -795,7 +815,7 @@ def callbackSetMicPhraseTimeout(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Mic Phrase Timeout"}} response = {"status":400, "result":{"message":"Error Mic Phrase Timeout"}}
else: else:
response = {"status":200, "result":config.INPUT_MIC_PHRASE_TIMEOUT} response = {"status":200, "result":config.INPUT_MIC_PHRASE_TIMEOUT}
return response return response
@@ -809,7 +829,7 @@ def callbackSetMicMaxPhrases(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Mic Max Phrases"}} response = {"status":400, "result":{"message":"Error Mic Max Phrases"}}
else: else:
response = {"status":200, "result":config.INPUT_MIC_MAX_PHRASES} response = {"status":200, "result":config.INPUT_MIC_MAX_PHRASES}
return response return response
@@ -864,14 +884,19 @@ def callbackSetSpeakerEnergyThreshold(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Set Speaker Energy Threshold"}} response = {"status":400, "result":{"message":"Error Set Speaker Energy Threshold"}}
else: else:
response = {"status":200, "result":config.INPUT_SPEAKER_ENERGY_THRESHOLD} response = {"status":200, "result":config.INPUT_SPEAKER_ENERGY_THRESHOLD}
return response return response
def callbackSetSpeakerDynamicEnergyThreshold(data, *args, **kwargs) -> dict: def callbackEnableSpeakerDynamicEnergyThreshold(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetSpeakerDynamicEnergyThreshold", "data":data}), flush=True) print(json.dumps({"log": "callbackEnableSpeakerDynamicEnergyThreshold"}), flush=True)
config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD = data 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} return {"status":200, "result":config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD}
def callbackEnableCheckSpeakerThreshold(data, action, *args, **kwargs) -> dict: def callbackEnableCheckSpeakerThreshold(data, action, *args, **kwargs) -> dict:
@@ -894,7 +919,7 @@ def callbackSetSpeakerRecordTimeout(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Speaker Record Timeout"}} response = {"status":400, "result":{"message":"Error Speaker Record Timeout"}}
else: else:
response = {"status":200, "result":config.INPUT_SPEAKER_RECORD_TIMEOUT} response = {"status":200, "result":config.INPUT_SPEAKER_RECORD_TIMEOUT}
return response return response
@@ -908,7 +933,7 @@ def callbackSetSpeakerPhraseTimeout(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Speaker Phrase Timeout"}} response = {"status":400, "result":{"message":"Error Speaker Phrase Timeout"}}
else: else:
response = {"status":200, "result":config.INPUT_SPEAKER_PHRASE_TIMEOUT} response = {"status":200, "result":config.INPUT_SPEAKER_PHRASE_TIMEOUT}
return response return response
@@ -922,24 +947,20 @@ def callbackSetSpeakerMaxPhrases(data, *args, **kwargs) -> dict:
else: else:
raise ValueError() raise ValueError()
except Exception: except Exception:
response = {"status":404, "result":{"message":"Error Speaker Max Phrases"}} response = {"status":400, "result":{"message":"Error Speaker Max Phrases"}}
else: else:
response = {"status":200, "result":config.INPUT_SPEAKER_MAX_PHRASES} response = {"status":200, "result":config.INPUT_SPEAKER_MAX_PHRASES}
return response return response
# Transcription (Internal AI Model) # Transcription (Internal AI Model)
def callbackSetUserWhisperFeature(data, *args, **kwargs) -> dict: def callbackEnableUseWhisperFeature(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetUserWhisperFeature", "data":data}), flush=True) print(json.dumps({"log": "callbackEnableUserWhisperFeature"}), flush=True)
config.USE_WHISPER_FEATURE = data config.USE_WHISPER_FEATURE = True
if config.USE_WHISPER_FEATURE is True: if model.checkTranscriptionWhisperModelWeight() 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:
config.IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = False 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" config.SELECTED_TRANSCRIPTION_ENGINE = "Google"
return {"status":200, return {"status":200,
"result":{ "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: def callbackSetWhisperWeightType(data, *args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetWhisperWeightType", "data":data}), flush=True) print(json.dumps({"log": "callbackSetWhisperWeightType", "data":data}), flush=True)
config.WHISPER_WEIGHT_TYPE = str(data) 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"]} return {"status":200, "result":config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"]}
# Others Tab # Others Tab
def callbackSetEnableAutoClearMessageBox(data, *args, **kwargs) -> dict: def callbackEnableAutoClearMessageBox(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetEnableAutoClearMessageBox", "data":data}), flush=True) print(json.dumps({"log": "callbackEnableAutoClearMessageBox"}), flush=True)
config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = data config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = True
return {"status":200, "result":config.ENABLE_AUTO_CLEAR_MESSAGE_BOX} return {"status":200, "result":config.ENABLE_AUTO_CLEAR_MESSAGE_BOX}
def callbackSetEnableSendOnlyTranslatedMessages(data, *args, **kwargs) -> dict: def callbackDisableAutoClearMessageBox(*args, **kwargs) -> dict:
print(json.dumps({"log": "callbackSetEnableSendOnlyTranslatedMessages", "data":data}), flush=True) print(json.dumps({"log": "callbackDisableAutoClearMessageBox"}), flush=True)
config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = data 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} return {"status":200, "result":config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES}
def callbackSetSendMessageButtonType(data, *args, **kwargs) -> dict: def callbackSetSendMessageButtonType(data, *args, **kwargs) -> dict:
@@ -1157,17 +1201,17 @@ def callbackSetOscPort(data, *args, **kwargs) -> dict:
config.OSC_PORT = int(data) config.OSC_PORT = int(data)
return {"status":200, "result":config.OSC_PORT} return {"status":200, "result":config.OSC_PORT}
def getListLanguageAndCountry(): def getListLanguageAndCountry(*args, **kwargs) -> dict:
return model.getListLanguageAndCountry() return {"status":200, "result": model.getListLanguageAndCountry()}
def getListInputHost(): def getListInputHost(*args, **kwargs) -> dict:
return model.getListInputHost() return {"status":200, "result": model.getListInputHost()}
def getListInputDevice(): def getListInputDevice(*args, **kwargs) -> dict:
return model.getListInputDevice() return {"status":200, "result": model.getListInputDevice()}
def getListOutputDevice(): def getListOutputDevice(*args, **kwargs) -> dict:
return model.getListOutputDevice() return {"status":200, "result": model.getListOutputDevice()}
def init(): def init():
print(json.dumps({"log": "Start Initialization"}), flush=True) print(json.dumps({"log": "Start Initialization"}), flush=True)

View File

@@ -97,8 +97,8 @@ controller_mapping = {
"/controller/list_mic_host": controller.getListInputHost, "/controller/list_mic_host": controller.getListInputHost,
"/controller/list_mic_device": controller.getListInputDevice, "/controller/list_mic_device": controller.getListInputDevice,
"/controller/list_speaker_device": controller.getListOutputDevice, "/controller/list_speaker_device": controller.getListOutputDevice,
"/controller/callback_update_software": controller.callbackUpdateSoftware, # "/controller/callback_update_software": controller.callbackUpdateSoftware,
"/controller/callback_restart_software": controller.callbackRestartSoftware, # "/controller/callback_restart_software": controller.callbackRestartSoftware,
"/controller/callback_filepath_logs": controller.callbackFilepathLogs, "/controller/callback_filepath_logs": controller.callbackFilepathLogs,
"/controller/callback_filepath_config_file": controller.callbackFilepathConfigFile, "/controller/callback_filepath_config_file": controller.callbackFilepathConfigFile,
# "/controller/callback_enable_easter_egg": controller.callbackEnableEasterEgg, # "/controller/callback_enable_easter_egg": controller.callbackEnableEasterEgg,
@@ -129,15 +129,18 @@ controller_mapping = {
"/controller/callback_set_message_box_ratio": controller.callbackSetMessageBoxRatio, "/controller/callback_set_message_box_ratio": controller.callbackSetMessageBoxRatio,
"/controller/callback_set_font_family": controller.callbackSetFontFamily, "/controller/callback_set_font_family": controller.callbackSetFontFamily,
"/controller/callback_set_ui_language": controller.callbackSetUiLanguage, "/controller/callback_set_ui_language": controller.callbackSetUiLanguage,
"/controller/callback_set_enable_restore_main_window_geometry": controller.callbackSetEnableRestoreMainWindowGeometry, "/controller/callback_enable_restore_main_window_geometry": controller.callbackEnableRestoreMainWindowGeometry,
"/controller/callback_set_use_translation_feature": controller.callbackSetUseTranslationFeature, "/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_ctranslate2_weight_type": controller.callbackSetCtranslate2WeightType,
"/controller/callback_set_deepl_auth_key": controller.callbackSetDeeplAuthKey, "/controller/callback_set_deepl_auth_key": controller.callbackSetDeeplAuthKey,
"/controller/callback_clear_deepl_auth_key": controller.callbackClearDeeplAuthKey, "/controller/callback_clear_deepl_auth_key": controller.callbackClearDeeplAuthKey,
"/controller/callback_set_mic_host": controller.callbackSetMicHost, "/controller/callback_set_mic_host": controller.callbackSetMicHost,
"/controller/callback_set_mic_device": controller.callbackSetMicDevice, "/controller/callback_set_mic_device": controller.callbackSetMicDevice,
"/controller/callback_set_mic_energy_threshold": controller.callbackSetMicEnergyThreshold, "/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_enable_check_mic_threshold": controller.callbackEnableCheckMicThreshold,
"/controller/callback_disable_check_mic_threshold": controller.callbackDisableCheckMicThreshold, "/controller/callback_disable_check_mic_threshold": controller.callbackDisableCheckMicThreshold,
"/controller/callback_set_mic_record_timeout": controller.callbackSetMicRecordTimeout, "/controller/callback_set_mic_record_timeout": controller.callbackSetMicRecordTimeout,
@@ -147,13 +150,15 @@ controller_mapping = {
"/controller/callback_delete_mic_word_filter": controller.callbackDeleteMicWordFilter, "/controller/callback_delete_mic_word_filter": controller.callbackDeleteMicWordFilter,
"/controller/callback_set_speaker_device": controller.callbackSetSpeakerDevice, "/controller/callback_set_speaker_device": controller.callbackSetSpeakerDevice,
"/controller/callback_set_speaker_energy_threshold": controller.callbackSetSpeakerEnergyThreshold, "/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_enable_check_speaker_threshold": controller.callbackEnableCheckSpeakerThreshold,
"/controller/callback_disable_check_speaker_threshold": controller.callbackDisableCheckSpeakerThreshold, "/controller/callback_disable_check_speaker_threshold": controller.callbackDisableCheckSpeakerThreshold,
"/controller/callback_set_speaker_record_timeout": controller.callbackSetSpeakerRecordTimeout, "/controller/callback_set_speaker_record_timeout": controller.callbackSetSpeakerRecordTimeout,
"/controller/callback_set_speaker_phrase_timeout": controller.callbackSetSpeakerPhraseTimeout, "/controller/callback_set_speaker_phrase_timeout": controller.callbackSetSpeakerPhraseTimeout,
"/controller/callback_set_speaker_max_phrases": controller.callbackSetSpeakerMaxPhrases, "/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_whisper_weight_type": controller.callbackSetWhisperWeightType,
"/controller/callback_set_overlay_settings_opacity": controller.callbackSetOverlaySettingsOpacity, "/controller/callback_set_overlay_settings_opacity": controller.callbackSetOverlaySettingsOpacity,
"/controller/callback_set_overlay_settings_ui_scaling": controller.callbackSetOverlaySettingsUiScaling, "/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_x_rotation": controller.callbackSetOverlaySmallLogSettingsXRotation,
"/controller/callback_set_overlay_small_log_settings_y_rotation": controller.callbackSetOverlaySmallLogSettingsYRotation, "/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_overlay_small_log_settings_z_rotation": controller.callbackSetOverlaySmallLogSettingsZRotation,
"/controller/callback_set_enable_auto_clear_chatbox": controller.callbackSetEnableAutoClearMessageBox, "/controller/callback_enable_auto_clear_chatbox": controller.callbackEnableAutoClearMessageBox,
"/controller/callback_set_send_only_translated_messages": controller.callbackSetEnableSendOnlyTranslatedMessages, "/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_set_send_message_button_type": controller.callbackSetSendMessageButtonType,
"/controller/callback_enable_notice_xsoverlay": controller.callbackEnableNoticeXsoverlay, "/controller/callback_enable_notice_xsoverlay": controller.callbackEnableNoticeXsoverlay,
"/controller/callback_disable_notice_xsoverlay": controller.callbackDisableNoticeXsoverlay, "/controller/callback_disable_notice_xsoverlay": controller.callbackDisableNoticeXsoverlay,
@@ -271,15 +278,6 @@ def main():
f.write(f"received_data: {received_data}\n") f.write(f"received_data: {received_data}\n")
if received_data: 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) endpoint = received_data.get("endpoint", None)
data = received_data.get("data", None) data = received_data.get("data", None)
@@ -311,23 +309,124 @@ def main():
print(response, flush=True) print(response, flush=True)
if __name__ == "__main__": if __name__ == "__main__":
# endpoint = "/controller/list_mic_host" response_test = True
# data = None if response_test:
# response_data, status = handleControllerRequest(endpoint, data) for endpoint, value in config_mapping.items():
# response = { response_data, status = handleConfigRequest(endpoint)
# "status": status, response = {
# "endpoint": endpoint, "status": status,
# "data": response_data, "endpoint": endpoint,
# } "result": response_data,
# response = json.dumps(response) }
# print(response, flush=True) response = json.dumps(response)
print(response, flush=True)
try: for endpoint, value in controller_mapping.items():
controller.init() print("endpoint: ", endpoint)
print(json.dumps({"log": "Initialization from Python."}), flush=True)
while True: match endpoint:
main() case "/controller/callback_messagebox_press_key_enter":
except Exception: data = "テスト"
import traceback case "/controller/set_your_language_and_country":
with open('error.log', 'a') as f: data = {"language": "English", "country": "Hong Kong"}
traceback.print_exc(file=f) 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)