Matcher accuracy & coverage release.
Highlights
CALLSIGN (NETWORK)callsign anchoring — high-confidence matching of US OTA affiliates against feeds that name stationsKGTV (ABC)/WPLG-DT (CBS)(e.g. jesmann-US), gated on a known-callsign allowlist built from the loaded channel databases so callsign-shaped English words aren't promoted.- Sibling-channel guards — numbered, time-shift, and ordinal siblings (
Fox Sports 1/2,BBC One/Two,ITV2/ITV2 +1,HBO 1/2) no longer cross-match. - Corrected similarity scoring — the Levenshtein ratio now matches rapidfuzz's
1 − distance/max-length, eliminating inflated scores that let near-identical siblings slip past the threshold. Optionalrapidfuzzacceleration (20–50×) when the library is present; a corrected pure-Python fallback computes the identical score otherwise (no required runtime dependency). - Smarter normalization — number-word→digit (
BBC Three=BBC 3), CamelCase splitting (DangerTV=Danger TV), dotted-compound splitting (JusticeCentral.TV) with radio frequencies like97.2preserved; fixed aUSA Network→Networkover-strip; FAST streaming-platform source tags (Pluto/Tubi/Roku/Xumo/Plex…) stripped for matching. - Deterministic tie-break — equal-score results order by shared original-name token overlap.
- Norway (
NO) channel database added.
Install
Download EPG-Janitor.zip, then in Dispatcharr: Plugins → Import Plugin → upload the zip → enable. Hard-restart Dispatcharr (docker restart dispatcharr) after installing. See the README for full details and the upgrade steps.
Notes
- No required runtime dependencies (stdlib only); uses
rapidfuzzif present for faster matching. - 215 offline tests, ruff-clean, CI on Python 3.12 & 3.13.