about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-08-03 14:12:03 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-08-03 14:12:03 +0100
commit0cd1947ad90b7a3ea16dcab41f11b5be0c5a47fd (patch)
tree6a244841969355dfec34e9cbc334e184d0fac71d /src/assets
parentMerge pull request 'Latency threshold and offline instances' (https://codeber... (diff)
downloadlibredirect-0cd1947ad90b7a3ea16dcab41f11b5be0c5a47fd.zip
Update blacklist pt1
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/search.js2
-rw-r--r--src/assets/javascripts/utils.js46
2 files changed, 45 insertions, 3 deletions
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index 64b56caa..8e92e9c6 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -7,7 +7,7 @@ const targets = [/^https?:\/{2}search\.libredirect\.invalid/]
 const frontends = new Array("searx", "searxng", "whoogle", "librex")
 const protocols = new Array("normal", "tor", "i2p", "loki")
 
-const redirects = {}
+let redirects = {}
 
 for (let i = 0; i < frontends.length; i++) {
 	redirects[frontends[i]] = {}
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 50ada765..81fb181f 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -28,14 +28,56 @@ let authenticateBlackList = []
 let offlineBlackList = []
 async function initBlackList() {
 	return new Promise(resolve => {
+	browser.storage.local.get([
+		"cloudflareBlackList",
+		"authenticateBlackList",
+		"offlineBlackList"
+	],
+	r => {
+		cloudflareBlackList = r.cloudflareBlackList
+		authenticateBlackList = r.authenticateBlackList
+		offlineBlackList = r.offlineBlackList
+	})
+		if (cloudflareBlackList.length == 0) {
 		fetch("/instances/blacklist.json")
 			.then(response => response.text())
 			.then(data => {
 				cloudflareBlackList = JSON.parse(data).cloudflare
 				authenticateBlackList = JSON.parse(data).authenticate
 				offlineBlackList = JSON.parse(data).offline
-				resolve()
 			})
+		}
+		console.log(offlineBlackList)
+		resolve()
+	})
+}
+
+function updateBlackList() {
+	return new Promise(async resolve => {
+		let http = new XMLHttpRequest()
+		let fallback = new XMLHttpRequest()
+		http.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/blacklist.json", false)
+		http.send(null)
+		if (http.status != 200) {
+			fallback.open("GET", "https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/blacklist.json", false)
+			fallback.send(null)
+			if (fallback.status === 200) {
+				http = fallback
+			} else {
+				resolve()
+				return
+			}
+		}
+		const blackList = JSON.parse(http.responseText)
+		browser.storage.local.set({
+			cloudflareBlackList: blackList.cloudflare,
+			authenticateBlackList: blackList.authenticate,
+			offlineBlackList: blackList.offline
+		})
+		cloudflareBlackList = blackList.cloudflare,
+		authenticateBlackList = blackList.authenticate,
+		offlineBlackList = blackList.offline
+		resolve()
 	})
 }
 
@@ -55,7 +97,7 @@ function updateInstances() {
 				return
 			}
 		}
-		await initBlackList()
+		await updateBlackList()
 		const instances = JSON.parse(http.responseText)
 
 		youtubeHelper.setRedirects({