WebUI: Continue polling after network error

These `fetch` calls properly handle 4xx and 5xx errors, but don't handle network errors. In all cases, I've used the same logic as the `!response.ok` branch of each individual fetch function. This should ensure consistent behavior.

PR #23164.
This commit is contained in:
Thomas (Tom) Piccirello
2025-09-05 05:32:43 -07:00
committed by GitHub
parent 4fa433a728
commit ac31fe52e9
4 changed files with 27 additions and 0 deletions

View File

@@ -241,6 +241,10 @@ window.qBittorrent.AddTorrent ??= (() => {
metadataCompleted();
else
loadMetadataTimer = loadMetadata.delay(1000);
}, (error) => {
console.error(error);
loadMetadataTimer = loadMetadata.delay(1000);
});
};

View File

@@ -234,6 +234,12 @@ window.qBittorrent.PropGeneral ??= (() => {
}
clearTimeout(loadTorrentDataTimer);
loadTorrentDataTimer = loadTorrentData.delay(5000);
}, (error) => {
console.error(error);
document.getElementById("error_div").textContent = "QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]";
clearTimeout(loadTorrentDataTimer);
loadTorrentDataTimer = loadTorrentData.delay(10000);
});
const pieceStatesURL = new URL("api/v2/torrents/pieceStates", window.location);
@@ -262,6 +268,12 @@ window.qBittorrent.PropGeneral ??= (() => {
clearTimeout(loadTorrentDataTimer);
loadTorrentDataTimer = loadTorrentData.delay(5000);
}, (error) => {
console.error(error);
document.getElementById("error_div").textContent = "QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]";
clearTimeout(loadTorrentDataTimer);
loadTorrentDataTimer = loadTorrentData.delay(10000);
});
};

View File

@@ -917,6 +917,11 @@ window.qBittorrent.Search ??= (() => {
clearTimeout(state.loadResultsTimer);
state.loadResultsTimer = loadSearchResultsData.delay(2000, this, searchId);
}, (error) => {
console.error(error);
clearTimeout(state.loadResultsTimer);
state.loadResultsTimer = loadSearchResultsData.delay(3000, this, searchId);
});
};

View File

@@ -416,6 +416,12 @@
tableInfo[curTab].progress = false;
syncLogWithInterval(getSyncLogDataInterval());
}, (error) => {
console.error(error);
document.getElementById("error_div").textContent = "QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]";
tableInfo[curTab].progress = false;
syncLogWithInterval(10000);
});
};