about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-09-23 20:57:25 +0100
committerHygna <hygna@proton.me>2022-09-23 20:57:25 +0100
commitf87eb20ceed147362f4d446aa10e15f865c0bc16 (patch)
treeb6e5a7d6a1d22a94a96d7ffadfe13d3a11deb643 /src/assets/javascripts
parentCompleted Migration to ejs (diff)
downloadlibredirect-f87eb20ceed147362f4d446aa10e15f865c0bc16.zip
Started optimizing popup.js
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/services.js43
1 files changed, 36 insertions, 7 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index f4c30873..d3b7290f 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -20,10 +20,10 @@ async function getConfig() {
 

 function init() {

 	return new Promise(async resolve => {

-		browser.storage.local.get(["network", "networkFallback"], r => {

+		browser.storage.local.get(["network", "networkFallback", "redirects"], r => {

 			options.network = r.network

 			options.networkFallback = r.networkFallback

-			options.redirects = r.redirects

+			redirects = r.redirects

 		})

 		for (const service in config.services) {

 			options[service] = {}

@@ -50,14 +50,26 @@ function init() {
 

 function all(service) {

 	let tmp = []

-	for (frontend in config.services[service].frontends) {

-		for (network in config.networks) tmp.push([...redirects[frontend][network]])

+	for (const frontend in config.services[service].frontends) {

+		if (config.services[service].frontends[frontend].instanceList) {

+			for (const network in config.networks) {

+				tmp.push(...redirects[frontend][network])

+			}

+		}

 	}

 	return tmp

 }

 

+function regexArray(service, url) {

+	for (const targetString in config.services[service].targets) {

+		const target = new RegExp(config.services[service].targets[targetString])

+		if (target.test(url.href)) return true

+	}

+	return false

+}

+

 await getConfig()

-init()

+await init()

 browser.storage.onChanged.addListener(init)

 

 function redirect(url, type, initiator) {

@@ -69,7 +81,7 @@ function redirect(url, type, initiator) {
 	if (url.pathname == "/") return

 	for (const service in config.services) {

 		if (!options[service].enabled) continue

-		let targets = service.targets

+		let targets = config.services[service].targets

 		if (targets == "datajson") {

 			browser.storage.local.get(`${service}Targets`, (targets = r[service + "Targets"]))

 		}

@@ -424,12 +436,29 @@ function initDefaults() {
 				browser.storage.local.set({

 					redirects: dataJson,

 				})

-				;() => resolve()

+				resolve()

 			})

 	})

 }

 

+function computeService(url) {

+	for (const service in config.services) {

+		const regex = config.services[service].targets

+		console.log(regex)

+		if (regexArray(service, url)) {

+			console.log(service + "gi")

+			return service

+		} else if (all(service).includes(utils.protocolHost(url))) {

+			console.log(service)

+			return service

+		}

+	}

+	console.log("moment")

+	return null

+}

+

 export default {

 	redirect,

 	initDefaults,

+	computeService,

 }