👍️[Update] Main: mappingにstatusを追加

This commit is contained in:
misyaguziya
2024-09-16 02:25:25 +09:00
parent 7b39bfd044
commit 9ceb6bcee2
2 changed files with 263 additions and 239 deletions

View File

@@ -1409,10 +1409,11 @@ def init(actions:dict, *args, **kwargs) -> None:
model.startReceiveOSC()
if config.ENABLE_VRC_MIC_MUTE_SYNC is True:
model.startCheckMuteSelfStatus()
printLog("End Initialization")
# init Auto device selection
printLog("Init Auto Device Selection")
if config.ENABLE_MIC_AUTOMATIC_SELECTION is True or config.ENABLE_SPEAKER_AUTOMATIC_SELECTION is True:
update_device = UpdateSelectedDevice(actions["update_selected_device"])
model.startAutomaticDeviceSelection(update_device.set_mic, update_device.set_speaker)
model.startAutomaticDeviceSelection(update_device.set_mic, update_device.set_speaker)
printLog("End Initialization")

View File

@@ -8,198 +8,198 @@ import webui_controller as controller
from utils import printLog, printResponse, encodeBase64
config_mapping = {
"/config/version": "VERSION",
"/config/transparency_range": "TRANSPARENCY_RANGE",
"/config/appearance_theme_list": "APPEARANCE_THEME_LIST",
"/config/ui_scaling_list": "UI_SCALING_LIST",
"/config/textbox_ui_scaling_range": "TEXTBOX_UI_SCALING_RANGE",
"/config/message_box_ratio_range": "MESSAGE_BOX_RATIO_RANGE",
"/config/selectable_ctranslate2_weight_type_dict": "SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT",
"/config/selectable_whisper_weight_type_dict": "SELECTABLE_WHISPER_WEIGHT_TYPE_DICT",
"/config/max_mic_energy_threshold": "MAX_MIC_ENERGY_THRESHOLD",
"/config/max_speaker_energy_threshold": "MAX_SPEAKER_ENERGY_THRESHOLD",
"/config/enable_translation": "ENABLE_TRANSLATION",
"/config/enable_transcription_send": "ENABLE_TRANSCRIPTION_SEND",
"/config/enable_transcription_receive": "ENABLE_TRANSCRIPTION_RECEIVE",
"/config/enable_foreground": "ENABLE_FOREGROUND",
"/config/is_reset_button_displayed_for_translation": "IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION",
"/config/is_reset_button_displayed_for_whisper": "IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER",
"/config/selected_tab_no": "SELECTED_TAB_NO",
"/config/selected_tab_your_translator_engines": "SELECTED_TAB_YOUR_TRANSLATOR_ENGINES",
"/config/selected_tab_target_translator_engines": "SELECTED_TAB_TARGET_TRANSLATOR_ENGINES",
"/config/selected_tab_your_languages": "SELECTED_TAB_YOUR_LANGUAGES",
"/config/selected_tab_target_languages": "SELECTED_TAB_TARGET_LANGUAGES",
"/config/selected_transcription_engine": "SELECTED_TRANSCRIPTION_ENGINE",
"/config/enable_multi_translation": "ENABLE_MULTI_LANGUAGE_TRANSLATION",
"/config/enable_convert_message_to_romaji": "ENABLE_CONVERT_MESSAGE_TO_ROMAJI",
"/config/enable_convert_message_to_hiragana": "ENABLE_CONVERT_MESSAGE_TO_HIRAGANA",
"/config/is_main_window_sidebar_compact_mode": "IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE",
"/config/transparency": "TRANSPARENCY",
"/config/appearance_theme": "APPEARANCE_THEME",
"/config/ui_scaling": "UI_SCALING",
"/config/textbox_ui_scaling": "TEXTBOX_UI_SCALING",
"/config/message_box_ratio": "MESSAGE_BOX_RATIO",
"/config/font_family": "FONT_FAMILY",
"/config/ui_language": "UI_LANGUAGE",
"/config/enable_restore_main_window_geometry": "ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY",
"/config/main_window_geometry": "MAIN_WINDOW_GEOMETRY",
"/config/enable_mic_automatic_selection": "ENABLE_MIC_AUTOMATIC_SELECTION",
"/config/choice_mic_host": "CHOICE_MIC_HOST",
"/config/choice_mic_device": "CHOICE_MIC_DEVICE",
"/config/input_mic_energy_threshold": "INPUT_MIC_ENERGY_THRESHOLD",
"/config/input_mic_dynamic_energy_threshold": "INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD",
"/config/input_mic_record_timeout": "INPUT_MIC_RECORD_TIMEOUT",
"/config/input_mic_phrase_timeout": "INPUT_MIC_PHRASE_TIMEOUT",
"/config/input_mic_max_phrases": "INPUT_MIC_MAX_PHRASES",
"/config/input_mic_word_filter": "INPUT_MIC_WORD_FILTER",
"/config/input_mic_avg_logprob": "INPUT_MIC_AVG_LOGPROB",
"/config/input_mic_no_speech_prob": "INPUT_MIC_NO_SPEECH_PROB",
"/config/enable_speaker_automatic_selection": "ENABLE_SPEAKER_AUTOMATIC_SELECTION",
"/config/choice_speaker_device": "CHOICE_SPEAKER_DEVICE",
"/config/input_speaker_energy_threshold": "INPUT_SPEAKER_ENERGY_THRESHOLD",
"/config/input_speaker_dynamic_energy_threshold": "INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD",
"/config/input_speaker_record_timeout": "INPUT_SPEAKER_RECORD_TIMEOUT",
"/config/input_speaker_phrase_timeout": "INPUT_SPEAKER_PHRASE_TIMEOUT",
"/config/input_speaker_max_phrases": "INPUT_SPEAKER_MAX_PHRASES",
"/config/input_speaker_avg_logprob": "INPUT_SPEAKER_AVG_LOGPROB",
"/config/input_speaker_no_speech_prob": "INPUT_SPEAKER_NO_SPEECH_PROB",
"/config/osc_ip_address": "OSC_IP_ADDRESS",
"/config/osc_port": "OSC_PORT",
"/config/auth_keys": "AUTH_KEYS",
"/config/use_translation_feature": "USE_TRANSLATION_FEATURE",
"/config/use_whisper_feature": "USE_WHISPER_FEATURE",
"/config/ctranslate2_weight_type": "CTRANSLATE2_WEIGHT_TYPE",
"/config/whisper_weight_type": "WHISPER_WEIGHT_TYPE",
"/config/enable_auto_clear_message_box": "ENABLE_AUTO_CLEAR_MESSAGE_BOX",
"/config/enable_send_only_translated_messages": "ENABLE_SEND_ONLY_TRANSLATED_MESSAGES",
"/config/send_message_button_type": "SEND_MESSAGE_BUTTON_TYPE",
"/config/overlay_settings": "OVERLAY_SETTINGS",
"/config/enable_overlay_small_log": "ENABLE_OVERLAY_SMALL_LOG",
"/config/overlay_small_log_settings": "OVERLAY_SMALL_LOG_SETTINGS",
"/config/overlay_ui_type": "OVERLAY_UI_TYPE",
"/config/enable_send_message_to_vrc": "ENABLE_SEND_MESSAGE_TO_VRC",
"/config/send_message_format": "SEND_MESSAGE_FORMAT",
"/config/send_message_format_with_t": "SEND_MESSAGE_FORMAT_WITH_T",
"/config/received_message_format": "RECEIVED_MESSAGE_FORMAT",
"/config/received_message_format_with_t": "RECEIVED_MESSAGE_FORMAT_WITH_T",
"/config/enable_speaker2chatbox_pass": "ENABLE_SPEAKER2CHATBOX_PASS",
"/config/enable_send_received_message_to_vrc": "ENABLE_SEND_RECEIVED_MESSAGE_TO_VRC",
"/config/enable_logger": "ENABLE_LOGGER",
"/config/enable_vrc_mic_mute_sync": "ENABLE_VRC_MIC_MUTE_SYNC",
"/config/version": {"status": True, "variable":"VERSION"},
"/config/transparency_range": {"status": True, "variable":"TRANSPARENCY_RANGE"},
"/config/appearance_theme_list": {"status": True, "variable":"APPEARANCE_THEME_LIST"},
"/config/ui_scaling_list": {"status": True, "variable":"UI_SCALING_LIST"},
"/config/textbox_ui_scaling_range": {"status": True, "variable":"TEXTBOX_UI_SCALING_RANGE"},
"/config/message_box_ratio_range": {"status": True, "variable":"MESSAGE_BOX_RATIO_RANGE"},
"/config/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":"SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT"},
"/config/selectable_whisper_weight_type_dict": {"status": True, "variable":"SELECTABLE_WHISPER_WEIGHT_TYPE_DICT"},
"/config/max_mic_energy_threshold": {"status": True, "variable":"MAX_MIC_ENERGY_THRESHOLD"},
"/config/max_speaker_energy_threshold": {"status": True, "variable":"MAX_SPEAKER_ENERGY_THRESHOLD"},
# "/config/enable_translation": {"status": True, "variable":"ENABLE_TRANSLATION"},
# "/config/enable_transcription_send": {"status": True, "variable":"ENABLE_TRANSCRIPTION_SEND"},
# "/config/enable_transcription_receive": {"status": True, "variable":"ENABLE_TRANSCRIPTION_RECEIVE"},
# "/config/enable_foreground": {"status": True, "variable":"ENABLE_FOREGROUND"},
# "/config/is_reset_button_displayed_for_translation": {"status": True, "variable":"IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION"},
# "/config/is_reset_button_displayed_for_whisper": {"status": True, "variable":"IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER"},
"/config/selected_tab_no": {"status": True, "variable":"SELECTED_TAB_NO"},
"/config/selected_tab_your_translator_engines": {"status": False, "variable":"SELECTED_TAB_YOUR_TRANSLATOR_ENGINES"},
"/config/selected_tab_target_translator_engines": {"status": False, "variable":"SELECTED_TAB_TARGET_TRANSLATOR_ENGINES"},
"/config/selected_tab_your_languages": {"status": True, "variable":"SELECTED_TAB_YOUR_LANGUAGES"},
"/config/selected_tab_target_languages": {"status": True, "variable":"SELECTED_TAB_TARGET_LANGUAGES"},
"/config/selected_transcription_engine": {"status": False, "variable":"SELECTED_TRANSCRIPTION_ENGINE"},
"/config/enable_multi_translation": {"status": True, "variable":"ENABLE_MULTI_LANGUAGE_TRANSLATION"},
"/config/enable_convert_message_to_romaji": {"status": True, "variable":"ENABLE_CONVERT_MESSAGE_TO_ROMAJI"},
"/config/enable_convert_message_to_hiragana": {"status": True, "variable":"ENABLE_CONVERT_MESSAGE_TO_HIRAGANA"},
"/config/is_main_window_sidebar_compact_mode": {"status": True, "variable":"IS_MAIN_WINDOW_SIDEBAR_COMPACT_MODE"},
"/config/transparency": {"status": True, "variable":"TRANSPARENCY"},
"/config/appearance_theme": {"status": True, "variable":"APPEARANCE_THEME"},
"/config/ui_scaling": {"status": True, "variable":"UI_SCALING"},
"/config/textbox_ui_scaling": {"status": True, "variable":"TEXTBOX_UI_SCALING"},
"/config/message_box_ratio": {"status": True, "variable":"MESSAGE_BOX_RATIO"},
"/config/font_family": {"status": True, "variable":"FONT_FAMILY"},
"/config/ui_language": {"status": True, "variable":"UI_LANGUAGE"},
"/config/enable_restore_main_window_geometry": {"status": True, "variable":"ENABLE_RESTORE_MAIN_WINDOW_GEOMETRY"},
"/config/main_window_geometry": {"status": True, "variable":"MAIN_WINDOW_GEOMETRY"},
"/config/enable_mic_automatic_selection": {"status": True, "variable":"ENABLE_MIC_AUTOMATIC_SELECTION"},
"/config/choice_mic_host": {"status": True, "variable":"CHOICE_MIC_HOST"},
"/config/choice_mic_device": {"status": True, "variable":"CHOICE_MIC_DEVICE"},
"/config/input_mic_energy_threshold": {"status": True, "variable":"INPUT_MIC_ENERGY_THRESHOLD"},
"/config/input_mic_dynamic_energy_threshold": {"status": True, "variable":"INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD"},
"/config/input_mic_record_timeout": {"status": True, "variable":"INPUT_MIC_RECORD_TIMEOUT"},
"/config/input_mic_phrase_timeout": {"status": True, "variable":"INPUT_MIC_PHRASE_TIMEOUT"},
"/config/input_mic_max_phrases": {"status": True, "variable":"INPUT_MIC_MAX_PHRASES"},
"/config/input_mic_word_filter": {"status": True, "variable":"INPUT_MIC_WORD_FILTER"},
"/config/input_mic_avg_logprob": {"status": True, "variable":"INPUT_MIC_AVG_LOGPROB"},
"/config/input_mic_no_speech_prob": {"status": True, "variable":"INPUT_MIC_NO_SPEECH_PROB"},
"/config/enable_speaker_automatic_selection": {"status": True, "variable":"ENABLE_SPEAKER_AUTOMATIC_SELECTION"},
"/config/choice_speaker_device": {"status": True, "variable":"CHOICE_SPEAKER_DEVICE"},
"/config/input_speaker_energy_threshold": {"status": True, "variable":"INPUT_SPEAKER_ENERGY_THRESHOLD"},
"/config/input_speaker_dynamic_energy_threshold": {"status": True, "variable":"INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD"},
"/config/input_speaker_record_timeout": {"status": True, "variable":"INPUT_SPEAKER_RECORD_TIMEOUT"},
"/config/input_speaker_phrase_timeout": {"status": True, "variable":"INPUT_SPEAKER_PHRASE_TIMEOUT"},
"/config/input_speaker_max_phrases": {"status": True, "variable":"INPUT_SPEAKER_MAX_PHRASES"},
"/config/input_speaker_avg_logprob": {"status": True, "variable":"INPUT_SPEAKER_AVG_LOGPROB"},
"/config/input_speaker_no_speech_prob": {"status": True, "variable":"INPUT_SPEAKER_NO_SPEECH_PROB"},
"/config/osc_ip_address": {"status": True, "variable":"OSC_IP_ADDRESS"},
"/config/osc_port": {"status": True, "variable":"OSC_PORT"},
"/config/auth_keys": {"status": False, "variable":"AUTH_KEYS"},
"/config/use_translation_feature": {"status": True, "variable":"USE_TRANSLATION_FEATURE"},
"/config/use_whisper_feature": {"status": True, "variable":"USE_WHISPER_FEATURE"},
"/config/ctranslate2_weight_type": {"status": True, "variable":"CTRANSLATE2_WEIGHT_TYPE"},
"/config/whisper_weight_type": {"status": True, "variable":"WHISPER_WEIGHT_TYPE"},
"/config/enable_auto_clear_message_box": {"status": True, "variable":"ENABLE_AUTO_CLEAR_MESSAGE_BOX"},
"/config/enable_send_only_translated_messages": {"status": True, "variable":"ENABLE_SEND_ONLY_TRANSLATED_MESSAGES"},
"/config/send_message_button_type": {"status": True, "variable":"SEND_MESSAGE_BUTTON_TYPE"},
"/config/overlay_settings": {"status": True, "variable":"OVERLAY_SETTINGS"},
"/config/enable_overlay_small_log": {"status": True, "variable":"ENABLE_OVERLAY_SMALL_LOG"},
"/config/overlay_small_log_settings": {"status": True, "variable":"OVERLAY_SMALL_LOG_SETTINGS"},
"/config/overlay_ui_type": {"status": True, "variable":"OVERLAY_UI_TYPE"},
"/config/enable_send_message_to_vrc": {"status": True, "variable":"ENABLE_SEND_MESSAGE_TO_VRC"},
"/config/send_message_format": {"status": True, "variable":"SEND_MESSAGE_FORMAT"},
"/config/send_message_format_with_t": {"status": True, "variable":"SEND_MESSAGE_FORMAT_WITH_T"},
"/config/received_message_format": {"status": True, "variable":"RECEIVED_MESSAGE_FORMAT"},
"/config/received_message_format_with_t": {"status": True, "variable":"RECEIVED_MESSAGE_FORMAT_WITH_T"},
"/config/enable_speaker2chatbox_pass": {"status": True, "variable":"ENABLE_SPEAKER2CHATBOX_PASS"},
"/config/enable_send_received_message_to_vrc": {"status": True, "variable":"ENABLE_SEND_RECEIVED_MESSAGE_TO_VRC"},
"/config/enable_logger": {"status": True, "variable":"ENABLE_LOGGER"},
"/config/enable_vrc_mic_mute_sync": {"status": True, "variable":"ENABLE_VRC_MIC_MUTE_SYNC"},
}
controller_mapping = {
"/controller/list_language_and_country": controller.getListLanguageAndCountry,
"/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_filepath_logs": controller.callbackFilepathLogs,
"/controller/callback_filepath_config_file": controller.callbackFilepathConfigFile,
# "/controller/callback_enable_easter_egg": controller.callbackEnableEasterEgg,
"/controller/callback_open_config_window": controller.callbackOpenConfigWindow,
"/controller/callback_close_config_window": controller.callbackCloseConfigWindow,
"/controller/callback_enable_multi_language_translation": controller.callbackEnableMultiLanguageTranslation,
"/controller/callback_disable_multi_language_translation": controller.callbackDisableMultiLanguageTranslation,
"/controller/callback_enable_convert_message_to_romaji": controller.callbackEnableConvertMessageToRomaji,
"/controller/callback_disable_convert_message_to_romaji": controller.callbackDisableConvertMessageToRomaji,
"/controller/callback_enable_convert_message_to_hiragana": controller.callbackEnableConvertMessageToHiragana,
"/controller/callback_disable_convert_message_to_hiragana": controller.callbackDisableConvertMessageToHiragana,
"/controller/callback_enable_main_window_sidebar_compact_mode": controller.callbackEnableMainWindowSidebarCompactMode,
"/controller/callback_disable_main_window_sidebar_compact_mode": controller.callbackDisableMainWindowSidebarCompactMode,
"/controller/callback_enable_translation": controller.callbackEnableTranslation,
"/controller/callback_disable_translation": controller.callbackDisableTranslation,
"/controller/callback_enable_transcription_send": controller.callbackEnableTranscriptionSend,
"/controller/callback_disable_transcription_send": controller.callbackDisableTranscriptionSend,
"/controller/callback_enable_transcription_receive": controller.callbackEnableTranscriptionReceive,
"/controller/callback_disable_transcription_receive": controller.callbackDisableTranscriptionReceive,
"/controller/callback_messagebox_send": controller.callbackMessageBoxSend,
"/controller/callback_messagebox_typing": controller.callbackMessageBoxTyping,
"/controller/callback_messagebox_typing_stop": controller.callbackMessageBoxTypingStop,
"/controller/callback_enable_foreground": controller.callbackEnableForeground,
"/controller/callback_disable_foreground": controller.callbackDisableForeground,
"/controller/set_your_language_and_country": controller.setYourLanguageAndCountry,
"/controller/set_target_language_and_country": controller.setTargetLanguageAndCountry,
"/controller/swap_your_language_and_target_language": controller.swapYourLanguageAndTargetLanguage,
"/controller/callback_selected_language_preset_tab": controller.callbackSelectedLanguagePresetTab,
"/controller/list_translation_engines": controller.getTranslationEngines,
"/controller/callback_selected_translation_engine": controller.callbackSelectedTranslationEngine,
"/controller/callback_set_transparency": controller.callbackSetTransparency,
"/controller/callback_set_appearance": controller.callbackSetAppearance,
"/controller/callback_set_ui_scaling": controller.callbackSetUiScaling,
"/controller/callback_set_textbox_ui_scaling": controller.callbackSetTextboxUiScaling,
"/controller/callback_set_message_box_ratio": controller.callbackSetMessageBoxRatio,
"/controller/callback_set_font_family": controller.callbackSetFontFamily,
"/controller/callback_set_ui_language": controller.callbackSetUiLanguage,
"/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_download_ctranslate2_weight": controller.callbackDownloadCtranslate2Weight,
"/controller/callback_set_deepl_auth_key": controller.callbackSetDeeplAuthKey,
"/controller/callback_clear_deepl_auth_key": controller.callbackClearDeeplAuthKey,
"/controller/callback_enable_mic_automatic_selection": controller.callbackEnableMicAutomaticSelection,
"/controller/callback_disable_mic_automatic_selection": controller.callbackDisableMicAutomaticSelection,
"/controller/callback_set_mic_host": controller.callbackSetMicHost,
"/controller/callback_set_mic_device": controller.callbackSetMicDevice,
"/controller/callback_set_mic_energy_threshold": controller.callbackSetMicEnergyThreshold,
"/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,
"/controller/callback_set_mic_phrase_timeout": controller.callbackSetMicPhraseTimeout,
"/controller/callback_set_mic_max_phrases": controller.callbackSetMicMaxPhrases,
"/controller/callback_set_mic_word_filter": controller.callbackSetMicWordFilter,
"/controller/callback_delete_mic_word_filter": controller.callbackDeleteMicWordFilter,
"/controller/callback_enable_speaker_automatic_selection": controller.callbackEnableSpeakerAutomaticSelection,
"/controller/callback_disable_speaker_automatic_selection": controller.callbackDisableSpeakerAutomaticSelection,
"/controller/callback_set_speaker_device": controller.callbackSetSpeakerDevice,
"/controller/callback_set_speaker_energy_threshold": controller.callbackSetSpeakerEnergyThreshold,
"/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_enable_use_whisper_feature": controller.callbackEnableUseWhisperFeature,
"/controller/callback_disable_use_whisper_feature": controller.callbackDisableUseWhisperFeature,
"/controller/callback_set_whisper_weight_type": controller.callbackSetWhisperWeightType,
"/controller/callback_download_whisper_weight": controller.callbackDownloadWhisperWeight,
"/controller/callback_set_overlay_settings_opacity": controller.callbackSetOverlaySettingsOpacity,
"/controller/callback_set_overlay_settings_ui_scaling": controller.callbackSetOverlaySettingsUiScaling,
"/controller/callback_enable_overlay_small_log": controller.callbackEnableOverlaySmallLog,
"/controller/callback_disable_overlay_small_log": controller.callbackDisableOverlaySmallLog,
"/controller/callback_set_overlay_small_log_settings_x_pos": controller.callbackSetOverlaySmallLogSettingsXPos,
"/controller/callback_set_overlay_small_log_settings_y_pos": controller.callbackSetOverlaySmallLogSettingsYPos,
"/controller/callback_set_overlay_small_log_settings_z_pos": controller.callbackSetOverlaySmallLogSettingsZPos,
"/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_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_auto_export_message_logs": controller.callbackEnableAutoExportMessageLogs,
"/controller/callback_disable_auto_export_message_logs": controller.callbackDisableAutoExportMessageLogs,
"/controller/callback_enable_vrc_mic_mute_sync": controller.callbackEnableVrcMicMuteSync,
"/controller/callback_disable_vrc_mic_mute_sync": controller.callbackDisableVrcMicMuteSync,
"/controller/callback_enable_send_message_to_vrc": controller.callbackEnableSendMessageToVrc,
"/controller/callback_disable_send_message_to_vrc": controller.callbackDisableSendMessageToVrc,
"/controller/callback_set_send_message_format": controller.callbackSetSendMessageFormat,
"/controller/callback_set_send_message_format_with_t": controller.callbackSetSendMessageFormatWithT,
"/controller/callback_set_received_message_format": controller.callbackSetReceivedMessageFormat,
"/controller/callback_set_received_message_format_with_t": controller.callbackSetReceivedMessageFormatWithT,
"/controller/callback_enable_send_received_message_to_vrc": controller.callbackEnableSendReceivedMessageToVrc,
"/controller/callback_disable_send_received_message_to_vrc": controller.callbackDisableSendReceivedMessageToVrc,
"/controller/callback_enable_logger": controller.callbackEnableLogger,
"/controller/callback_disable_logger": controller.callbackDisableLogger,
"/controller/callback_set_osc_ip_address": controller.callbackSetOscIpAddress,
"/controller/callback_set_osc_port": controller.callbackSetOscPort,
"/controller/list_language_and_country": {"status": True, "variable":controller.getListLanguageAndCountry},
"/controller/list_mic_host": {"status": True, "variable":controller.getListInputHost},
"/controller/list_mic_device": {"status": True, "variable":controller.getListInputDevice},
"/controller/list_speaker_device": {"status": True, "variable":controller.getListOutputDevice},
# "/controller/callback_update_software": {"status": True, "variable":controller.callbackUpdateSoftware},
# "/controller/callback_restart_software": {"status": True, "variable":controller.callbackRestartSoftware},
"/controller/callback_filepath_logs": {"status": True, "variable":controller.callbackFilepathLogs},
"/controller/callback_filepath_config_file": {"status": True, "variable":controller.callbackFilepathConfigFile},
# "/controller/callback_enable_easter_egg": {"status": True, "variable":controller.callbackEnableEasterEgg},
"/controller/callback_open_config_window": {"status": True, "variable":controller.callbackOpenConfigWindow},
"/controller/callback_close_config_window": {"status": True, "variable":controller.callbackCloseConfigWindow},
"/controller/callback_enable_multi_language_translation": {"status": True, "variable":controller.callbackEnableMultiLanguageTranslation},
"/controller/callback_disable_multi_language_translation": {"status": True, "variable":controller.callbackDisableMultiLanguageTranslation},
"/controller/callback_enable_convert_message_to_romaji": {"status": True, "variable":controller.callbackEnableConvertMessageToRomaji},
"/controller/callback_disable_convert_message_to_romaji": {"status": True, "variable":controller.callbackDisableConvertMessageToRomaji},
"/controller/callback_enable_convert_message_to_hiragana": {"status": True, "variable":controller.callbackEnableConvertMessageToHiragana},
"/controller/callback_disable_convert_message_to_hiragana": {"status": True, "variable":controller.callbackDisableConvertMessageToHiragana},
"/controller/callback_enable_main_window_sidebar_compact_mode": {"status": True, "variable":controller.callbackEnableMainWindowSidebarCompactMode},
"/controller/callback_disable_main_window_sidebar_compact_mode": {"status": True, "variable":controller.callbackDisableMainWindowSidebarCompactMode},
"/controller/callback_enable_translation": {"status": False, "variable":controller.callbackEnableTranslation},
"/controller/callback_disable_translation": {"status": False, "variable":controller.callbackDisableTranslation},
"/controller/callback_enable_transcription_send": {"status": False, "variable":controller.callbackEnableTranscriptionSend},
"/controller/callback_disable_transcription_send": {"status": False, "variable":controller.callbackDisableTranscriptionSend},
"/controller/callback_enable_transcription_receive": {"status": False, "variable":controller.callbackEnableTranscriptionReceive},
"/controller/callback_disable_transcription_receive": {"status": False, "variable":controller.callbackDisableTranscriptionReceive},
"/controller/callback_messagebox_send": {"status": False, "variable":controller.callbackMessageBoxSend},
"/controller/callback_messagebox_typing": {"status": False, "variable":controller.callbackMessageBoxTyping},
"/controller/callback_messagebox_typing_stop": {"status": False, "variable":controller.callbackMessageBoxTypingStop},
"/controller/callback_enable_foreground": {"status": True, "variable":controller.callbackEnableForeground},
"/controller/callback_disable_foreground": {"status": True, "variable":controller.callbackDisableForeground},
"/controller/set_your_language_and_country": {"status": True, "variable":controller.setYourLanguageAndCountry},
"/controller/set_target_language_and_country": {"status": True, "variable":controller.setTargetLanguageAndCountry},
"/controller/swap_your_language_and_target_language": {"status": True, "variable":controller.swapYourLanguageAndTargetLanguage},
"/controller/callback_selected_language_preset_tab": {"status": True, "variable":controller.callbackSelectedLanguagePresetTab},
"/controller/list_translation_engines": {"status": True, "variable":controller.getTranslationEngines},
"/controller/callback_selected_translation_engine": {"status": True, "variable":controller.callbackSelectedTranslationEngine},
"/controller/callback_set_transparency": {"status": True, "variable":controller.callbackSetTransparency},
"/controller/callback_set_appearance": {"status": True, "variable":controller.callbackSetAppearance},
"/controller/callback_set_ui_scaling": {"status": True, "variable":controller.callbackSetUiScaling},
"/controller/callback_set_textbox_ui_scaling": {"status": True, "variable":controller.callbackSetTextboxUiScaling},
"/controller/callback_set_message_box_ratio": {"status": True, "variable":controller.callbackSetMessageBoxRatio},
"/controller/callback_set_font_family": {"status": True, "variable":controller.callbackSetFontFamily},
"/controller/callback_set_ui_language": {"status": True, "variable":controller.callbackSetUiLanguage},
"/controller/callback_enable_restore_main_window_geometry": {"status": True, "variable":controller.callbackEnableRestoreMainWindowGeometry},
"/controller/callback_disable_restore_main_window_geometry": {"status": True, "variable":controller.callbackDisableRestoreMainWindowGeometry},
"/controller/callback_enable_use_translation_feature": {"status": True, "variable":controller.callbackEnableUseTranslationFeature},
"/controller/callback_disable_use_translation_feature": {"status": True, "variable":controller.callbackDisableUseTranslationFeature},
"/controller/callback_set_ctranslate2_weight_type": {"status": True, "variable":controller.callbackSetCtranslate2WeightType},
"/controller/callback_download_ctranslate2_weight": {"status": True, "variable":controller.callbackDownloadCtranslate2Weight},
"/controller/callback_set_deepl_auth_key": {"status": True, "variable":controller.callbackSetDeeplAuthKey},
"/controller/callback_clear_deepl_auth_key": {"status": True, "variable":controller.callbackClearDeeplAuthKey},
"/controller/callback_enable_mic_automatic_selection": {"status": False, "variable":controller.callbackEnableMicAutomaticSelection},
"/controller/callback_disable_mic_automatic_selection": {"status": False, "variable":controller.callbackDisableMicAutomaticSelection},
"/controller/callback_set_mic_host": {"status": True, "variable":controller.callbackSetMicHost},
"/controller/callback_set_mic_device": {"status": True, "variable":controller.callbackSetMicDevice},
"/controller/callback_set_mic_energy_threshold": {"status": True, "variable":controller.callbackSetMicEnergyThreshold},
"/controller/callback_enable_mic_dynamic_energy_threshold": {"status": True, "variable":controller.callbackEnableMicDynamicEnergyThreshold},
"/controller/callback_disable_mic_dynamic_energy_threshold": {"status": True, "variable":controller.callbackDisableMicDynamicEnergyThreshold},
"/controller/callback_enable_check_mic_threshold": {"status": True, "variable":controller.callbackEnableCheckMicThreshold},
"/controller/callback_disable_check_mic_threshold": {"status": True, "variable":controller.callbackDisableCheckMicThreshold},
"/controller/callback_set_mic_record_timeout": {"status": True, "variable":controller.callbackSetMicRecordTimeout},
"/controller/callback_set_mic_phrase_timeout": {"status": True, "variable":controller.callbackSetMicPhraseTimeout},
"/controller/callback_set_mic_max_phrases": {"status": True, "variable":controller.callbackSetMicMaxPhrases},
"/controller/callback_set_mic_word_filter": {"status": False, "variable":controller.callbackSetMicWordFilter},
"/controller/callback_delete_mic_word_filter": {"status": False, "variable":controller.callbackDeleteMicWordFilter},
"/controller/callback_enable_speaker_automatic_selection": {"status": False, "variable":controller.callbackEnableSpeakerAutomaticSelection},
"/controller/callback_disable_speaker_automatic_selection": {"status": False, "variable":controller.callbackDisableSpeakerAutomaticSelection},
"/controller/callback_set_speaker_device": {"status": True, "variable":controller.callbackSetSpeakerDevice},
"/controller/callback_set_speaker_energy_threshold": {"status": True, "variable":controller.callbackSetSpeakerEnergyThreshold},
"/controller/callback_enable_speaker_dynamic_energy_threshold": {"status": True, "variable":controller.callbackEnableSpeakerDynamicEnergyThreshold},
"/controller/callback_disable_speaker_dynamic_energy_threshold": {"status": True, "variable":controller.callbackDisableSpeakerDynamicEnergyThreshold},
"/controller/callback_enable_check_speaker_threshold": {"status": True, "variable":controller.callbackEnableCheckSpeakerThreshold},
"/controller/callback_disable_check_speaker_threshold": {"status": True, "variable":controller.callbackDisableCheckSpeakerThreshold},
"/controller/callback_set_speaker_record_timeout": {"status": True, "variable":controller.callbackSetSpeakerRecordTimeout},
"/controller/callback_set_speaker_phrase_timeout": {"status": True, "variable":controller.callbackSetSpeakerPhraseTimeout},
"/controller/callback_set_speaker_max_phrases": {"status": True, "variable":controller.callbackSetSpeakerMaxPhrases},
"/controller/callback_enable_use_whisper_feature": {"status": True, "variable":controller.callbackEnableUseWhisperFeature},
"/controller/callback_disable_use_whisper_feature": {"status": True, "variable":controller.callbackDisableUseWhisperFeature},
"/controller/callback_set_whisper_weight_type": {"status": True, "variable":controller.callbackSetWhisperWeightType},
"/controller/callback_download_whisper_weight": {"status": True, "variable":controller.callbackDownloadWhisperWeight},
"/controller/callback_set_overlay_settings_opacity": {"status": True, "variable":controller.callbackSetOverlaySettingsOpacity},
"/controller/callback_set_overlay_settings_ui_scaling": {"status": True, "variable":controller.callbackSetOverlaySettingsUiScaling},
"/controller/callback_enable_overlay_small_log": {"status": True, "variable":controller.callbackEnableOverlaySmallLog},
"/controller/callback_disable_overlay_small_log": {"status": True, "variable":controller.callbackDisableOverlaySmallLog},
"/controller/callback_set_overlay_small_log_settings_x_pos": {"status": True, "variable":controller.callbackSetOverlaySmallLogSettingsXPos},
"/controller/callback_set_overlay_small_log_settings_y_pos": {"status": True, "variable":controller.callbackSetOverlaySmallLogSettingsYPos},
"/controller/callback_set_overlay_small_log_settings_z_pos": {"status": True, "variable":controller.callbackSetOverlaySmallLogSettingsZPos},
"/controller/callback_set_overlay_small_log_settings_x_rotation": {"status": True, "variable":controller.callbackSetOverlaySmallLogSettingsXRotation},
"/controller/callback_set_overlay_small_log_settings_y_rotation": {"status": True, "variable":controller.callbackSetOverlaySmallLogSettingsYRotation},
"/controller/callback_set_overlay_small_log_settings_z_rotation": {"status": True, "variable":controller.callbackSetOverlaySmallLogSettingsZRotation},
"/controller/callback_enable_auto_clear_chatbox": {"status": True, "variable":controller.callbackEnableAutoClearMessageBox},
"/controller/callback_disable_auto_clear_chatbox": {"status": True, "variable":controller.callbackDisableAutoClearMessageBox},
"/controller/callback_enable_send_only_translated_messages": {"status": True, "variable":controller.callbackEnableSendOnlyTranslatedMessages},
"/controller/callback_disable_send_only_translated_messages": {"status": True, "variable":controller.callbackDisableSendOnlyTranslatedMessages},
"/controller/callback_set_send_message_button_type": {"status": True, "variable":controller.callbackSetSendMessageButtonType},
"/controller/callback_enable_auto_export_message_logs": {"status": True, "variable":controller.callbackEnableAutoExportMessageLogs},
"/controller/callback_disable_auto_export_message_logs": {"status": True, "variable":controller.callbackDisableAutoExportMessageLogs},
"/controller/callback_enable_vrc_mic_mute_sync": {"status": False, "variable":controller.callbackEnableVrcMicMuteSync},
"/controller/callback_disable_vrc_mic_mute_sync": {"status": False, "variable":controller.callbackDisableVrcMicMuteSync},
"/controller/callback_enable_send_message_to_vrc": {"status": True, "variable":controller.callbackEnableSendMessageToVrc},
"/controller/callback_disable_send_message_to_vrc": {"status": True, "variable":controller.callbackDisableSendMessageToVrc},
"/controller/callback_set_send_message_format": {"status": True, "variable":controller.callbackSetSendMessageFormat},
"/controller/callback_set_send_message_format_with_t": {"status": True, "variable":controller.callbackSetSendMessageFormatWithT},
"/controller/callback_set_received_message_format": {"status": True, "variable":controller.callbackSetReceivedMessageFormat},
"/controller/callback_set_received_message_format_with_t": {"status": True, "variable":controller.callbackSetReceivedMessageFormatWithT},
"/controller/callback_enable_send_received_message_to_vrc": {"status": True, "variable":controller.callbackEnableSendReceivedMessageToVrc},
"/controller/callback_disable_send_received_message_to_vrc": {"status": True, "variable":controller.callbackDisableSendReceivedMessageToVrc},
"/controller/callback_enable_logger": {"status": False, "variable":controller.callbackEnableLogger},
"/controller/callback_disable_logger": {"status": False, "variable":controller.callbackDisableLogger},
"/controller/callback_set_osc_ip_address": {"status": True, "variable":controller.callbackSetOscIpAddress},
"/controller/callback_set_osc_port": {"status": True, "variable":controller.callbackSetOscPort},
}
action_mapping = {
@@ -252,35 +252,6 @@ action_mapping = {
}
}
def handleConfigRequest(endpoint):
handler = config_mapping.get(endpoint)
if handler is None:
response = "Invalid endpoint"
status = 404
else:
response = getattr(config, handler)
status = 200
return response, status
def handleControllerRequest(endpoint, data=None):
handler = controller_mapping.get(endpoint)
if handler is None:
response = "Invalid endpoint"
status = 404
else:
action_endpoint = action_mapping.get(endpoint, None)
try:
if action_endpoint is not None:
response = handler(data, Action(action_endpoint).transmit)
else:
response = handler(data)
status = response.get("status", None)
result = response.get("result", None)
except Exception as e:
result = str(e)
status = 500
return result, status
class Action:
def __init__(self, endpoints:dict) -> None:
self.endpoints = endpoints
@@ -322,20 +293,60 @@ class Main:
th_receiver.daemon = True
th_receiver.start()
def handleConfigRequest(self, endpoint):
handler = config_mapping.get(endpoint)
if handler is None:
response = "Invalid endpoint"
status = 404
elif handler["status"] is False:
response = "Locked endpoint"
status = 423
else:
response = getattr(config, handler["variable"])
status = 200
return response, status
def handleControllerRequest(self, endpoint, data=None):
handler = controller_mapping.get(endpoint)
if handler is None:
response = "Invalid endpoint"
status = 404
elif handler["status"] is False:
response = "Locked endpoint"
status = 423
else:
action_endpoint = action_mapping.get(endpoint, None)
try:
if action_endpoint is not None:
response = handler["variable"](data, Action(action_endpoint).transmit)
else:
response = handler["variable"](data)
status = response.get("status", None)
result = response.get("result", None)
except Exception as e:
result = str(e)
status = 500
return result, status
def configHandler(self) -> None:
while True:
if not self.queue_config.empty():
endpoint = self.queue_config.get()
try:
result, status = handleConfigRequest(endpoint)
result, status = self.handleConfigRequest(endpoint)
except Exception as e:
import traceback
with open('error.log', 'a') as f:
traceback.print_exc(file=f)
result = str(e)
status = 500
printLog(endpoint, {"send_data":result})
printResponse(status, endpoint, result)
if status == 423:
self.queue_config.put(endpoint)
else:
printLog(endpoint, {"send_data":result})
printResponse(status, endpoint, result)
time.sleep(0.1)
def startConfigHandler(self) -> None:
th_config = Thread(target=self.configHandler)
@@ -343,18 +354,24 @@ class Main:
th_config.start()
def controllerHandler(self) -> None:
if not self.queue_controller.empty():
try:
endpoint, data = self.queue_controller.get()
result, status = handleControllerRequest(endpoint, data)
except Exception as e:
import traceback
with open('error.log', 'a') as f:
traceback.print_exc(file=f)
result = str(e)
status = 500
printLog(endpoint, {"send_data":result})
printResponse(status, endpoint, result)
while True:
if not self.queue_controller.empty():
try:
endpoint, data = self.queue_controller.get()
result, status = self.handleControllerRequest(endpoint, data)
except Exception as e:
import traceback
with open('error.log', 'a') as f:
traceback.print_exc(file=f)
result = str(e)
status = 500
if status == 423:
self.queue_controller.put((endpoint, data))
else:
printLog(endpoint, {"send_data":result})
printResponse(status, endpoint, result)
time.sleep(0.1)
def startControllerHandler(self) -> None:
th_controller = Thread(target=self.controllerHandler)
@@ -369,6 +386,7 @@ if __name__ == "__main__":
main = Main()
main.startReceiver()
main.startConfigHandler()
main.startControllerHandler()
controller.init({
"download_ctranslate2": Action(action_mapping["/controller/callback_download_ctranslate2_weight"]).transmit,
@@ -376,23 +394,28 @@ if __name__ == "__main__":
"update_selected_device": Action(action_mapping["/controller/callback_enable_mic_automatic_selection"]).transmit,
})
# mappingのすべてのstatusをTrueにする
for key in config_mapping.keys():
config_mapping[key]["status"] = True
for key in controller_mapping.keys():
controller_mapping[key]["status"] = True
process = "main"
match process:
case "main":
main.startControllerHandler()
main.loop()
case "test":
for _ in range(100):
time.sleep(0.5)
endpoint = "/controller/list_mic_host"
result, status = handleControllerRequest(endpoint)
result, status = main.handleControllerRequest(endpoint)
printResponse(status, endpoint, result)
case "test_all":
import time
for endpoint, value in config_mapping.items():
result, status = handleConfigRequest(endpoint)
result, status = main.handleConfigRequest(endpoint)
printResponse(status, endpoint, result)
time.sleep(0.1)
@@ -507,6 +530,6 @@ if __name__ == "__main__":
case _:
data = None
result, status = handleControllerRequest(endpoint, data)
result, status = main.handleControllerRequest(endpoint, data)
printResponse(status, endpoint, result)
time.sleep(0.5)