Skip to content

v1.14.1 — Matching precision: bare-city keywords and cross-game stream attachment

Choose a tag to compare

@Jacob-Lasky Jacob-Lasky released this 30 Jul 02:00
31078ce

Fixes two composing defects that attached a different sport's dead feeds to a game channel (#162): an MLB New York Yankees at Chicago White Sox channel came back carrying dedicated NFL Giants and Jets feeds.

What was wrong

Bare-city keywords. New York Yankees expanded to include the bare New York, and the EPG title pre-filter admits a candidate on any ONE keyword, so every same-city franchise entered the pool (Giants, Jets, Knicks, Liberty, Mets) and the LLM/fallback tier picked from it. The sport prefix never guarded this: it only sizes the match time window.

Keywords are now split into strong (identify the team alone) and weak (bare place-name relaxations). Single-keyword admissions use strong only; the both-teams gates keep using everything, because requiring both sides is specific enough that a city-only feed name like Cincinnati vs. San Jose is a correct match. Simply dropping the city everywhere was tried first and broke a real match, which is why the split exists.

Two related leaks went with it: New York City FC re-emitted the bare city through its suffix-stripped form, and Red Bull New York reduced to York.

Whole-channel stream attachment. A matched channel donated every stream it carried with no name check, so one bad match delivered every feed bundled onto that channel. Streams are now gated per channel: only when some stream on the channel names one of this game's sides are the streams naming neither side dropped. A generic broadcaster channel (MLB Network HD / FHD) names no team anywhere, so nothing is dropped and its behaviour is unchanged. Drops are counted and reported in the apply summary rather than being silent.

Note on versions

This release also carries 1.13.0 and 1.14.0, which were never published to the plugin listing. 1.14.0 in particular is a security and correctness pass that stopped API keys reaching the logs (the Odds API key via a query param in requests exception text, and the TheSportsDB key via a URL path segment). See CHANGELOG.md for the full history.

Full changelog: https://github.com/Jacob-Lasky/dispatcharr_ranked_matchups/blob/main/CHANGELOG.md