diff options
author | ManeraKai <manerakai@protonmail.com> | 2023-09-17 20:52:35 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2023-09-17 20:52:35 +0300 |
commit | 5ca505080e1f6674fe81785c68a25ec78ce0af50 (patch) | |
tree | 6aacc88a2e7c1c72b60455bc0ba42b2b20458a40 /src/assets/javascripts | |
parent | Added some accessible attributes https://github.com/libredirect/browser_exten... (diff) | |
download | libredirect-5ca505080e1f6674fe81785c68a25ec78ce0af50.zip |
Added Custom service function for https://github.com/libredirect/browser_extension/issues/767
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r-- | src/assets/javascripts/services.js | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 3f750147..cdaf76f9 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -565,28 +565,31 @@ function computeService(url, returnFrontend) { }) } -function switchInstance(url) { +function switchInstance(url, customService) { return new Promise(async resolve => { let options = await utils.getOptions() let config = await utils.getConfig() const protocolHost = utils.protocolHost(url) - for (const service in config.services) { - let frontend = options[service].frontend - let instancesList = options[frontend] - if (instancesList === undefined) continue - if (!instancesList.includes(protocolHost)) continue - - instancesList.splice(instancesList.indexOf(protocolHost), 1) - if (instancesList.length === 0) { - resolve() + if (customService) { + const instancesList = options[options[customService].frontend] + if (instancesList !== undefined) { + resolve(`${utils.getRandomInstance(instancesList)}${url.pathname}${url.search}`) + } + } else { + for (const service in config.services) { + let instancesList = options[options[service].frontend] + if (instancesList === undefined) continue + if (!instancesList.includes(protocolHost)) continue + + instancesList.splice(instancesList.indexOf(protocolHost), 1) + if (instancesList.length === 0) { + resolve() + return + } + resolve(`${utils.getRandomInstance(instancesList)}${url.pathname}${url.search}`) return } - - const randomInstance = utils.getRandomInstance(instancesList) - const newUrl = `${randomInstance}${url.pathname}${url.search}` - resolve(newUrl) - return } resolve() }) |