diff options
author | 0neGal <mail@0negal.com> | 2024-02-03 20:00:07 +0100 |
---|---|---|
committer | 0neGal <mail@0negal.com> | 2024-02-03 20:05:15 +0100 |
commit | 25697f42b3d1a451be16701613001b9d95efd66e (patch) | |
tree | 53c140dedff2409536cde8f688320dfa8b4c3c94 /src | |
parent | 1beb36b3a810f04a3a2c789f382149a4793340f4 (diff) | |
download | Viper-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')
-rw-r--r-- | src/app/js/launcher.js | 2 | ||||
-rw-r--r-- | src/modules/requests.js | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/app/js/launcher.js b/src/app/js/launcher.js index 98f16dc..3130253 100644 --- a/src/app/js/launcher.js +++ b/src/app/js/launcher.js @@ -145,7 +145,7 @@ async function loadServers() { // ask the masterserver for the list of servers, if this has // been done recently, it'll simply return the cached version let servers = JSON.parse( - await request(host, path, "ns-servers") + await request(host, path, "ns-servers", false) ) masterserver = true; 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); }) }) |