From 51bb4e1557b892f94132131aa6d19e5cb2b148d0 Mon Sep 17 00:00:00 2001 From: Hygna Date: Fri, 21 Oct 2022 19:24:55 +0100 Subject: [PATCH] Fixed redirect toggles set to false being reset Closes https://github.com/libredirect/libredirect/issues/499 --- .prettierrc.json | 1 + src/assets/javascripts/services.js | 40 ++++++++---------------------- src/config/config.json | 7 +++++- src/pages/background/background.js | 1 - 4 files changed, 17 insertions(+), 32 deletions(-) diff --git a/.prettierrc.json b/.prettierrc.json index 864a0cc..3ac20a0 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -4,6 +4,7 @@ "useTabs": true, "arrowParens": "avoid", "printWidth": 200, + "bracketSameLine": true, "overrides": [ { "files": ["*.js", "*.json"], diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 7b73d9d..8aa044e 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -716,7 +716,11 @@ function processUpdate() { for (const service in config.services) { if (!options[service]) options[service] = {} if (config.services[service].targets == "datajson") targets[service] = redirects[service] - for (const defaultOption in config.services[service].options) if (!options[service][defaultOption]) options[service][defaultOption] = config.services[service].options[defaultOption] + for (const defaultOption in config.services[service].options) { + if (options[service][defaultOption] === undefined) { + options[service][defaultOption] = config.services[service].options[defaultOption] + } + } for (const frontend in config.services[service].frontends) { if (config.services[service].frontends[frontend].instanceList) { if (!options[frontend]) options[frontend] = {} @@ -733,6 +737,11 @@ function processUpdate() { } } } + } else { + for (const instance of options[frontend][network].enabled) { + let i = redirects[frontend][network].indexOf(instance) + if (i < 0) options[frontend][network].enabled.splice(i, 1) + } } } } @@ -784,34 +793,6 @@ function modifyContentSecurityPolicy(details) { } } -function processEnabledInstanceList() { - 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 => { - let options = r.options - for (const service in config.services) { - for (const frontend in config.services[service].frontends) { - if (config.services[service].frontends[frontend].instanceList) { - for (const network in config.networks) { - for (const instance of options[frontend][network].enabled) { - let i = redirects[frontend][network].indexOf(instance) - if (i < 0) options[frontend][network].enabled.splice(i, 1) - } - } - } - } - } - browser.storage.local.set({ options }, () => { - resolve() - }) - }) - }) - }) -} - export default { redirect, computeService, @@ -823,5 +804,4 @@ export default { upgradeOptions, processUpdate, modifyContentSecurityPolicy, - processEnabledInstanceList, } diff --git a/src/config/config.json b/src/config/config.json index 5f70b85..d946320 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -163,7 +163,12 @@ "instanceList": true } }, - "targets": ["^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com(\\/|$)", "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com(\\/|$)", "^https?:\\/{2}platform\\.twitter\\.com/embed(\\/|$)", "^https?:\\/{2}t\\.co(\\/|$)"], + "targets": [ + "^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com(\\/|$)", + "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com(\\/|$)", + "^https?:\\/{2}platform\\.twitter\\.com/embed(\\/|$)", + "^https?:\\/{2}t\\.co(\\/|$)" + ], "name": "Twitter", "options": { "enabled": true, diff --git a/src/pages/background/background.js b/src/pages/background/background.js index d807fa0..bed0055 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -37,7 +37,6 @@ browser.runtime.onInstalled.addListener(details => { break default: await servicesHelper.processUpdate() - await servicesHelper.processEnabledInstanceList() } } })