Files
KotoPad/modules/config/settings.py

44 lines
1.0 KiB
Python

from modules.config.model import ConfigModel
import json
import os
class Config:
@staticmethod
def default():
return {
"theme": "Dark gray",
"volume": 100
}
@staticmethod
def fix() -> None:
try:
with open("data/config.cfg", "w") as file:
json.dump(Config.default(), file)
except FileNotFoundError:
if not os.path.exists('data'):
os.mkdir('data')
Config.fix()
@staticmethod
def get() -> ConfigModel:
try:
with open("data/config.cfg", "r") as file:
return ConfigModel.from_dict(json.load(file))
except:
Config.fix()
return Config.get()
@staticmethod
def update(key: str, value: str | None) -> dict:
with open("data/config.cfg", "r") as file:
settings = json.load(file)
settings[key] = value
with open("data/config.cfg", "w") as file:
json.dump(settings, file)
return settings