github PiratesIRC/Dispatcharr-Channel-Maparr-Plugin 1.26.1001200
v1.26.1001200

13 hours ago

Major Performance & Reliability Release

M3U import matching reduced from 32 hours to 6 seconds (19K streams vs 31K channels).

Performance

  • Token-based candidate pre-filter — Inverted index reduces fuzzy match candidates from 31K to ~50-200. Applied to all matching code paths. 19,200x speedup on M3U import.
  • rapidfuzz integration — Conditional import: rapidfuzz (10-100x faster) → thefuzz → built-in Levenshtein.
  • Early termination in Levenshteinmin_ratio parameter with length pre-check and row-level abort. Dynamic cutoff raises as better scores are found.
  • Django query optimizations.only() on stream fetches, stream prefetching before import loop, removed unnecessary select_related.
  • Normalization caching — Pre-computed normalizations for all names in a single pass.

Reliability

  • Atomic CSV writestempfile + os.replace() prevents corrupt partial writes. Orphan temp files cleaned up on exception.
  • Background threading for Organize by Category — Prevents uwsgi worker timeout on long-running operations.
  • Prefetch safety — Graceful handling of streams deleted between prefetch and import.

New Features

  • Match sensitivity presets — Relaxed (70), Normal (80), Strict (90), Exact (95) dropdown.
  • Dynamic M3U source dropdown — Populated from database instead of manual text input.
  • ProgressTracker — WebSocket updates with percentage and ETA for long operations.
  • SmartRateLimiter — Configurable delay between DB writes (None/Low/Medium/High).
  • match_all_streams() method — Returns all matches above threshold sorted by score.
  • PluginConfig class — Centralized configuration constants.
  • Stop/cancel support — Background operations can be cancelled via the UI.

Cleanup

  • Removed legacy files (channels.json, channels.txt, networks.json).
  • Updated README with current features, settings, performance docs, and troubleshooting.

Upgrading from 0.7.0a

This is a major upgrade. Remove the old plugin, restart Dispatcharr, and install the new zip. All settings will need to be reconfigured.

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

NewReleases is sending notifications on new releases.