55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
import json
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from scripts.lib.lobe_log import LobeLog
|
|
|
|
EXTENSION_FOLDER = Path(__file__).parent.parent.parent
|
|
CONFIG_FILENAME = Path(EXTENSION_FOLDER, "lobe_theme_config.json")
|
|
|
|
|
|
LobeLog.debug(f"EXTENSION_FOLDER: {EXTENSION_FOLDER}")
|
|
LobeLog.debug(f"CONFIG_FILENAME: {CONFIG_FILENAME}")
|
|
|
|
|
|
class LobeConfig:
|
|
def __init__(self):
|
|
self.config_file = CONFIG_FILENAME
|
|
self.config = None
|
|
self.load_config()
|
|
|
|
def load_config(self):
|
|
if os.path.exists(self.config_file):
|
|
LobeLog.debug(f"Loading config from {self.config_file}")
|
|
|
|
with open(self.config_file, 'r') as f:
|
|
self.config = json.load(f)
|
|
else:
|
|
LobeLog.debug(f"Config file not found")
|
|
self.config = LobeConfig.default()
|
|
|
|
def is_empty(self):
|
|
return "empty" in self.config and self.config['empty']
|
|
|
|
def json(self):
|
|
return json.dumps(self.config)
|
|
|
|
def delete(self):
|
|
if os.path.exists(self.config_file):
|
|
os.remove(self.config_file)
|
|
self.config = LobeConfig.default()
|
|
return True
|
|
|
|
return False
|
|
|
|
def save(self, settings):
|
|
self.config = settings
|
|
with open(self.config_file, 'w') as f:
|
|
f.write(json.dumps(self.config, indent=2))
|
|
f.close()
|
|
|
|
@staticmethod
|
|
def default():
|
|
# default config is handled from client side @see src/store/index.tsx
|
|
return {'empty': True}
|