"""全局系统配置存储(sqlite settings 表,覆盖所有平台)。""" import sqlite3 from pathlib import Path from conf import BASE_DIR _DB_PATH = Path(BASE_DIR / "db" / "database.db") def _ensure_table(conn): conn.execute("CREATE TABLE IF NOT EXISTS settings (key TEXT PRIMARY KEY, value TEXT)") def get_setting(key: str, default=None): try: with sqlite3.connect(_DB_PATH) as conn: _ensure_table(conn) cur = conn.cursor() cur.execute("SELECT value FROM settings WHERE key = ?", (key,)) row = cur.fetchone() return row[0] if row else default except Exception: return default def get_bool(key: str, default: bool = False) -> bool: val = get_setting(key, None) if val is None: return default return str(val).lower() in ("1", "true", "yes", "on") def set_setting(key: str, value) -> None: with sqlite3.connect(_DB_PATH) as conn: _ensure_table(conn) conn.execute("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)", (key, str(value))) conn.commit()