about summary refs log tree commit diff stats
path: root/src/assets/javascripts/search.js
diff options
context:
space:
mode:
authorEdward <contact@langdon.slmail.me>2022-10-09 19:04:15 +0530
committerGitHub <noreply@github.com>2022-10-09 19:04:15 +0530
commit26abc5d2c9f671d359be8a7bf503632242abb2c2 (patch)
treeab05b3b2906fbc8423eea3abe1bd8efeccefa439 /src/assets/javascripts/search.js
parentUpdate messages.json (diff)
parentMerge pull request #404 from marcelocripe/patch-1 (diff)
downloadlibredirect-26abc5d2c9f671d359be8a7bf503632242abb2c2.zip
Merge branch 'master' into patch-3
Diffstat (limited to 'src/assets/javascripts/search.js')
-rw-r--r--src/assets/javascripts/search.js581
1 files changed, 0 insertions, 581 deletions
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
deleted file mode 100644
index 548e7629..00000000
--- a/src/assets/javascripts/search.js
+++ /dev/null
@@ -1,581 +0,0 @@
-window.browser = window.browser || window.chrome
-
-import utils from "./utils.js"
-
-const targets = [/^https?:\/{2}search\.libredirect\.invalid/]
-// Ill optimise all of assets/javascripts at a later date. For now, I'll just add librex and optimse options javascript
-const frontends = new Array("searx", "searxng", "whoogle", "librex")
-const protocols = new Array("normal", "tor", "i2p", "loki")
-
-let redirects = {}
-
-for (let i = 0; i < frontends.length; i++) {
-	redirects[frontends[i]] = {}
-	for (let x = 0; x < protocols.length; x++) {
-		redirects[frontends[i]][protocols[x]] = []
-	}
-}
-
-function setRedirects(val) {
-	return new Promise(resolve =>
-		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-			redirects = val
-			searxNormalRedirectsChecks = [...redirects.searx.normal]
-			searxngNormalRedirectsChecks = [...redirects.searxng.normal]
-			whoogleNormalRedirectsChecks = [...redirects.whoogle.normal]
-			librexNormalRedirectsChecks = [...redirects.librex.normal]
-			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-				const a = searxNormalRedirectsChecks.indexOf(instance)
-				if (a > -1) searxNormalRedirectsChecks.splice(a, 1)
-
-				const b = searxngNormalRedirectsChecks.indexOf(instance)
-				if (b > -1) searxngNormalRedirectsChecks.splice(b, 1)
-
-				const c = whoogleNormalRedirectsChecks.indexOf(instance)
-				if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1)
-
-				const d = librexNormalRedirectsChecks.indexOf(instance)
-				if (d > -1) librexNormalRedirectsChecks.splice(d, 1)
-			}
-			browser.storage.local.set(
-				{
-					searchRedirects: redirects,
-					searxNormalRedirectsChecks,
-					searxTorRedirectsChecks: [...redirects.searx.tor],
-					searxI2pRedirectsChecks: [...redirects.searx.i2p],
-					searxLokiRedirectsChecks: [...redirects.searx.loki],
-					searxngNormalRedirectsChecks,
-					searxngTorRedirectsChecks: [...redirects.searxng.tor],
-					searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
-					searxngLokiRedirectsChecks: [...redirects.searxng.loki],
-					whoogleNormalRedirectsChecks,
-					whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
-					whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
-					whoogleLokiRedirectsChecks: [...redirects.whoogle.loki],
-					librexNormalRedirectsChecks,
-					librexTorRedirectsChecks: [...redirects.librex.tor],
-					librexI2pRedirectsChecks: [...redirects.librex.i2p],
-					librexLokiRedirectsChecks: [...redirects.librex.loki],
-				},
-				() => resolve()
-			)
-		})
-	)
-}
-
-let disableSearch,
-	searchFrontend,
-	searchRedirects,
-	protocol,
-	protocolFallback,
-	whoogleNormalRedirectsChecks,
-	whoogleNormalCustomRedirects,
-	whoogleTorRedirectsChecks,
-	whoogleTorCustomRedirects,
-	whoogleI2pRedirectsChecks,
-	whoogleI2pCustomRedirects,
-	whoogleLokiCustomRedirects,
-	searxNormalRedirectsChecks,
-	searxNormalCustomRedirects,
-	searxTorRedirectsChecks,
-	searxTorCustomRedirects,
-	searxI2pRedirectsChecks,
-	searxI2pCustomRedirects,
-	searxLokiCustomRedirects,
-	searxngNormalRedirectsChecks,
-	searxngNormalCustomRedirects,
-	searxngTorRedirectsChecks,
-	searxngTorCustomRedirects,
-	searxngI2pRedirectsChecks,
-	searxngI2pCustomRedirects,
-	searxngLokiCustomRedirects,
-	librexNormalRedirectsChecks,
-	librexNormalCustomRedirects,
-	librexTorRedirectsChecks,
-	librexTorCustomRedirects,
-	librexI2pRedirectsChecks,
-	librexI2pCustomRedirects,
-	librexLokiCustomRedirects
-
-function init() {
-	return new Promise(async resolve => {
-		browser.storage.local.get(
-			[
-				"disableSearch",
-				"searchFrontend",
-				"searchRedirects",
-				"protocol",
-				"protocolFallback",
-				"whoogleNormalRedirectsChecks",
-				"whoogleNormalCustomRedirects",
-				"whoogleTorRedirectsChecks",
-				"whoogleTorCustomRedirects",
-				"whoogleI2pRedirectsChecks",
-				"whoogleI2pCustomRedirects",
-				"whoogleLokiCustomRedirects",
-				"searxNormalRedirectsChecks",
-				"searxNormalCustomRedirects",
-				"searxTorRedirectsChecks",
-				"searxTorCustomRedirects",
-				"searxI2pRedirectsChecks",
-				"searxI2pCustomRedirects",
-				"searxLokiCustomRedirects",
-				"searxngNormalRedirectsChecks",
-				"searxngNormalCustomRedirects",
-				"searxngTorRedirectsChecks",
-				"searxngTorCustomRedirects",
-				"searxngI2pRedirectsChecks",
-				"searxngI2pCustomRedirects",
-				"searxngLokiCustomRedirects",
-				"librexNormalRedirectsChecks",
-				"librexNormalCustomRedirects",
-				"librexTorRedirectsChecks",
-				"librexTorCustomRedirects",
-				"librexI2pRedirectsChecks",
-				"librexI2pCustomRedirects",
-				"librexLokiCustomRedirects",
-			],
-			r => {
-				disableSearch = r.disableSearch
-				searchFrontend = r.searchFrontend
-				searchRedirects = r.searchRedirects
-				protocol = r.protocol
-				protocolFallback = r.protocolFallback
-				whoogleNormalRedirectsChecks = r.whoogleNormalRedirectsChecks
-				whoogleNormalCustomRedirects = r.whoogleNormalCustomRedirects
-				whoogleTorRedirectsChecks = r.whoogleTorRedirectsChecks
-				whoogleTorCustomRedirects = r.whoogleTorCustomRedirects
-				whoogleI2pRedirectsChecks = r.whoogleI2pRedirectsChecks
-				whoogleI2pCustomRedirects = r.whoogleI2pCustomRedirects
-				whoogleLokiCustomRedirects = r.whoogleLokiCustomRedirects
-				searxNormalRedirectsChecks = r.searxNormalRedirectsChecks
-				searxNormalCustomRedirects = r.searxNormalCustomRedirects
-				searxTorRedirectsChecks = r.searxTorRedirectsChecks
-				searxTorCustomRedirects = r.searxTorCustomRedirects
-				searxI2pRedirectsChecks = r.searxI2pRedirectsChecks
-				searxI2pCustomRedirects = r.searxI2pCustomRedirects
-				searxLokiCustomRedirects = r.searxLokiCustomRedirects
-				searxngNormalRedirectsChecks = r.searxngNormalRedirectsChecks
-				searxngNormalCustomRedirects = r.searxngNormalCustomRedirects
-				searxngTorRedirectsChecks = r.searxngTorRedirectsChecks
-				searxngTorCustomRedirects = r.searxngTorCustomRedirects
-				searxngI2pRedirectsChecks = r.searxngI2pRedirectsChecks
-				searxngI2pCustomRedirects = r.searxngI2pCustomRedirects
-				searxngLokiCustomRedirects = r.searxngLokiCustomRedirects
-				librexNormalRedirectsChecks = r.librexNormalRedirectsChecks
-				librexNormalCustomRedirects = r.librexNormalCustomRedirects
-				librexTorRedirectsChecks = r.librexTorRedirectsChecks
-				librexTorCustomRedirects = r.librexTorCustomRedirects
-				librexI2pRedirectsChecks = r.librexI2pRedirectsChecks
-				librexI2pCustomRedirects = r.librexI2pCustomRedirects
-				librexLokiCustomRedirects = r.librexLokiCustomRedirects
-				resolve()
-			}
-		)
-	})
-}
-
-init()
-browser.storage.onChanged.addListener(init)
-
-function initSearxCookies(test, from) {
-	return new Promise(async resolve => {
-		await init()
-		let protocolHost = utils.protocolHost(from)
-		if (
-			![
-				...searxNormalRedirectsChecks,
-				...searxNormalCustomRedirects,
-				...searxTorRedirectsChecks,
-				...searxTorCustomRedirects,
-				...searxI2pRedirectsChecks,
-				...searxI2pCustomRedirects,
-				...searxLokiCustomRedirects,
-			].includes(protocolHost)
-		) {
-			resolve()
-			return
-		}
-
-		if (!test) {
-			let checkedInstances = []
-			if (protocol == "loki") checkedInstances = [...searxLokiCustomRedirects]
-			else if (protocol == "i2p") checkedInstances = [...searxI2pCustomRedirects, ...searxI2pRedirectsChecks]
-			else if (protocol == "tor") checkedInstances = [...searxTorRedirectsChecks, ...searxTorCustomRedirects]
-			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
-				checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects]
-			}
-			await utils.copyCookie("searx", from, checkedInstances, "advanced_search")
-			await utils.copyCookie("searx", from, checkedInstances, "autocomplete")
-			await utils.copyCookie("searx", from, checkedInstances, "categories")
-			await utils.copyCookie("searx", from, checkedInstances, "disabled_engines")
-			await utils.copyCookie("searx", from, checkedInstances, "disabled_plugins")
-			await utils.copyCookie("searx", from, checkedInstances, "doi_resolver")
-			await utils.copyCookie("searx", from, checkedInstances, "enabled_engines")
-			await utils.copyCookie("searx", from, checkedInstances, "enabled_plugins")
-			await utils.copyCookie("searx", from, checkedInstances, "image_proxy")
-			await utils.copyCookie("searx", from, checkedInstances, "language")
-			await utils.copyCookie("searx", from, checkedInstances, "locale")
-			await utils.copyCookie("searx", from, checkedInstances, "method")
-			await utils.copyCookie("searx", from, checkedInstances, "oscar-style")
-			await utils.copyCookie("searx", from, checkedInstances, "results_on_new_tab")
-			await utils.copyCookie("searx", from, checkedInstances, "safesearch")
-			await utils.copyCookie("searx", from, checkedInstances, "theme")
-			await utils.copyCookie("searx", from, checkedInstances, "tokens")
-		}
-		resolve(true)
-	})
-}
-
-function initSearxngCookies(test, from) {
-	return new Promise(async resolve => {
-		await init()
-		let protocolHost = utils.protocolHost(from)
-		if (
-			![
-				...searxngNormalRedirectsChecks,
-				...searxngNormalCustomRedirects,
-				...searxngTorRedirectsChecks,
-				...searxngTorCustomRedirects,
-				...searxngI2pRedirectsChecks,
-				...searxngI2pCustomRedirects,
-				...searxngLokiCustomRedirects,
-			].includes(protocolHost)
-		) {
-			resolve()
-			return
-		}
-
-		if (!test) {
-			let checkedInstances = []
-			if (protocol == "loki") checkedInstances = [...searxngLokiCustomRedirects]
-			else if (protocol == "i2p") checkedInstances = [...searxngI2pCustomRedirects, ...searxngI2pRedirectsChecks]
-			else if (protocol == "tor") checkedInstances = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects]
-			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
-				checkedInstances = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects]
-			}
-			await utils.copyCookie("searxng", from, checkedInstances, "autocomplete")
-			await utils.copyCookie("searxng", from, checkedInstances, "categories")
-			await utils.copyCookie("searxng", from, checkedInstances, "disabled_engines")
-			await utils.copyCookie("searxng", from, checkedInstances, "disabled_plugins")
-			await utils.copyCookie("searxng", from, checkedInstances, "doi_resolver")
-			await utils.copyCookie("searxng", from, checkedInstances, "enabled_plugins")
-			await utils.copyCookie("searxng", from, checkedInstances, "enabled_engines")
-			await utils.copyCookie("searxng", from, checkedInstances, "image_proxy")
-			await utils.copyCookie("searxng", from, checkedInstances, "infinite_scroll")
-			await utils.copyCookie("searxng", from, checkedInstances, "language")
-			await utils.copyCookie("searxng", from, checkedInstances, "locale")
-			await utils.copyCookie("searxng", from, checkedInstances, "maintab")
-			await utils.copyCookie("searxng", from, checkedInstances, "method")
-			await utils.copyCookie("searxng", from, checkedInstances, "query_in_title")
-			await utils.copyCookie("searxng", from, checkedInstances, "results_on_new_tab")
-			await utils.copyCookie("searxng", from, checkedInstances, "safesearch")
-			await utils.copyCookie("searxng", from, checkedInstances, "simple_style")
-			await utils.copyCookie("searxng", from, checkedInstances, "theme")
-			await utils.copyCookie("searxng", from, checkedInstances, "tokens")
-		}
-		resolve(true)
-	})
-}
-
-function initLibrexCookies(test, from) {
-	return new Promise(async resolve => {
-		await init()
-		let protocolHost = utils.protocolHost(from)
-		if (
-			![
-				...librexNormalRedirectsChecks,
-				...librexNormalCustomRedirects,
-				...librexTorRedirectsChecks,
-				...librexTorCustomRedirects,
-				...librexI2pRedirectsChecks,
-				...librexI2pCustomRedirects,
-				...librexLokiCustomRedirects,
-			].includes(protocolHost)
-		) {
-			resolve()
-			return
-		}
-
-		if (!test) {
-			let checkedInstances = []
-			if (protocol == "loki") checkedInstances = [...librexLokiCustomRedirects]
-			else if (protocol == "i2p") checkedInstances = [...librexI2pCustomRedirects, ...librexI2pRedirectsChecks]
-			else if (protocol == "tor") checkedInstances = [...librexTorRedirectsChecks, ...librexTorCustomRedirects]
-			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
-				checkedInstances = [...librexNormalRedirectsChecks, ...librexNormalCustomRedirects]
-			}
-			await utils.copyCookie("librex", from, checkedInstances, "bibliogram")
-			await utils.copyCookie("librex", from, checkedInstances, "disable_special")
-			await utils.copyCookie("librex", from, checkedInstances, "invidious")
-			await utils.copyCookie("librex", from, checkedInstances, "libreddit")
-			await utils.copyCookie("librex", from, checkedInstances, "nitter")
-			await utils.copyCookie("librex", from, checkedInstances, "proxitok")
-			await utils.copyCookie("librex", from, checkedInstances, "theme")
-			await utils.copyCookie("librex", from, checkedInstances, "wikiless")
-		}
-		resolve(true)
-	})
-}
-
-function redirect(url, disableOverride) {
-	if (disableSearch && !disableOverride) return
-	if (!targets.some(rx => rx.test(url.href))) return
-	if (url.searchParams.has("tbm")) return
-	if (url.hostname.includes("google") && !url.searchParams.has("q") && url.pathname != "/") return
-	let randomInstance
-	let path
-	if (searchFrontend == "searx") {
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...searxLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...searxI2pCustomRedirects, ...searxI2pRedirectsChecks]
-		else if (protocol == "tor") instancesList = [...searxTorRedirectsChecks, ...searxTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects]
-		}
-		if (instancesList.length === 0) {
-			return
-		}
-
-		randomInstance = utils.getRandomInstance(instancesList)
-		path = "/"
-	} else if (searchFrontend == "searxng") {
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...searxngLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...searxngI2pCustomRedirects, ...searxngI2pRedirectsChecks]
-		else if (protocol == "tor") instancesList = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects]
-		}
-		if (instancesList.length === 0) {
-			return
-		}
-
-		randomInstance = utils.getRandomInstance(instancesList)
-		path = "/"
-	} else if (searchFrontend == "whoogle") {
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...whoogleLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...whoogleI2pCustomRedirects, ...whoogleI2pRedirectsChecks]
-		else if (protocol == "tor") instancesList = [...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects]
-		}
-		if (instancesList.length === 0) {
-			return
-		}
-
-		randomInstance = utils.getRandomInstance(instancesList)
-		path = "/search"
-	} else if (searchFrontend == "librex") {
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...librexLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...librexI2pCustomRedirects, ...librexI2pRedirectsChecks]
-		else if (protocol == "tor") instancesList = [...librexTorRedirectsChecks, ...librexTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...librexNormalRedirectsChecks, ...librexNormalCustomRedirects]
-		}
-		if (instancesList.length === 0) {
-			return
-		}
-
-		randomInstance = utils.getRandomInstance(instancesList)
-		path = "/search.php"
-	}
-
-	if (((url.hostname.includes("google") || url.hostname.includes("bing")) && !url.searchParams.has("q")) || (url.hostname.includes("yandex") && !url.searchParams.has("text"))) path = "/"
-
-	let searchQuery = ""
-	if ((url.hostname.includes("google") || url.hostname.includes("bing") || url.hostname.includes("search.libredirect.invalid")) && url.searchParams.has("q"))
-		searchQuery = `?q=${encodeURIComponent(url.searchParams.get("q"))}`
-	if (url.hostname.includes("yandex") && url.searchParams.has("text")) searchQuery = `?q=${url.searchParams.get("text")}`
-
-	return `${randomInstance}${path}${searchQuery}`
-}
-
-function switchInstance(url, disableOverride) {
-	return new Promise(async resolve => {
-		await init()
-		if (disableSearch && !disableOverride) {
-			resolve()
-			return
-		}
-		let protocolHost = utils.protocolHost(url)
-		if (
-			![
-				...searchRedirects.searx.normal,
-				...searchRedirects.searx.tor,
-				...searchRedirects.searx.i2p,
-
-				...searchRedirects.searxng.normal,
-				...searchRedirects.searxng.tor,
-				...searchRedirects.searxng.i2p,
-
-				...searchRedirects.whoogle.normal,
-				...searchRedirects.whoogle.tor,
-				...searchRedirects.whoogle.i2p,
-
-				...searchRedirects.librex.normal,
-				...searchRedirects.librex.tor,
-				...searchRedirects.librex.i2p,
-
-				...searxNormalCustomRedirects,
-				...searxTorCustomRedirects,
-				...searxI2pCustomRedirects,
-				...searxLokiCustomRedirects,
-
-				...searxngNormalCustomRedirects,
-				...searxngTorCustomRedirects,
-				...searxngI2pCustomRedirects,
-				...searxngLokiCustomRedirects,
-
-				...whoogleNormalCustomRedirects,
-				...whoogleTorCustomRedirects,
-				...whoogleI2pCustomRedirects,
-				...whoogleLokiCustomRedirects,
-
-				...librexNormalCustomRedirects,
-				...librexTorCustomRedirects,
-				...librexI2pCustomRedirects,
-				...librexLokiCustomRedirects,
-			].includes(protocolHost)
-		) {
-			resolve()
-			return
-		}
-
-		let instancesList = []
-
-		if (protocol == "loki") {
-			if (searchFrontend == "searx") instancesList = [...searxLokiCustomRedirects]
-			else if (searchFrontend == "searxng") instancesList = [...searxngLokiCustomRedirects]
-			else if (searchFrontend == "whoogle") instancesList = [...whoogleLokiCustomRedirects]
-			else if (searchFrontend == "librex") instancesList = [...librexLokiCustomRedirects]
-		} else if (protocol == "tor") {
-			if (searchFrontend == "searx") instancesList = [...searxTorRedirectsChecks, ...searxTorCustomRedirects]
-			else if (searchFrontend == "searxng") instancesList = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects]
-			else if (searchFrontend == "whoogle") instancesList = [...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects]
-			else if (searchFrontend == "librex") instancesList = [...librexTorRedirectsChecks, ...librexTorCustomRedirects]
-		} else if (protocol == "i2p") {
-			if (searchFrontend == "searx") instancesList = [...searxI2pRedirectsChecks, ...searxI2pCustomRedirects]
-			else if (searchFrontend == "searxng") instancesList = [...searxngI2pRedirectsChecks, ...searxngI2pCustomRedirects]
-			else if (searchFrontend == "whoogle") instancesList = [...whoogleI2pRedirectsChecks, ...whoogleI2pCustomRedirects]
-			else if (searchFrontend == "librex") instancesList = [...librexI2pRedirectsChecks, ...librexI2pCustomRedirects]
-		}
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			if (searchFrontend == "searx") instancesList = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects]
-			else if (searchFrontend == "searxng") instancesList = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects]
-			else if (searchFrontend == "whoogle") instancesList = [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects]
-			else if (searchFrontend == "librex") instancesList = [...librexNormalRedirectsChecks, ...librexNormalCustomRedirects]
-		}
-		const i = instancesList.indexOf(protocolHost)
-		if (i > -1) instancesList.splice(i, 1)
-		if (instancesList.length === 0) {
-			resolve()
-			return
-		}
-
-		const randomInstance = utils.getRandomInstance(instancesList)
-		resolve(`${randomInstance}${url.pathname}${url.search}`)
-	})
-}
-
-function initDefaults() {
-	return new Promise(async resolve => {
-		fetch("/instances/data.json")
-			.then(response => response.text())
-			.then(async data => {
-				let dataJson = JSON.parse(data)
-				for (let i = 0; i < frontends.length; i++) {
-					redirects[frontends[i]] = dataJson[frontends[i]]
-				}
-
-				browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
-					searxNormalRedirectsChecks = [...redirects.searx.normal]
-					searxngNormalRedirectsChecks = [...redirects.searxng.normal]
-					whoogleNormalRedirectsChecks = [...redirects.whoogle.normal]
-					librexNormalRedirectsChecks = [...redirects.librex.normal]
-					for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-						const a = searxNormalRedirectsChecks.indexOf(instance)
-						if (a > -1) searxNormalRedirectsChecks.splice(a, 1)
-
-						const b = searxngNormalRedirectsChecks.indexOf(instance)
-						if (b > -1) searxngNormalRedirectsChecks.splice(b, 1)
-
-						const c = whoogleNormalRedirectsChecks.indexOf(instance)
-						if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1)
-
-						const d = librexNormalRedirectsChecks.indexOf(instance)
-						if (d > -1) librexNormalRedirectsChecks.splice(d, 1)
-					}
-					browser.storage.local.set(
-						{
-							disableSearch: false,
-							searchFrontend: "searxng",
-							searchRedirects: redirects,
-							searxngCustomSettings: false,
-
-							whoogleNormalRedirectsChecks,
-							whoogleNormalCustomRedirects: [],
-
-							whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
-							whoogleTorCustomRedirects: [],
-
-							whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
-							whoogleI2pCustomRedirects: [],
-
-							whoogleLokiRedirectsChecks: [...redirects.whoogle.loki],
-							whoogleLokiCustomRedirects: [],
-
-							searxNormalRedirectsChecks,
-							searxNormalCustomRedirects: [],
-
-							searxTorRedirectsChecks: [...redirects.searx.tor],
-							searxTorCustomRedirects: [],
-
-							searxI2pRedirectsChecks: [...redirects.searx.i2p],
-							searxI2pCustomRedirects: [],
-
-							searxLokiRedirectsChecks: [...redirects.searx.loki],
-							searxLokiCustomRedirects: [],
-
-							searxngNormalRedirectsChecks,
-							searxngNormalCustomRedirects: [],
-
-							searxngTorRedirectsChecks: [...redirects.searxng.tor],
-							searxngTorCustomRedirects: [],
-
-							searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
-							searxngI2pCustomRedirects: [],
-
-							searxngLokiRedirectsChecks: [...redirects.searxng.loki],
-							searxngLokiCustomRedirects: [],
-
-							librexNormalRedirectsChecks,
-							librexNormalCustomRedirects: [],
-
-							librexTorRedirectsChecks: [...redirects.librex.tor],
-							librexTorCustomRedirects: [],
-
-							librexI2pRedirectsChecks: [...redirects.librex.i2p],
-							librexI2pCustomRedirects: [],
-
-							librexLokiRedirectsChecks: [...redirects.librex.loki],
-							librexLokiCustomRedirects: [],
-						},
-						() => resolve()
-					)
-				})
-			})
-	})
-}
-
-export default {
-	setRedirects,
-	initSearxCookies,
-	initSearxngCookies,
-	initLibrexCookies,
-	redirect,
-	initDefaults,
-	switchInstance,
-}