soulsync/core/video
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
..
enrichment Video Calendar: 7-day week grid with air times + episode modal 2026-06-15 18:28:02 -07:00
__init__.py video side: library scanner (server = source of truth) + scan API 2026-06-13 23:13:50 -07:00
scanner.py video: pause enrichment workers during library scans, resume after 2026-06-14 13:55:59 -07:00
sources.py Video side: own server connection (Plex/Jellyfin), music-style picker, isolated 2026-06-15 16:42:22 -07:00