perf: persist qBittorrent clients between requests
Build and Push Docker Image / build (push) Successful in 27s

- Reuse client instances so auth cookies survive across requests
- Eliminates redundant login round-trips on every dashboard refresh
- Clients still re-authenticate automatically if session expires (403)
This commit is contained in:
2026-05-15 23:35:16 +01:00
parent b04b52e3f1
commit 570eca0b82
+7 -2
View File
@@ -96,14 +96,19 @@ class QBittorrentClient {
} }
} }
// Persist clients so auth cookies survive between requests
let persistedClients = null;
function getClients() { function getClients() {
if (persistedClients) return persistedClients;
const instances = getQbittorrentInstances(); const instances = getQbittorrentInstances();
if (instances.length === 0) { if (instances.length === 0) {
logToFile('[qBittorrent] No instances configured'); logToFile('[qBittorrent] No instances configured');
return []; return [];
} }
logToFile(`[qBittorrent] Created ${instances.length} client(s)`); logToFile(`[qBittorrent] Created ${instances.length} persistent client(s)`);
return instances.map(inst => new QBittorrentClient(inst)); persistedClients = instances.map(inst => new QBittorrentClient(inst));
return persistedClients;
} }
async function getAllTorrents() { async function getAllTorrents() {