diff options
Diffstat (limited to 'src/server/settings.py')
| -rw-r--r-- | src/server/settings.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/server/settings.py b/src/server/settings.py new file mode 100644 index 0000000..ce76e82 --- /dev/null +++ b/src/server/settings.py @@ -0,0 +1,32 @@ +from dataclasses import dataclass, asdict, field +import json + + +@dataclass +class Config: + # Immich server + immich_url: str = "" + immich_api_key: str = "" + # Display + image_duration: float = 10.0 + transition_duration: float = 0.5 + max_framerate: float = 30.0 + auto_transition: bool = True + display_size: str = "preview" # 'fullsize', 'preview', 'thumbnail' + # Cache + max_cache_assets: int = 100 + # Albums data + album_list: list[str] = field(default_factory=list) + + @classmethod + def load(cls, filepath): + with open(filepath, "r") as fp: + return cls(**json.load(fp)) + + def save(self, filepath): + with open(filepath, "w") as fp: + json.dump(asdict(self), fp, indent=2) + + def update(self, **config): + for key, value in config.items(): + setattr(self, key, value) |
