mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-04-26 08:52:17 -04:00
This adds in rtorrent for https://github.com/calibrain/shelfmark/issues/420 The one weird thing I noticed is that the download path needs to be the same for both (that's not how I typically set it up) But it definitely adds to rtorrent and gives progress. **rTorrent client integration:** * Added a new `RTorrentClient` class in `shelfmark/release_sources/prowlarr/clients/rtorrent.py` that implements the download client interface for rTorrent using XML-RPC, supporting adding, removing, and querying torrent status. * Registered the rTorrent client in the client registry in `shelfmark/release_sources/prowlarr/clients/__init__.py`. **Settings and configuration:** * Extended the Prowlarr client settings UI and backend (`shelfmark/release_sources/prowlarr/settings.py`) to add rTorrent as a selectable client, provide rTorrent-specific configuration fields (URL, username, password, label, download directory), and implement a connection test action. [[1]](diffhunk://#diff-052272b85804cb61162870f262cc7544ef321596ff3ebf08117a6c25afaa3ec5R390) [[2]](diffhunk://#diff-052272b85804cb61162870f262cc7544ef321596ff3ebf08117a6c25afaa3ec5R539-R582) [[3]](diffhunk://#diff-052272b85804cb61162870f262cc7544ef321596ff3ebf08117a6c25afaa3ec5R198-R225) **Test environment and scripts:** * Updated `docker-compose.test-clients.yml` to add an rTorrent service for local testing, including configuration, ports, and documentation updates. [[1]](diffhunk://#diff-a9fe4200dec6a29947e21c338305d04c8b64a7bddd9b0e519f4ab5382c478ba6R17-L19) [[2]](diffhunk://#diff-a9fe4200dec6a29947e21c338305d04c8b64a7bddd9b0e519f4ab5382c478ba6R39) [[3]](diffhunk://#diff-a9fe4200dec6a29947e21c338305d04c8b64a7bddd9b0e519f4ab5382c478ba6R66) [[4]](diffhunk://#diff-a9fe4200dec6a29947e21c338305d04c8b64a7bddd9b0e519f4ab5382c478ba6R164-R181) * Enhanced `scripts/test_clients.py` to include rTorrent in the test suite, with logic for connecting, adding, and removing torrents via XML-RPC. [[1]](diffhunk://#diff-c7146552cddc9665e380aec1473363fd8592535ab85f06443478464da8f5a99eR26) [[2]](diffhunk://#diff-c7146552cddc9665e380aec1473363fd8592535ab85f06443478464da8f5a99eR57) [[3]](diffhunk://#diff-c7146552cddc9665e380aec1473363fd8592535ab85f06443478464da8f5a99eR88-R90) [[4]](diffhunk://#diff-c7146552cddc9665e380aec1473363fd8592535ab85f06443478464da8f5a99eR395-R468) [[5]](diffhunk://#diff-c7146552cddc9665e380aec1473363fd8592535ab85f06443478464da8f5a99eR492) Closes https://github.com/calibrain/shelfmark/issues/420