soulsync/core/video/enrichment
BoulderBadgeDad 8e00670491 Video Calendar: 7-day week grid with air times + episode modal
A new isolated Calendar page (/api/video/calendar) — every upcoming episode for
your owned shows across a real 7-day week (today first), as art cards sorted by
air time with a per-cell breathing colour glow.

- Air times: enrich shows with TVDB airsTime (new shows.airs_time column +
  migration); cells show + sort by time, streaming (untimed/00:00) = "Anytime".
  One-time background backfill re-queues already-matched shows for the time.
- Click an episode → styled modal (show backdrop hero, episode still/synopsis,
  air date+time, owned badge, genres, "about the show"), with an explicit
  "Open full show page" action instead of navigating on click.
- Isolated: reads only video_library.db, writes nothing to the music side.
2026-06-15 18:28:02 -07:00
..
__init__.py video enrichment 1b: worker engine + TMDB/TVDB clients 2026-06-14 11:21:30 -07:00
cache.py video: real TTL+LRU cache (thread-safe) + cache search — the kettui way 2026-06-15 13:02:24 -07:00
clients.py Video Calendar: 7-day week grid with air times + episode modal 2026-06-15 18:28:02 -07:00
engine.py Video side: own server connection (Plex/Jellyfin), music-style picker, isolated 2026-06-15 16:42:22 -07:00
worker.py video: OMDb daily-limit cools down + auto-resumes (vs hard pause) 2026-06-15 09:34:47 -07:00