Isolated enrichment subsystem mirroring the music worker pattern, on video.db.
- VideoEnrichmentWorker: daemon loop pulling enrichment_next -> client.match ->
enrichment_apply; pause/resume/stop; get_stats in the same shape the music
enrichment API returns (enabled/running/paused/idle/current_item/stats/
progress/breakdown). Client injected -> loop fully unit-tested with a fake.
- TMDB/TVDB clients (thin adapters, keys from video_settings): .enabled +
match(kind,title,year) -> {id, metadata}; validated live, worker logic tested.
- VideoEnrichmentEngine registry + lazy get_video_enrichment_engine() singleton.
8 tests (match/not_found/error-resilience/stats/disabled/engine/isolation).
7 lines
354 B
Python
7 lines
354 B
Python
"""SoulSync — isolated VIDEO enrichment subsystem.
|
|
|
|
Mirrors the music enrichment-worker pattern (per-source match status, a worker
|
|
loop, a registry) but operates entirely on video.db and never imports the music
|
|
enrichment code. The shared Manage-Workers modal / worker-orbs visuals are made
|
|
kind-aware separately; this package is the backend half.
|
|
"""
|