42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
import json
|
|
import os
|
|
from config import SETTINGS_FILE
|
|
from services import ai_client, auth
|
|
from utils import context
|
|
|
|
_loading = False
|
|
|
|
|
|
def load():
|
|
global _loading
|
|
if not os.path.exists(SETTINGS_FILE):
|
|
save()
|
|
return
|
|
|
|
_loading = True
|
|
try:
|
|
with open(SETTINGS_FILE, "r", encoding="utf-8") as f:
|
|
data = json.load(f)
|
|
if isinstance(data, dict):
|
|
ai_client.import_provider_settings(data.get("ai", {}))
|
|
context.import_settings(data.get("context", {}))
|
|
auth.set_public(bool(data.get("public_mode", False)))
|
|
finally:
|
|
_loading = False
|
|
|
|
|
|
def save():
|
|
if _loading:
|
|
return
|
|
|
|
data = {
|
|
"ai": ai_client.export_provider_settings(),
|
|
"public_mode": auth.is_public(),
|
|
"context": context.export_settings(),
|
|
}
|
|
tmp = f"{SETTINGS_FILE}.tmp"
|
|
with open(tmp, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=2)
|
|
f.write("\n")
|
|
os.replace(tmp, SETTINGS_FILE)
|