61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
import json
|
|
|
|
|
|
class SettingsHandler:
|
|
def __init__(self, json_filename):
|
|
self.json_filename = json_filename
|
|
self.advanced_settings = self.load_current_settings()
|
|
|
|
def load_current_settings(self) -> dict:
|
|
with open(self.json_filename, "r") as file:
|
|
settings_dict = json.load(file)
|
|
|
|
advanced_settings = settings_dict["Advanced Settings"]
|
|
|
|
return advanced_settings
|
|
|
|
def update_advanced_settings(self, updated_advanced_settings: dict):
|
|
new_dict = {
|
|
"Advanced Settings": updated_advanced_settings
|
|
}
|
|
|
|
print(new_dict)
|
|
|
|
with open(self.json_filename, "w") as file:
|
|
json.dump(new_dict, file)
|
|
|
|
self.advanced_settings = updated_advanced_settings
|
|
|
|
def update_advanced_settings_param(self, key: str, new_val):
|
|
if self.get_advanced_setting_param(key) is not None:
|
|
update_advanced_settings_dict = self.advanced_settings
|
|
update_advanced_settings_dict[key] = new_val
|
|
self.update_advanced_settings(update_advanced_settings_dict)
|
|
|
|
def get_advanced_settings(self):
|
|
return self.advanced_settings
|
|
|
|
def get_advanced_setting_param(self, key: str):
|
|
return self.advanced_settings.get(key)
|
|
|
|
|
|
class LanguagesHandler:
|
|
def __init__(self, json_filename):
|
|
self.json_filename = json_filename
|
|
self.langs = self.load_languages()
|
|
|
|
def load_languages(self) -> list:
|
|
with open(self.json_filename, "r") as file:
|
|
langs = json.load(file)
|
|
|
|
if type(langs) != list:
|
|
raise RuntimeError("Languages must be provided as lists")
|
|
if len(langs) < 2:
|
|
raise RuntimeError("At least 2 languages must be supported")
|
|
|
|
return langs
|
|
|
|
def get_supported_languages(self):
|
|
return self.langs
|
|
|