Add torrent acquisition API client#18
Conversation
Eoic
left a comment
There was a problem hiding this comment.
Thanks for starting this integration. The server-mediated direction makes sense, but the current implementation is still a partial prototype. Before merging, please complete the opt-in lifecycle, integration management, torrent-only scope, search/submission UX, and Arr actions.
The feature should be disabled by default. A user can enable it under Profile → Storage, after which the management entry becomes visible. The route must enforce the setting and confirm that the active Papyrus server exposes the acquisition API; there is no hosted/self-hosted distinction.
For the initial torrent-only implementation, support torrent indexers, qBittorrent/Transmission/Deluge, and concrete Arr actions. Please remove Usenet-specific options.
Because the Papyrus server mediates these integrations, the backend contract must also validate endpoint URLs and store credentials securely.
Please resolve the authentication lifecycle and HTTP client ownership issues, add complete loading/error states, expand test coverage, and get formatting, analysis, and the full test suite passing in CI.
|
Addressed the requested lifecycle and scope cleanup in the client PR. What changed:
Server-side follow-up is in PapyrusReader/server#4: endpoint URL validation, encrypted credential storage, torrent-only capabilities, and Newznab rejection were added there. Validation run locally:
Could not run full Flutter analysis/tests locally because Flutter SDK is not installed in this environment. Could not run backend pytest fully because the local Postgres on 127.0.0.1:5432 refused connection. Both should be covered by CI once the PR branches run there. |
Summary
This adds a typed acquisition API layer and a new Torrent & automation settings screen for the new torrent and automation endpoints.
It can register supported integrations, search releases through configured indexers, submit magnet/torrent releases to a selected download client, and trigger native commands in Readarr and other Arr applications. The new screen is available from Profile → Storage → Torrent & automation.
Implementation notes
Validation
dart format.Flutter is not installed in this environment, so Flutter tests and full package analysis could not be run here.