feat(deluge): optional Deluge tab — full torrent management via deluge-web JSON-RPC#76
Open
ndandan wants to merge 10 commits into
Open
feat(deluge): optional Deluge tab — full torrent management via deluge-web JSON-RPC#76ndandan wants to merge 10 commits into
ndandan wants to merge 10 commits into
Conversation
…d, admin settings, prefs, i18n, icon Wires Deluge into app chrome: sidebar entry + global poll (badge/toasts, mirrors qBit), ServiceRouteGuardSubscriber rule, HealthService (ping, toggle, color, chip label, isConfigured, invalidate, diagnoseFromResponse for the JSON-RPC envelope, probeFor for auth.login/web.get_config), setup wizard step + admin settings card + display refresh preference, en/fr translations, and an original service icon.
…e progress scale, turbo timer cleanup, savepath in add modal Fixes 5 findings from the whole-branch final review of feat/deluge-tab: 1. XSS: escape the raw tracker-status string fallback in the trackers renderer before it hits innerHTML. 2. File progress was scaled to 0-100 in DelugeClient but the template multiplies by 100 again (qBit contract expects 0-1); emit 0-1. 3. Detail modal was missing name/eta/seeds/peers/speed fields because getTorrentDetail() fetched them but never mapped them into properties; added download_payload_rate/upload_payload_rate to DETAIL_KEYS and mapped all seven fields the template actually reads. 4. The Deluge poll timer wasn't cleared on Turbo navigation, unlike its qBittorrent/Usenet counterparts; added it to the cleanup list. 5. Removed the no-op Category select from the add-torrent modal (the controller never read it) and replaced it with a save-path input, wired through to both api/add and api/add-file as `savepath`.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…downloads group, kill switch, test fields, subtitle i18n) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ndandan
added a commit
to ndandan/Prismarr
that referenced
this pull request
Jul 6, 2026
…ests, SABnzbd, Plex activity, Prowlarr), add Deluge coverage, update pending-PR list (Shoshuo#74/Shoshuo#75/Shoshuo#76) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an optional Deluge tab — a full torrent-management page for Deluge mirroring the existing qBittorrent tab, wired through the same service conventions (setup wizard,
/admin/settingscard with kill switch + Test connection, health chip, sidebar badge, circuit breaker, SSRF protocol locks). Fully additive: no behaviour change for anyone who doesn't configure it.What's included
DelugeClient— deluge-web JSON-RPC (POST {url}/json):error === null), with_session_idcookie auth.web.connectwhen the web UI is daemon-disconnected.ServiceHealthCache+ SSRF guards as every other client.DelugeController+/delugepage — feature parity with the qBit tab where Deluge supports it:core.pause_session/core.resume_session..torrentupload (SSRF-guarded, bencode-validated) with save-path; per-torrent and global speed limits.allsentinel — session-wide ops use the dedicated RPCs).Deliberately absent (Deluge doesn't map cleanly): tags, rename, force-start, sequential download, per-file priorities, VPN column.
Shared-file touchpoints (kept minimal)
ApiClientErrorTraitunion,HealthService(client + toggle/invalidate lists), route-guard subscriber, setup wizard, admin-settings card registration, display prefs, sidebar + poll inbase.html.twig, en/fr translations.Verification
DelugeClientTest(envelope/auth/reconnect/normalization),DelugeControllerTest, health-diagnose + route-guard + smoke coverage.make check(lint + Twig lint + full PHPUnit suite) green on this branch.CHANGELOG entry included under
[Unreleased]→ Added.🤖 Generated with Claude Code