github Monkfish1337/Serioussportsync v0.95.0
SeriousSportSync v0.95.0

latest releases: v1.4.1, v1.4.0, v1.3.2...
one month ago

Here's the release body, ready to paste:

SeriousSportSync v0.95.0

Thirteen versions of work since v0.81.0. Discovery gained a new primary source, the searches sent to it were rebuilt around measurement rather than guesswork, eighteen promotions were added, and the interface was rewritten.

Discovery
Direct Bitmagnet is now a first-class discovery source, configured with one URL like Prowlarr or Zilean. Measured against the same 10.1M-row index on the same fixture: Bitmagnet returned 1,837 results in 65ms, where the Torznab endpoint in front of it returned 100 and Prowlarr 175, in 20 seconds. Info hashes arrive in the search response, so none of Prowlarr's /download hydration applies, and results are ordered by seeders server-side, so truncation cuts the tail rather than an arbitrary slice.
Enable toggles on Bitmagnet, direct Prowlarr and the companion. Comparing sources means switching them on and off repeatedly, and the only way to do that was to delete the URL and credentials and type them back in. Disabling a source also changes the discovery cache fingerprint, so a search cached while it was enabled is not served afterwards.
Sport-Video discovery through the site's own search index, matching event-first, narrowed to selected teams, with a match diagnostics export.
Releases matching no fixture from any feed now become events of their own instead of being discarded, under seven Discovered sport promotions.
The Prowlarr API key field had been cut from its own section. Restored.
Query shapes

Bitmagnet ANDs every term of a query: every word must appear in the release name, so each extra word is one more thing that has to be spelled identically. Measured against the live index and a real discovery log of 832 queries, the searches SSS was emitting were the wrong shape. MCI COV returned 2 results; Premier League MCI COV returned 0. Queries carrying both a league prefix and a date hit nothing at all across 169 attempts. The compact YYYYMMDD date that most football releases use was emitted zero times.

Fixed by emitting compact dates and bare three-letter code pairs, dropping the prefix-plus-date combination, and sending code pairs ahead of the 60-query-per-event cap that had been discarding them. The club alias table also turned out never to have been wired into the Premier League promotion, which is why the code form the EPL scene names its releases with had never once been searched for. A fixture that returned zero results before the change now returns four.

Sports

Eighteen new promotions, bringing the built-in total to 29:

Football: Premier League, EFL Championship, La Liga, Serie A, Bundesliga, Ligue 1, Eredivisie and Brasileirão, with club alias tables covering the naming forms releases actually use.
North American sport: NFL, NBA, WNBA and College Football on a no-key ESPN adapter, and MLB on the official schedule.
Discovered sports: Rugby, Football, Basketball, Baseball, American Football, Hockey and Other Sport.

Manchester United was removed; the Premier League promotion covers it.

Interface
A new design system across every page, replacing Tabler, which is now served from the addon rather than a CDN.
Configure rebuilt as a five-step flow: services, your teams, catalogs, collections, install. Nothing saves until the whole form saves, and a configured account can jump to any step.
A select-your-team wizard for Premier League, NFL, NBA and MLB.
Push to Nuvio writes collections straight into a Nuvio profile. Sign-in happens in the browser; the password never reaches the SSS server and the token is held only for the visit.
Eight admin skins, instance-wide, loading nothing remotely.
An Event Editor for correcting a source's date without changing the source. The override is reapplied after every refresh until removed.
Refresh several promotions at once.
Matching fixes
NFL fixtures no longer match every American-football release on their date.
Clubs no longer match inside one another's names, and filler club prefixes are stripped.
A nationality in an event name is no longer read as a language tag.
Competition-prefixed releases pull links correctly.
Easynews rows no longer vanish when Usenet Ultimate produces the same release title. Two pipelines offering the same file are different ways to play it, not duplicates.
Ten leagues' worth of club naming forms recognised, including a club's own name spelled out.
Reliability
The unit suite passes on Windows. The failure was a real handle leak, an un-awaited server.close() and an unclosed SQLite index, that Linux tolerated and CI therefore never saw.
Empty catalogs and meta misses are never cached.
ESPN windows chunked, TSDB retries bounded, the manifest revalidated.
Container resources bounded, route and deployment tests added, CI now installs dependencies and runs an audit.
Documentation

The README has been rewritten against the code. Six claims it made were not true, including AEW pre-show coverage, backup restore, a calendar import assistant, and a reviewable missing-event inbox. .env.example and the configuration reference no longer claim an API-Football key is needed for the Champions League promotion; that moved to UEFA's public feed.

All 363 unit tests pass.

Don't miss a new Serioussportsync release

NewReleases is sending notifications on new releases.