From b48332f0759805a6150116981008c2898182518c Mon Sep 17 00:00:00 2001 From: Gronod Date: Fri, 15 May 2026 23:35:16 +0100 Subject: [PATCH] perf: persist qBittorrent clients between requests - 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) --- server/utils/qbittorrent.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/utils/qbittorrent.js b/server/utils/qbittorrent.js index 2f10284..7073587 100644 --- a/server/utils/qbittorrent.js +++ b/server/utils/qbittorrent.js @@ -96,14 +96,19 @@ class QBittorrentClient { } } +// Persist clients so auth cookies survive between requests +let persistedClients = null; + function getClients() { + if (persistedClients) return persistedClients; const instances = getQbittorrentInstances(); if (instances.length === 0) { logToFile('[qBittorrent] No instances configured'); return []; } - logToFile(`[qBittorrent] Created ${instances.length} client(s)`); - return instances.map(inst => new QBittorrentClient(inst)); + logToFile(`[qBittorrent] Created ${instances.length} persistent client(s)`); + persistedClients = instances.map(inst => new QBittorrentClient(inst)); + return persistedClients; } async function getAllTorrents() {