32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import os
|
|
from dataclasses import dataclass
|
|
from typing import List
|
|
|
|
@dataclass
|
|
class PathsConfig:
|
|
watch_paths: List[str]
|
|
extensions: List[str]
|
|
|
|
@staticmethod
|
|
def from_env() -> "PathsConfig":
|
|
# Paths kan legges inn som kommaseparert liste i miljøvariabel
|
|
raw_paths = os.environ.get("WATCH_PATHS")
|
|
paths = [p.strip() for p in raw_paths.split(",") if p.strip()]
|
|
|
|
# Extensions kan legges inn som kommaseparert liste
|
|
raw_ext = os.environ.get("WATCH_EXTENSIONS") or ".mkv,.mp4,.avi"
|
|
extensions = [e.strip() for e in raw_ext.split(",") if e.strip()]
|
|
|
|
return PathsConfig(watch_paths=paths, extensions=extensions)
|
|
|
|
def validate(self) -> None:
|
|
if not self.watch_paths:
|
|
raise ValueError("Ingen paths definert for overvåkning")
|
|
for path in self.watch_paths:
|
|
if not os.path.exists(path):
|
|
raise ValueError(f"Path finnes ikke: {path}")
|
|
if not os.path.isdir(path):
|
|
raise ValueError(f"Path er ikke en katalog: {path}")
|
|
if not self.extensions:
|
|
raise ValueError("Ingen filendelser definert for filtrering")
|