Major feature release plus a batch of matching-accuracy fixes ported from sibling plugin Lineuparr. Upgrade is recommended for all users — the new alias system and matching guards measurably improve both match recall and false-positive rejection.
✨ New features
🔍 Alias Stage 0 matching
A 200+ entry curated map of canonical channel names ↔ common variants ships in aliases.py. Hits run as an O(1) lookup before fuzzy stages — faster, more reviewable, and safer than fuzzy scoring on noisy provider strings.
Examples that previously missed and now hit at score 100:
FNC→Fox News ChannelCSPAN 2→C-SPAN2CA: RDS→Réseau des Sports (RDS) HDUK: Aljazeera English→Al Jazeera EnglishUS: NBC GOLF CHANNEL→Golf Channel
Users can extend with their own via FuzzyMatcher.set_user_aliases({canonical: [variants]}).
🎨 Per-channel logos from tv-logos repo
New Apply Per-Channel Logos action fuzzy-matches each channel name to the tv-logo/tv-logos GitHub repo and assigns individual artwork in bulk. Iterates across the country codes set in Channel Databases. Channels with an existing logo are skipped. Uses the GitHub Git Trees API so directories with >1000 logos (e.g. united-states) return complete results.
ⓘ Show Status action
A persistent progress file at /data/channel_mapparr_progress.json lets the new Show Status button report live progress, ETA, and the most recent completion summary — without watching container logs. Survives container restarts (a stale-run warning fires if updates stop for >2 minutes).
ℹ️ Help text on every setting
All 15 settings fields now carry a one-sentence explanation visible in the Dispatcharr settings panel.
🎯 Matching accuracy improvements
Each item has a curated regression test case in the dev test harness (46/46 baseline + 14/14 user-report cases passing).
- Callsign denylist (50 K/W-shaped English words: WITH, WATCH, WWE, KING, KIDS, WORLD, …) prevents extracting program-title words as US broadcast callsigns. No more
Bizarre Foods with Andrew Zimmern→ callsignWITH. - Callsign confidence flag — high-confidence (parenthesized/end-of-name) vs. low-confidence (loose mid-name). Loose matches no longer floor or hard-reject a fuzzy candidate.
- CamelCase + number-word + dot normalization —
JusticeCentral.TV→Justice Central TV,BBC Three↔BBC 3. - East/West parenthetical preservation —
Cartoon Network (W)→Cartoon Network Westso zoned variants survive normalization. - Multi-token country prefix —
CA FR: RDS,US ES:,UK FHD:now strip the whole prefix instead of leaving the first token stranded. - Smarter token-overlap guard —
network/channel/televisiondemoted to common; new subset, divergent, and numeric-sibling guards catch:BBC One≠BBC Two(sibling-number divergence)Sky Cinema Disney≠Sky Cinema Decades(distinctive-token divergence)ABC News≠BBC News(no shared distinctive token)In Country Television≠Country Music Television(subset with distinctive extra)
- Trailing-number anchor —
ESPN 1,HBO 2no longer match siblings likeESPN2orHBO 3. - Inside-loop guards — previously a high-scoring but guard-rejected candidate could suppress a lower-scoring valid one. Fixed in all three matching pipelines.
🐛 User-reported fixes folded in
- Canadian French sports (
CA: RDS,CA: RDS 1,CA FR: RDS HD,CA: TSN 5 RAW, etc.) — root cause was the parenthesized(RDS)in the canonical DB name being stripped during normalization. Fixed with 13 Canadian alias entries plus the multi-token country prefix fix. - CSV "Match Type: None" for unmatched rows — cosmetic only, now writes empty string for cleaner reports.
- Plugin loader rejected astral-plane emoji button labels (🎨 / 📊) — silently dropped the entire action. Swapped to BMP symbols (
❖,ⓘ). - Progress file unwritable — moved from plugin dir (owned by root) to
/data/(matching other Dispatcharr plugins' convention).
📦 Installation
- Download
Channel-Maparr.zipfrom this release. - In Dispatcharr, go to Plugins → Import Plugin, upload the zip.
- If upgrading from an older version, delete the old plugin first, then
docker restart dispatcharrbefore importing. - After install, run Validate Settings, then your usual flow.
📚 More info
- Full feature list and settings reference: README.md
- Workflow guide: https://piratesirc.github.io/Dispatcharr-Plugin-Workflow/workflow/02-channel-mapparr/
- Issues / discussion: Discord
🤖 Co-authored with Claude Code