From 84e863c47752af3249210509246a84d0ddf4884b Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sun, 2 Oct 2022 18:23:17 +0300 Subject: [PATCH] small fix --- src/assets/javascripts/services.js | 53 +++++++++++++++++------------- src/pages/popup/popup.js | 6 ++-- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index d84db4f..279c8c2 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -376,32 +376,41 @@ function redirect(url, type, initiator) { } } -async function computeService(url, returnFrontend) { - fetch("/config/config.json") - .then(response => response.text()) - .then(configData => { - const config = JSON.parse(configData) - browser.storage.local.get(["redirects", "options"], r => { - const redirects = r.redirects - const options = r.options - for (const service in config.services) { - if (regexArray(service, url, config)) { - if (returnFrontend) return [service, null] - else return service - } else { - for (const frontend in config.services[service].frontends) { - if (all(service, frontend, options, config, redirects).includes(utils.protocolHost(url))) { - if (returnFrontend) { - return [service, frontend] - } else return service +function computeService(url, returnFrontend) { + return new Promise(resolve => { + fetch("/config/config.json") + .then(response => response.text()) + .then(configData => { + const config = JSON.parse(configData) + browser.storage.local.get(["redirects", "options"], r => { + const redirects = r.redirects + const options = r.options + for (const service in config.services) { + if (regexArray(service, url, config)) { + if (returnFrontend) { + resolve([service, null]) + } else { + resolve(service) + } + return + } else { + for (const frontend in config.services[service].frontends) { + if (all(service, frontend, options, config, redirects).includes(utils.protocolHost(url))) { + if (returnFrontend) { + resolve([service, frontend]) + } else { + resolve(service) + } + return + } } } } - } - // if (returnFrontend) return [null, null] - // else return null + // if (returnFrontend) return [null, null] + // else return null + }) }) - }) + }) } async function switchInstance(url) { diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 9899e79..9231f3f 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -58,7 +58,7 @@ const currentSiteIsFrontend = document.getElementById("current_site_divider") browser.storage.local.get("options", r => { browser.tabs.query({ active: true, currentWindow: true }, async tabs => { - for (const service in config.services) { +for (const service in config.services) { if (!r.options.popupServices.includes(service)) allSites.getElementsByClassName(service)[0].classList.add("hide") else allSites.getElementsByClassName(service)[0].classList.remove("hide") currSite.getElementsByClassName(service)[0].classList.add("hide") @@ -68,7 +68,7 @@ browser.storage.local.get("options", r => { divs[service].toggle.all.checked = r.options[service].enabled divs[service].toggle.current.checked = r.options[service].enabled } - + let url try { url = new URL(tabs[0].url) @@ -77,7 +77,7 @@ browser.storage.local.get("options", r => { document.getElementById("unify_div").style.display = "none" return } - + let service = await serviceHelper.computeService(url, true) let frontend if (service) {