Refactor trigger_rescan to use anime_service

- Use anime_service.rescan() instead of direct trigger_rescan import
- Change Optional[Any] to Optional[Dict[str, Any]] in ConfigUpdate for better type hints
- Add ValidationError handling in ConfigUpdate.apply_to
- Update tests to match new implementation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-06-27 15:46:22 +02:00
parent ad2320dbbb
commit 4687a06374
8 changed files with 2244 additions and 463 deletions

View File

@@ -246,12 +246,12 @@ class AppConfig(BaseModel):
class ConfigUpdate(BaseModel):
name: Optional[str] = None
data_dir: Optional[str] = None
scheduler: Optional[Any] = None
logging: Optional[Any] = None
backup: Optional[Any] = None
nfo: Optional[Any] = None
scheduler: Optional[Dict[str, Any]] = None
logging: Optional[Dict[str, Any]] = None
backup: Optional[Dict[str, Any]] = None
nfo: Optional[Dict[str, Any]] = None
scan_key_overrides: Optional[Dict[str, str]] = None
other: Optional[Any] = None
other: Optional[Dict[str, Any]] = None
def apply_to(self, current: AppConfig) -> AppConfig:
"""Return a new AppConfig with updates applied to the current config.
@@ -271,7 +271,10 @@ class ConfigUpdate(BaseModel):
except json.JSONDecodeError:
scheduler_data = ast.literal_eval(scheduler_data)
if isinstance(scheduler_data, dict):
scheduler_data = SchedulerConfig(**scheduler_data)
try:
scheduler_data = SchedulerConfig(**scheduler_data)
except ValidationError:
raise
data["scheduler"] = scheduler_data.model_dump()
if self.logging is not None:
logging_data = self.logging