Merge branch 'config_optimize' into init_optimize

# Conflicts:
#	src-python/config.py
This commit is contained in:
misyaguziya
2024-10-27 18:45:50 +09:00

View File

@@ -3,7 +3,7 @@ import inspect
from os import path as os_path, makedirs as os_makedirs
from json import load as json_load
from json import dump as json_dump
import threading
from device_manager import device_manager
from models.transcription.transcription_languages import transcription_lang
from utils import isUniqueStrings
@@ -15,15 +15,11 @@ def json_serializable(var_name):
return func
return decorator
def saveJson(path, key, value):
with open(path, "r", encoding="utf-8") as fp:
json_data = json_load(fp)
json_data[key] = value
with open(path, "w", encoding="utf-8") as fp:
json_dump(json_data, fp, indent=4, ensure_ascii=False)
class Config:
_instance = None
config_data = {}
timer = None
debounce_time = 2
def __new__(cls):
if cls._instance is None:
@@ -32,6 +28,19 @@ class Config:
cls._instance.load_config()
return cls._instance
def saveConfigToFile(self):
with open(self.PATH_CONFIG, "w", encoding="utf-8") as fp:
json_dump(self.config_data, fp, indent=4, ensure_ascii=False)
def saveConfig(self, key, value):
self.config_data[key] = value
if isinstance(self.timer, threading.Timer) and self.timer.is_alive():
self.timer.cancel()
timer = threading.Timer(self.debounce_time, self.saveConfigToFile)
timer.daemon = True
timer.start()
# Read Only
@property
def VERSION(self):
@@ -224,7 +233,7 @@ class Config:
def SELECTED_TAB_NO(self, value):
if isinstance(value, str):
self._SELECTED_TAB_NO = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSLATION_ENGINES')
@@ -235,7 +244,7 @@ class Config:
def SELECTED_TRANSLATION_ENGINES(self, value):
if isinstance(value, dict):
self._SELECTED_TRANSLATION_ENGINES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_YOUR_LANGUAGES')
@@ -256,7 +265,7 @@ class Config:
self._SELECTED_YOUR_LANGUAGES = value
except Exception:
pass
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TARGET_LANGUAGES')
@@ -277,7 +286,7 @@ class Config:
self._SELECTED_TARGET_LANGUAGES = value
except Exception:
pass
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSCRIPTION_ENGINE')
@@ -288,7 +297,7 @@ class Config:
def SELECTED_TRANSCRIPTION_ENGINE(self, value):
if isinstance(value, str):
self._SELECTED_TRANSCRIPTION_ENGINE = value
# saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
# self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MULTI_LANGUAGE_TRANSLATION')
@@ -299,7 +308,7 @@ class Config:
def MULTI_LANGUAGE_TRANSLATION(self, value):
if isinstance(value, bool):
self._MULTI_LANGUAGE_TRANSLATION = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('CONVERT_MESSAGE_TO_ROMAJI')
@@ -310,7 +319,7 @@ class Config:
def CONVERT_MESSAGE_TO_ROMAJI(self, value):
if isinstance(value, bool):
self._CONVERT_MESSAGE_TO_ROMAJI = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('CONVERT_MESSAGE_TO_HIRAGANA')
@@ -321,7 +330,7 @@ class Config:
def CONVERT_MESSAGE_TO_HIRAGANA(self, value):
if isinstance(value, bool):
self._CONVERT_MESSAGE_TO_HIRAGANA = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MAIN_WINDOW_SIDEBAR_COMPACT_MODE')
@@ -332,7 +341,7 @@ class Config:
def MAIN_WINDOW_SIDEBAR_COMPACT_MODE(self, value):
if isinstance(value, bool):
self._MAIN_WINDOW_SIDEBAR_COMPACT_MODE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
## Config Window
@property
@@ -344,7 +353,7 @@ class Config:
def TRANSPARENCY(self, value):
if isinstance(value, int):
self._TRANSPARENCY = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('APPEARANCE_THEME')
@@ -355,7 +364,7 @@ class Config:
def APPEARANCE_THEME(self, value):
if value in self.APPEARANCE_THEME_LIST:
self._APPEARANCE_THEME = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('UI_SCALING')
@@ -366,7 +375,7 @@ class Config:
def UI_SCALING(self, value):
if isinstance(value, int):
self._UI_SCALING = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('TEXTBOX_UI_SCALING')
@@ -377,7 +386,7 @@ class Config:
def TEXTBOX_UI_SCALING(self, value):
if isinstance(value, int):
self._TEXTBOX_UI_SCALING = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MESSAGE_BOX_RATIO')
@@ -388,7 +397,7 @@ class Config:
def MESSAGE_BOX_RATIO(self, value):
if isinstance(value, (int, float)):
self._MESSAGE_BOX_RATIO = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('FONT_FAMILY')
@@ -399,7 +408,7 @@ class Config:
def FONT_FAMILY(self, value):
if isinstance(value, str):
self._FONT_FAMILY = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('UI_LANGUAGE')
@@ -410,7 +419,7 @@ class Config:
def UI_LANGUAGE(self, value):
if isinstance(value, str):
self._UI_LANGUAGE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('RESTORE_MAIN_WINDOW_GEOMETRY')
@@ -421,7 +430,7 @@ class Config:
def RESTORE_MAIN_WINDOW_GEOMETRY(self, value):
if isinstance(value, bool):
self._RESTORE_MAIN_WINDOW_GEOMETRY = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MAIN_WINDOW_GEOMETRY')
@@ -434,7 +443,7 @@ class Config:
for key, value in value.items():
if isinstance(value, int):
self._MAIN_WINDOW_GEOMETRY[key] = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, self.MAIN_WINDOW_GEOMETRY)
self.saveConfig(inspect.currentframe().f_code.co_name, self.MAIN_WINDOW_GEOMETRY)
@property
@json_serializable('AUTO_MIC_SELECT')
@@ -445,7 +454,7 @@ class Config:
def AUTO_MIC_SELECT(self, value):
if isinstance(value, bool):
self._AUTO_MIC_SELECT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_MIC_HOST')
@@ -456,7 +465,7 @@ class Config:
def SELECTED_MIC_HOST(self, value):
if value in [host for host in device_manager.getMicDevices().keys()]:
self._SELECTED_MIC_HOST = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_MIC_DEVICE')
@@ -467,7 +476,7 @@ class Config:
def SELECTED_MIC_DEVICE(self, value):
if value in [device["name"] for device in device_manager.getMicDevices()[self.SELECTED_MIC_HOST]]:
self._SELECTED_MIC_DEVICE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_THRESHOLD')
@@ -478,7 +487,7 @@ class Config:
def MIC_THRESHOLD(self, value):
if isinstance(value, int):
self._MIC_THRESHOLD = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_AUTOMATIC_THRESHOLD')
@@ -489,7 +498,7 @@ class Config:
def MIC_AUTOMATIC_THRESHOLD(self, value):
if isinstance(value, bool):
self._MIC_AUTOMATIC_THRESHOLD = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_RECORD_TIMEOUT')
@@ -500,7 +509,7 @@ class Config:
def MIC_RECORD_TIMEOUT(self, value):
if isinstance(value, int):
self._MIC_RECORD_TIMEOUT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_PHRASE_TIMEOUT')
@@ -511,7 +520,7 @@ class Config:
def MIC_PHRASE_TIMEOUT(self, value):
if isinstance(value, int):
self._MIC_PHRASE_TIMEOUT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_MAX_PHRASES')
@@ -522,7 +531,7 @@ class Config:
def MIC_MAX_PHRASES(self, value):
if isinstance(value, int):
self._MIC_MAX_PHRASES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_WORD_FILTER')
@@ -533,7 +542,7 @@ class Config:
def MIC_WORD_FILTER(self, value):
if isinstance(value, list):
self._MIC_WORD_FILTER = sorted(set(value), key=value.index)
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_AVG_LOGPROB')
@@ -544,7 +553,7 @@ class Config:
def MIC_AVG_LOGPROB(self, value):
if isinstance(value, (int, float)):
self._MIC_AVG_LOGPROB = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MIC_NO_SPEECH_PROB')
@@ -555,7 +564,7 @@ class Config:
def MIC_NO_SPEECH_PROB(self, value):
if isinstance(value, (int, float)):
self._MIC_NO_SPEECH_PROB = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('AUTO_SPEAKER_SELECT')
@@ -566,7 +575,7 @@ class Config:
def AUTO_SPEAKER_SELECT(self, value):
if isinstance(value, bool):
self._AUTO_SPEAKER_SELECT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_SPEAKER_DEVICE')
@@ -577,7 +586,7 @@ class Config:
def SELECTED_SPEAKER_DEVICE(self, value):
if value in [device["name"] for device in device_manager.getSpeakerDevices()]:
self._SELECTED_SPEAKER_DEVICE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_THRESHOLD')
@@ -588,7 +597,7 @@ class Config:
def SPEAKER_THRESHOLD(self, value):
if isinstance(value, int):
self._SPEAKER_THRESHOLD = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_AUTOMATIC_THRESHOLD')
@@ -599,7 +608,7 @@ class Config:
def SPEAKER_AUTOMATIC_THRESHOLD(self, value):
if isinstance(value, bool):
self._SPEAKER_AUTOMATIC_THRESHOLD = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_RECORD_TIMEOUT')
@@ -610,7 +619,7 @@ class Config:
def SPEAKER_RECORD_TIMEOUT(self, value):
if isinstance(value, int):
self._SPEAKER_RECORD_TIMEOUT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_PHRASE_TIMEOUT')
@@ -621,7 +630,7 @@ class Config:
def SPEAKER_PHRASE_TIMEOUT(self, value):
if isinstance(value, int):
self._SPEAKER_PHRASE_TIMEOUT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_MAX_PHRASES')
@@ -632,7 +641,7 @@ class Config:
def SPEAKER_MAX_PHRASES(self, value):
if isinstance(value, int):
self._SPEAKER_MAX_PHRASES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_AVG_LOGPROB')
@@ -643,7 +652,7 @@ class Config:
def SPEAKER_AVG_LOGPROB(self, value):
if isinstance(value, (int, float)):
self._SPEAKER_AVG_LOGPROB = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SPEAKER_NO_SPEECH_PROB')
@@ -654,7 +663,7 @@ class Config:
def SPEAKER_NO_SPEECH_PROB(self, value):
if isinstance(value, (int, float)):
self._SPEAKER_NO_SPEECH_PROB = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('OSC_IP_ADDRESS')
@@ -665,7 +674,7 @@ class Config:
def OSC_IP_ADDRESS(self, value):
if isinstance(value, str):
self._OSC_IP_ADDRESS = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('OSC_PORT')
@@ -676,7 +685,7 @@ class Config:
def OSC_PORT(self, value):
if isinstance(value, int):
self._OSC_PORT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('AUTH_KEYS')
@@ -689,7 +698,7 @@ class Config:
for key, value in value.items():
if isinstance(value, str):
self._AUTH_KEYS[key] = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, self.AUTH_KEYS)
self.saveConfig(inspect.currentframe().f_code.co_name, self.AUTH_KEYS)
@property
@json_serializable('USE_EXCLUDE_WORDS')
@@ -700,7 +709,7 @@ class Config:
def USE_EXCLUDE_WORDS(self, value):
if isinstance(value, bool):
self._USE_EXCLUDE_WORDS = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('USE_TRANSLATION_FEATURE')
@@ -711,7 +720,7 @@ class Config:
def USE_TRANSLATION_FEATURE(self, value):
if isinstance(value, bool):
self._USE_TRANSLATION_FEATURE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('USE_WHISPER_FEATURE')
@@ -722,7 +731,7 @@ class Config:
def USE_WHISPER_FEATURE(self, value):
if isinstance(value, bool):
self._USE_WHISPER_FEATURE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSLATION_COMPUTE_DEVICE')
@@ -733,7 +742,7 @@ class Config:
def SELECTED_TRANSLATION_COMPUTE_DEVICE(self, value):
if isinstance(value, dict):
self._SELECTED_TRANSLATION_COMPUTE_DEVICE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSCRIPTION_COMPUTE_DEVICE')
@@ -744,7 +753,7 @@ class Config:
def SELECTED_TRANSCRIPTION_COMPUTE_DEVICE(self, value):
if isinstance(value, dict):
self._SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('CTRANSLATE2_WEIGHT_TYPE')
@@ -756,7 +765,7 @@ class Config:
# if isinstance(value, str) and value in self.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST:
if isinstance(value, str):
self._CTRANSLATE2_WEIGHT_TYPE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('WHISPER_WEIGHT_TYPE')
@@ -767,7 +776,7 @@ class Config:
def WHISPER_WEIGHT_TYPE(self, value):
if isinstance(value, str):
self._WHISPER_WEIGHT_TYPE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('AUTO_CLEAR_MESSAGE_BOX')
@@ -778,7 +787,7 @@ class Config:
def AUTO_CLEAR_MESSAGE_BOX(self, value):
if isinstance(value, bool):
self._AUTO_CLEAR_MESSAGE_BOX = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_ONLY_TRANSLATED_MESSAGES')
@@ -789,7 +798,7 @@ class Config:
def SEND_ONLY_TRANSLATED_MESSAGES(self, value):
if isinstance(value, bool):
self._SEND_ONLY_TRANSLATED_MESSAGES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_MESSAGE_BUTTON_TYPE')
@@ -800,7 +809,7 @@ class Config:
def SEND_MESSAGE_BUTTON_TYPE(self, value):
if isinstance(value, str):
self._SEND_MESSAGE_BUTTON_TYPE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('OVERLAY_SETTINGS')
@@ -813,7 +822,7 @@ class Config:
for key, value in value.items():
if isinstance(value, (int, float)):
self._OVERLAY_SETTINGS[key] = float(value)
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, self.OVERLAY_SETTINGS)
self.saveConfig(inspect.currentframe().f_code.co_name, self.OVERLAY_SETTINGS)
@property
@json_serializable('OVERLAY_SMALL_LOG')
@@ -824,7 +833,7 @@ class Config:
def OVERLAY_SMALL_LOG(self, value):
if isinstance(value, bool):
self._OVERLAY_SMALL_LOG = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('OVERLAY_SMALL_LOG_SETTINGS')
@@ -842,7 +851,7 @@ class Config:
case "display_duration" | "fadeout_duration":
if isinstance(value, int):
self._OVERLAY_SMALL_LOG_SETTINGS[key] = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, self.OVERLAY_SMALL_LOG_SETTINGS)
self.saveConfig(inspect.currentframe().f_code.co_name, self.OVERLAY_SMALL_LOG_SETTINGS)
@property
@json_serializable('OVERLAY_UI_TYPE')
@@ -853,7 +862,7 @@ class Config:
def OVERLAY_UI_TYPE(self, value):
if isinstance(value, str):
self._OVERLAY_UI_TYPE = value
# saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
# self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_MESSAGE_TO_VRC')
@@ -864,7 +873,7 @@ class Config:
def SEND_MESSAGE_TO_VRC(self, value):
if isinstance(value, bool):
self._SEND_MESSAGE_TO_VRC = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_MESSAGE_FORMAT')
@@ -877,7 +886,7 @@ class Config:
if isUniqueStrings(["[message]"], value) is False:
value = "[message]"
self._SEND_MESSAGE_FORMAT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_MESSAGE_FORMAT_WITH_T')
@@ -890,7 +899,7 @@ class Config:
if isUniqueStrings(["[message]", "[translation]"], value) is False:
value = "[message]([translation])"
self._SEND_MESSAGE_FORMAT_WITH_T = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('RECEIVED_MESSAGE_FORMAT')
@@ -903,7 +912,7 @@ class Config:
if isUniqueStrings(["[message]"], value) is False:
value = "[message]"
self._RECEIVED_MESSAGE_FORMAT = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('RECEIVED_MESSAGE_FORMAT_WITH_T')
@@ -916,7 +925,7 @@ class Config:
if isUniqueStrings(["[message]", "[translation]"], value) is False:
value = "[message]([translation])"
self._RECEIVED_MESSAGE_FORMAT_WITH_T = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_RECEIVED_MESSAGE_TO_VRC')
@@ -927,7 +936,7 @@ class Config:
def SEND_RECEIVED_MESSAGE_TO_VRC(self, value):
if isinstance(value, bool):
self._SEND_RECEIVED_MESSAGE_TO_VRC = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('LOGGER_FEATURE')
@@ -938,7 +947,7 @@ class Config:
def LOGGER_FEATURE(self, value):
if isinstance(value, bool):
self._LOGGER_FEATURE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('VRC_MIC_MUTE_SYNC')
@@ -949,7 +958,7 @@ class Config:
def VRC_MIC_MUTE_SYNC(self, value):
if isinstance(value, bool):
self._VRC_MIC_MUTE_SYNC = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
self.saveConfig(inspect.currentframe().f_code.co_name, value)
def init_config(self):
# Read Only
@@ -1161,15 +1170,16 @@ class Config:
def load_config(self):
if os_path.isfile(self.PATH_CONFIG) is not False:
with open(self.PATH_CONFIG, 'r', encoding="utf-8") as fp:
config = json_load(fp)
if fp.readable() and fp.seek(0, 2) > 0:
fp.seek(0)
self.config_data = json_load(fp)
for key in config.keys():
setattr(self, key, config[key])
for key, value in self.config_data.items():
setattr(self, key, value)
with open(self.PATH_CONFIG, 'w', encoding="utf-8") as fp:
config = {}
for var_name, var_func in json_serializable_vars.items():
config[var_name] = var_func(self)
json_dump(config, fp, indent=4, ensure_ascii=False)
self.config_data[var_name] = var_func(self)
json_dump(self.config_data, fp, indent=4, ensure_ascii=False)
config = Config()