import tomllib from pydantic import BaseModel from .dav_common import dav_get_textfile_content from .settings import SETTINGS class User(BaseModel): name: str password: str class Server(BaseModel): # Dateiname Schriftart font: str # Monat, während dem der Kalender läuft # TODO penner month: int = 12 # Alle Türen bleiben noch so viele Monate offen # TODO penner keep_open: int = 3 class Puzzle(BaseModel): # Lösungswort solution: str # Länge des Kalenders # TODO penner days: int = 24 # Kalenderdefinition calendar: str = "default.toml" # Serverseitiger zusätzlicher "random" seed random_pepper: str = "" class Config(BaseModel): admin: User server: Server puzzle: Puzzle async def get_config() -> Config: txt = await dav_get_textfile_content(path=SETTINGS.config_filename) return Config.model_validate(tomllib.loads(txt))