diff options
author | ManeraKai <manerakai@protonmail.com> | 2023-01-08 11:05:45 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2023-01-08 11:05:45 +0300 |
commit | 486b92af5faa28f2535b245d2dbfe0a34ea2dd30 (patch) | |
tree | 60448730528babe1d5cb05a075516c7358fd4129 /src/assets/javascripts | |
parent | Redirect all embeds in tab to same instance https://github.com/libredirect/li... (diff) | |
download | libredirect-486b92af5faa28f2535b245d2dbfe0a34ea2dd30.zip |
Optimized the getList and getBlacklist functions
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r-- | src/assets/javascripts/services.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/utils.js | 31 |
2 files changed, 25 insertions, 10 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 988f6348..0b4e495a 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -624,7 +624,7 @@ function processUpdate() { fetch("/config.json") .then(response => response.text()) .then(configData => { - browser.storage.local.get(["options", "targets"], r => { + browser.storage.local.get(["options", "targets"], async r => { let redirects = JSON.parse(data) let options = r.options let targets = r.targets @@ -647,7 +647,7 @@ function processUpdate() { if (!options[frontend]) { options[frontend] = [] if (network == "clearnet") { - for (const blacklist of getBlacklist()) { + for (const blacklist of await utils.getBlacklist()) { for (const instance of blacklist) { let i = options[frontend].clearnet.enabled.indexOf(instance) if (i > -1) options[frontend].clearnet.enabled.splice(i, 1) diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js index 6e6b6707..86b9b402 100644 --- a/src/assets/javascripts/utils.js +++ b/src/assets/javascripts/utils.js @@ -71,17 +71,32 @@ function switchInstance(test) { } function getBlacklist() { - let http = new XMLHttpRequest() - http.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/blacklist.json", false) - http.send(null) - return JSON.parse(http.responseText) + return new Promise(resolve => { + const http = new XMLHttpRequest() + http.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/blacklist.json", true) + http.onreadystatechange = () => { + if (http.status === 200 && http.readyState == XMLHttpRequest.DONE) { + resolve(JSON.parse(http.responseText)) + return + } + } + http.send(null) + }) } function getList() { - let http = new XMLHttpRequest() - http.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/data.json", false) - http.send(null) - return JSON.parse(http.responseText) + return new Promise(resolve => { + const http = new XMLHttpRequest() + http.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/data.json", true) + http.onreadystatechange = () => { + if (http.status === 200 && http.readyState == XMLHttpRequest.DONE) { + resolve(JSON.parse(http.responseText)) + return + } + } + http.send(null) + }) + } export default { |