add Deluge Web UI integration for publisher

Deluge uses a JSON-RPC HTTP API exposed by the Web UI plugin (port 8112),
not the daemon binary protocol (port 58846). The integration logs in,
fetches completed torrents, filters by configured labels, and enqueues
them the same way as the qBittorrent poller.

- DelugeConfig in config.rs (enabled, url, password, poll_interval_secs, labels)
- src/publisher/deluge.rs: DelugeClient with login/_session_id cookie
  handling, core.get_torrents_status, label + is_finished filtering
- Watcher: deluge_poll_loop alongside qb_poll_loop; each only starts
  if its respective client is configured/enabled
- Example config updated with deluge section and Web UI port note
This commit is contained in:
2026-05-19 20:13:14 -07:00
parent bad4cdef77
commit c6b9b676a4
5 changed files with 257 additions and 16 deletions
+10 -1
View File
@@ -84,4 +84,13 @@ publisher:
password: "${QBIT_PASSWORD}"
poll_interval_secs: 60
categories:
- "publish-nostr" # only publish torrents with this category label
- "publish-nostr" # only publish torrents with this qBittorrent category
# Deluge Web UI integration (enable the Web UI plugin in Deluge preferences)
deluge:
enabled: false
url: "http://127.0.0.1:8112" # Web UI port (not the daemon port 58846)
password: "${DELUGE_WEB_PASSWORD}"
poll_interval_secs: 60
labels:
- "publish-nostr" # Deluge Label plugin label to watch