Repository navigation
[NEEDS CODE REVIEWER] feat: Add Sportarr support - #377
Conversation
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.
|
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 |
|
@Sportarr 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. |
|
Abdolutely awesome and thank you for the kind and encouraging words ! Your invite is on its way 🚀 |
lolimmlost
left a comment
There was a problem hiding this comment.
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.
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.