about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-09-17 20:52:35 +0300
committerManeraKai <manerakai@protonmail.com>2023-09-17 20:52:35 +0300
commit5ca505080e1f6674fe81785c68a25ec78ce0af50 (patch)
tree6aacc88a2e7c1c72b60455bc0ba42b2b20458a40 /src/assets
parentAdded some accessible attributes https://github.com/libredirect/browser_exten... (diff)
downloadlibredirect-5ca505080e1f6674fe81785c68a25ec78ce0af50.zip
Added Custom service function for https://github.com/libredirect/browser_extension/issues/767
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/services.js33
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()
 	})