soulsync/core/video
BoulderBadgeDad 061079f0f6 video scan: don't crash on episodes with no episode number
Plex specials/unmatched episodes can have a null index -> getattr(...,0) still
returned None -> 'NOT NULL constraint failed: episodes.episode_number'.
- Plex adapter skips episodes with no index (logged), passes a real number.
- upsert_show_tree defensively skips any episode missing season/episode number,
  so no source can crash a scan. Test added.
2026-06-14 00:13:08 -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 scan: three modes (full refresh / incremental / deep) 2026-06-13 23:28:57 -07:00
sources.py video scan: don't crash on episodes with no episode number 2026-06-14 00:13:08 -07:00