
rootandClaude Opus 5.5
74f1566985
feat(qbittorrent): login compat for v4/v5.0-5.2 and three auth modes
- Login success = HTTP 200 "Ok." or 204 (5.2+); session cookie taken from
Set-Cookie by name (SID / QBT_SID_<port> / custom) and sent back as-is.
- Failure classes: "Fails." / 401 -> auth; 403 IP ban / 429 -> rate;
wrong API Key (403) -> auth with hint; 5xx -> protocol.
- Downloader instance auth kind: password / api_key (qB 5.2+ Bearer, no
/auth/login) / none (whitelisted subnet); stored in settings.authKind,
credential write-only in secret_ref, cleared when switching to none.
One qbAuthConfig() shared by sync, agent capability and connection test.
- Settings form: auth kind select, password / API Key fields (no echo).
- testkit: mock qB 5.2 login behaviour, IP ban, bypassAuth;
makeTorrent({ realPieces }) builds real piece hashes for real qB checks.
- Real-container matrix (QB_REAL, skipped by default): 5.1.2 and 5.2.4,
login / add / query / tags / pause-resume / delete keeping data.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-29 20:42:17 +08:00
..
2026-09-29 17:30:25 +08:00
2026-09-29 17:30:25 +08:00
2026-09-29 19:37:12 +08:00
2026-09-29 17:13:54 +08:00
2026-09-28 20:09:29 +08:00
2026-09-28 20:09:29 +08:00
2026-09-29 17:28:16 +08:00
2026-09-29 17:28:16 +08:00
2026-09-28 20:09:29 +08:00
2026-09-28 20:09:29 +08:00
2026-09-28 20:09:29 +08:00
2026-09-29 19:37:12 +08:00
2026-09-29 17:30:25 +08:00
2026-09-29 20:42:17 +08:00
2026-09-29 16:00:34 +08:00
2026-09-29 19:37:11 +08:00
2026-09-29 15:13:35 +08:00
2026-09-29 17:13:54 +08:00
2026-09-28 15:22:15 +08:00
2026-09-29 17:30:25 +08:00
2026-09-27 18:53:06 +08:00
2026-09-27 18:53:06 +08:00