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 | |
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.
-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); }) }) |