github PiratesIRC/Dispatcharr-Channel-Maparr-Plugin 1.26.1430910
v1.26.1430910 — Alias matching, per-channel logos, Show Status

6 hours ago

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:

  • FNCFox News Channel
  • CSPAN 2C-SPAN2
  • CA: RDSRéseau des Sports (RDS) HD
  • UK: Aljazeera EnglishAl Jazeera English
  • US: NBC GOLF CHANNELGolf 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 → callsign WITH.
  • 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 normalizationJusticeCentral.TVJustice Central TV, BBC ThreeBBC 3.
  • East/West parenthetical preservationCartoon Network (W)Cartoon Network West so zoned variants survive normalization.
  • Multi-token country prefixCA FR: RDS, US ES:, UK FHD: now strip the whole prefix instead of leaving the first token stranded.
  • Smarter token-overlap guardnetwork/channel/television demoted to common; new subset, divergent, and numeric-sibling guards catch:
    • BBC OneBBC Two (sibling-number divergence)
    • Sky Cinema DisneySky Cinema Decades (distinctive-token divergence)
    • ABC NewsBBC News (no shared distinctive token)
    • In Country TelevisionCountry Music Television (subset with distinctive extra)
  • Trailing-number anchorESPN 1, HBO 2 no longer match siblings like ESPN2 or HBO 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

  1. Download Channel-Maparr.zip from this release.
  2. In Dispatcharr, go to Plugins → Import Plugin, upload the zip.
  3. If upgrading from an older version, delete the old plugin first, then docker restart dispatcharr before importing.
  4. After install, run Validate Settings, then your usual flow.

📚 More info


🤖 Co-authored with Claude Code

Don't miss a new Dispatcharr-Channel-Maparr-Plugin release

NewReleases is sending notifications on new releases.