Files
Comfy-Studio/comfy_studio/core/settings.py
T

46 lines
1.5 KiB
Python
Raw Normal View History

2026-07-02 14:09:57 +08:00
"""
Загрузка и сохранение пользовательских настроек (settings.json рядом с проектом).
"""
import json
import logging
from typing import Dict, Any
from comfy_studio.core.config import SETTINGS_PATH, DEFAULT_COMFYUI_URL
logger = logging.getLogger(__name__)
DEFAULT_SETTINGS: Dict[str, Any] = {
"comfyui_url": DEFAULT_COMFYUI_URL,
"tracked_paths": [],
"language": "ru", # "ru" | "en"
"thumbnail_size": 130,
"translate_languages": ["ru", "en"], # языки в контекстном меню перевода
}
def load_settings() -> Dict[str, Any]:
"""Загружает настройки, недостающие ключи добираются из DEFAULT_SETTINGS."""
if not SETTINGS_PATH.exists():
save_settings(DEFAULT_SETTINGS)
return dict(DEFAULT_SETTINGS)
try:
with open(SETTINGS_PATH, "r", encoding="utf-8") as f:
data = json.load(f)
for k, v in DEFAULT_SETTINGS.items():
data.setdefault(k, v)
return data
except Exception as e:
logger.error(f"Ошибка чтения настроек: {e}")
return dict(DEFAULT_SETTINGS)
def save_settings(settings: Dict[str, Any]) -> bool:
try:
with open(SETTINGS_PATH, "w", encoding="utf-8") as f:
json.dump(settings, f, indent=4, ensure_ascii=False)
return True
except Exception as e:
logger.error(f"Ошибка сохранения настроек: {e}")
return False