Type: Bugfix release — OTA (broadcast) callsign matching restored, and a data-loss guard for overwrite runs. Fixes bug-063 (user-reported: running Match & Assign against US: ABC/CBS/FOX/NBC left almost every channel with no streams).
Fixed
-
Overwrite no longer wipes streams on a zero-match run. In
add_streams_to_channels, a channel that matched 0 streams whileoverwrite_streams=Truepreviously had all its existingChannelStreamrows deleted and nothing assigned — so a run that matched nothing (wrong threshold, a database/callsign gap) silently emptied every channel. "Overwrite" now only replaces when there are actual replacement streams; an empty match set leaves existing streams untouched. -
OTA affiliates match by callsign again. OTA detection in
_match_streams_to_channeldepended solely on aUS_channels.jsondatabase lookup, but that database carries nobroadcast/callsignentries — so affiliates likeABC - AL Montgomery (WNCF)fell through to strict fuzzy name matching and matched nothing. New_resolve_ota_callsign()resolves the callsign from the FCC station table first, then falls back to a parenthesized callsign in the Dispatcharr channel name.
Added
-
FCC station table (
networks.json) is now loaded and used. Stream-Mapparr already shippednetworks.json(1915 US OTA stations: callsign → network / city / state) but never loaded it.FuzzyMatcher._load_broadcast_stations()now indexes it intochannel_lookupon every load, giving authoritative callsign validation._build_us_callsign_database(used byMatch US OTA Only) is repointed from the emptyUS_channels.jsontonetworks.json, reviving that action.networks.jsonis now part of the deploy file set. -
19 regression tests in
tests/test_ota_callsign_fallback.py.