soulsync/core/video/enrichment
BoulderBadgeDad aff4ecccc6 video enrichment: background episode-sync pass (full lists for the whole library)
So library cards show real owned/total (e.g. 8/10) WITHOUT opening each show. When
the TMDB worker's match queue is clear, it pulls the full season/episode list for
one already-matched-but-unsynced show per loop (episode_sync_next), inserting
missing episodes + marking it synced. Over time every library show gets its full
list; the on-view lazy refresh still makes the one you open instant. TMDB-only;
counts toward the worker's pending so it shows busy (not 'Complete') while syncing,
and never loops on a single failing show.

Seam tests: episode_sync_next selection + pending count, worker syncs a pre-feature
matched show to the full list.
2026-06-14 22:39:55 -07:00
..
__init__.py video enrichment 1b: worker engine + TMDB/TVDB clients 2026-06-14 11:21:30 -07:00
clients.py video: show the FULL episode list (owned + missing), Sonarr-style 2026-06-14 22:02:58 -07:00
engine.py video: show the FULL episode list (owned + missing), Sonarr-style 2026-06-14 22:02:58 -07:00
worker.py video enrichment: background episode-sync pass (full lists for the whole library) 2026-06-14 22:39:55 -07:00