Skip to content

[NEEDS CODE REVIEWER] feat: Add Sportarr support - #377

Merged
lolimmlost merged 3 commits into
ManiMatter:devfrom
Sportarr:sportarr-support
Sep 26, 2026
Merged

lolimmlost merged 3 commits into
ManiMatter:devfrom
Sportarr:sportarr-support

Conversation

@Sportarr

@Sportarr Sportarr commented Aug 5, 2026 •

Copy link
Copy Markdown
Collaborator

Adds Sportarr, a sports event
manager with a Sonarr-v3-compatible API, as a supported instance type.
It mirrors the sonarr constants and joins sonarr in the per-type
conditionals (instances, refresh, deletion watchers, search logging,
startup rejoin), plus README/config-example blocks.

I maintain Sportarr; its API serves the endpoints decluttarr drives:
queue listing and DELETE queue with removal/blocklist semantics
(added in Sportarr for this integration), refresh and search commands.

Tested: full pytest suite passes (292); ruff clean on touched files
(pre-existing findings untouched); verified live against a real Sportarr instance with a genuinely stalled torrent in qBittorrent: the instance check identifies Sportarr, remove_stalled struck and removed the item, the queue row was deleted, the release was blocklisted, and the torrent was removed from the client. Requires Sportarr v4.1.0 or newer.

Adds Sportarr (https://github.com/Sportarr/Sportarr), a sports event
manager exposing a Sonarr-v3-compatible API, as a supported instance
type. It rides the sonarr-shaped constants (api/v3, series/episode
keys, EpisodeSearch/RefreshSeries commands, includeUnknownSeriesItems)
and joins sonarr in every per-type conditional: instance loading,
refresh plumbing, deletion watchers, search logging, and startup
rejoin. README and config example gain SPORTARR/sportarr blocks.
Full test suite passes (292) and ruff reports no new findings on the
touched files.
@ManiMatter ManiMatter changed the title Add Sportarr support [NEEDS CODE REVIEWER] feat: Add Sportarr support Aug 5, 2026
@ManiMatter

Copy link
Copy Markdown
Owner

I love that you add support for another arr. unfo I have 0 time to code review. If anyone has time to review, highly appreciated and fully supportive for this PR

@ManiMatter

Copy link
Copy Markdown
Owner

@Sportarr
There are a few PRs that all suffer the same problem, namely that we don‘t have enough folks who can do code review.

I would love to win you as a collaborator on this project, hoping that will help drive some of the other issues to closure? Would you be interested?

@Sportarr

Sportarr commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator Author

@Sportarr There are a few PRs that all suffer the same problem, namely that we don‘t have enough folks who can do code review.

I would love to win you as a collaborator on this project, hoping that will help drive some of the other issues to closure? Would you be interested?

I appreciate your honesty and your ability to ask for help. It takes a lot of courage to admit when one is stretched thin. I struggle with it myself. Life happens, whether we like it or not. I would love to provide some support to you and your users. Though Sportarr development will always come first, I normally don't have many issues open at a time, so when I see a lull window, I will gladly give some attention to yours.

@ManiMatter

Copy link
Copy Markdown
Owner

Abdolutely awesome and thank you for the kind and encouraging words ! Your invite is on its way 🚀

@lolimmlost lolimmlost left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed and tested locally. LGTM.

I checked every Sonarr-specific branch on dev (deletion watcher, search logging, refresh keys, startup rejoin, config-as-yaml, env var instance list), and Sportarr is covered in all of them. Instance loading is generic over the config keys, so nothing else is needed. The identity check keyed on sportarrVersion is a nice touch that keeps the appName: "Sonarr" shim working for other consumers. I also confirmed in the Sportarr source that version reports Sportarr's own version, so the min-version check compares the right thing.

Full suite passes on top of current dev (293), and it merges cleanly with #382 and #383.

Nit (non-blocking, can be a follow-up): MinVersions.sportarr is 4.0.0.0, but sportarrVersion was only added in v4.1.0.1110 (it is not present in v4.0.1025.1105). So 4.0.x is still rejected, but with a "wrong arr type" error instead of a "version too old" one. Bumping the minimum to 4.1.0.0 would make that error point users at the actual fix.

@lolimmlost
lolimmlost merged commit ac1b0c1 into ManiMatter:dev Sep 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants