aboutsummaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
author0neGal <mail@0negal.com>2024-02-03 20:00:07 +0100
committer0neGal <mail@0negal.com>2024-02-03 20:05:15 +0100
commit25697f42b3d1a451be16701613001b9d95efd66e (patch)
tree53c140dedff2409536cde8f688320dfa8b4c3c94 /src/modules
parent1beb36b3a810f04a3a2c789f382149a4793340f4 (diff)
downloadViper-25697f42b3d1a451be16701613001b9d95efd66e.tar.gz
Viper-25697f42b3d1a451be16701613001b9d95efd66e.zip
requests.js ignores cache time when no internet
This means if you dont have any internet, but there's a cached requests, it'll use that, even if it was cached a very long time ago. This just attempts to eliminate errors. This can still be turned off for things where you dont want this to happen, notably the masterserver status.
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/requests.js15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/modules/requests.js b/src/modules/requests.js
index bc113bb..d4ee678 100644
--- a/src/modules/requests.js
+++ b/src/modules/requests.js
@@ -166,7 +166,7 @@ requests.cache.set = (cache_key, data) => {
// if `cache_key` is set, we'll first attempt to check if any valid
// cache with that key exists, and then return it directly if its still
// valid cache.
-requests.get = (host, path, cache_key, max_time_min) => {
+requests.get = (host, path, cache_key, ignore_max_time_when_offline = true, max_time_min) => {
let cached = requests.cache.get(cache_key, max_time_min);
if (cached) {
return cached;
@@ -207,8 +207,19 @@ requests.get = (host, path, cache_key, max_time_min) => {
})
})
- // an error occured, simply `reject()`
+ // an error occured
.on("error", () => {
+ if (ignore_max_time_when_offline) {
+ // check if the request has been cached before, at all, not
+ // caring about how long time ago it was, and if it was, we
+ // simply return that, as a last resort.
+ cached = requests.cache.get(cache_key, false);
+
+ if (cached) {
+ return resolve(cached);
+ }
+ }
+
reject(false);
})
})