Files

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)