about summary refs log tree commit diff stats
path: root/src/pages/options/index.js
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-01-08 11:05:45 +0300
committerManeraKai <manerakai@protonmail.com>2023-01-08 11:05:45 +0300
commit486b92af5faa28f2535b245d2dbfe0a34ea2dd30 (patch)
tree60448730528babe1d5cb05a075516c7358fd4129 /src/pages/options/index.js
parentRedirect all embeds in tab to same instance https://github.com/libredirect/li... (diff)
downloadlibredirect-486b92af5faa28f2535b245d2dbfe0a34ea2dd30.zip
Optimized the getList and getBlacklist functions
Diffstat (limited to 'src/pages/options/index.js')
-rw-r--r--src/pages/options/index.js86
1 files changed, 47 insertions, 39 deletions
diff --git a/src/pages/options/index.js b/src/pages/options/index.js
index 006b5248..68f45d6a 100644
--- a/src/pages/options/index.js
+++ b/src/pages/options/index.js
@@ -86,13 +86,23 @@ function loadPage(path) {
 
 		for (const frontend in config.services[service].frontends) {
 			if (config.services[service].frontends[frontend].instanceList) {
-				processDefaultCustomInstances(frontend, config.networks, document)
+				processDefaultCustomInstances(frontend, document)
 			}
 		}
+
+		!async function () {
+			const blacklist = await utils.getBlacklist()
+			const redirects = await utils.getList()
+			for (const frontend in config.services[service].frontends) {
+				if (config.services[service].frontends[frontend].instanceList) {
+					createList(frontend, config.networks, document, redirects, blacklist)
+				}
+			}
+		}()
 	}
 }
 
-async function processDefaultCustomInstances(frontend, networks, document) {
+async function processDefaultCustomInstances(frontend, document) {
 	let customInstances = []
 	let options
 	await new Promise(async resolve =>
@@ -103,42 +113,6 @@ async function processDefaultCustomInstances(frontend, networks, document) {
 		})
 	)
 
-	!async function () {
-		const blacklist = utils.getBlacklist()
-		const redirects = utils.getList()
-
-		for (const network in networks) {
-			if (redirects[frontend][network].length > 0) {
-				document.getElementById(frontend).getElementsByClassName(network)[0].getElementsByClassName("checklist")[0].innerHTML = [
-					`
-				<div class="some-block option-block">
-					<h4>${utils.camelCase(network)}</h4>
-				</div>
-				`,
-					...redirects[frontend][network]
-						.sort((a, b) =>
-							(blacklist.cloudflare.includes(a) && !blacklist.cloudflare.includes(b))
-							||
-							(blacklist.authenticate.includes(a) && !blacklist.authenticate.includes(b))
-						)
-						.map(x => {
-							const cloudflare = blacklist.cloudflare.includes(x) ? ' <span style="color:red;">cloudflare</span>' : ""
-							const authenticate = blacklist.authenticate.includes(x) ? ' <span style="color:orange;">authenticate</span>' : ""
-
-							let warnings = [cloudflare, authenticate].join(" ")
-							return `
-						<div>
-							<x>
-								<a href="${x}" target="_blank">${x}</a>${warnings}
-							</x>
-						  </div>`
-						}),
-					'<br>'
-				].join("\n<hr>\n")
-			}
-		}
-	}()
-
 	localise.localisePage()
 
 	function calcCustomInstances() {
@@ -191,6 +165,40 @@ async function processDefaultCustomInstances(frontend, networks, document) {
 	})
 }
 
+function createList(frontend, networks, document, redirects, blacklist) {
+	for (const network in networks) {
+		if (redirects[frontend][network].length > 0) {
+			document.getElementById(frontend).getElementsByClassName(network)[0].getElementsByClassName("checklist")[0].innerHTML = [
+				`
+			<div class="some-block option-block">
+				<h4>${utils.camelCase(network)}</h4>
+			</div>
+			`,
+				...redirects[frontend][network]
+					.sort((a, b) =>
+						(blacklist.cloudflare.includes(a) && !blacklist.cloudflare.includes(b))
+						||
+						(blacklist.authenticate.includes(a) && !blacklist.authenticate.includes(b))
+					)
+					.map(x => {
+						const cloudflare = blacklist.cloudflare.includes(x) ? ' <span style="color:red;">cloudflare</span>' : ""
+						const authenticate = blacklist.authenticate.includes(x) ? ' <span style="color:orange;">authenticate</span>' : ""
+
+						let warnings = [cloudflare, authenticate].join(" ")
+						return `
+					<div>
+						<x>
+							<a href="${x}" target="_blank">${x}</a>${warnings}
+						</x>
+					  </div>`
+					}),
+				'<br>'
+			].join("\n<hr>\n")
+		}
+	}
+}
+
+
 const r = window.location.href.match(/#(.*)/)
 if (r) loadPage(r[1])
-else loadPage("general")
+else loadPage("general")
\ No newline at end of file