about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-27 19:17:50 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-27 19:17:50 +0100
commit532e01b49f44b77d78f12d8aa52a8703cb224358 (patch)
tree673bb113175559940889851a848b91354bce7eb9 /src/assets/javascripts
parentRemoved piped.json (diff)
downloadlibredirect-532e01b49f44b77d78f12d8aa52a8703cb224358.zip
Fallback on codeberg for instance fetching
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/utils.js96
1 files changed, 52 insertions, 44 deletions
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 7a97dcdb..9a7d37b3 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -40,53 +40,61 @@ async function initcloudflareBlackList() {
 function updateInstances() {
 	return new Promise(async resolve => {
 		let http = new XMLHttpRequest()
+		let fallback = new XMLHttpRequest()
 		http.open("GET", "https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json", false)
 		http.send(null)
-		if (http.status === 200) {
-			await initcloudflareBlackList()
-			const instances = JSON.parse(http.responseText)
-
-			youtubeHelper.setRedirects({
-				invidious: instances.invidious,
-				piped: instances.piped,
-				pipedMaterial: instances.pipedMaterial,
-			})
-			twitterHelper.setRedirects(instances.nitter)
-			instagramHelper.setRedirects(instances.bibliogram)
-			redditHelper.setRedirects({
-				libreddit: instances.libreddit,
-				teddit: instances.teddit,
-			})
-			translateHelper.setRedirects({
-				simplyTranslate: instances.simplyTranslate,
-				lingva: instances.lingva,
-			})
-			searchHelper.setRedirects({
-				searx: instances.searx,
-				searxng: instances.searxng,
-				whoogle: instances.whoogle,
-				librex: instances.librex,
-			})
-			wikipediaHelper.setRedirects(instances.wikiless)
-			mediumHelper.setRedirects(instances.scribe)
-			quoraHelper.setRedirects(instances.quetre)
-			libremdbHelper.setRedirects(instances.libremdb)
-			sendTargetsHelper.setRedirects(instances.send)
-			tiktokHelper.setRedirects(instances.proxiTok)
-			lbryHelper.setRedirects(instances.librarian)
-			reutersHelper.setRedirects(instances.neuters)
-			youtubeMusicHelper.setRedirects({
-				beatbump: instances.beatbump,
-				hyperpipe: instances.hyperpipe,
-			})
-			mapsHelper.setRedirects(instances.facil)
-			peertubeHelper.setRedirects(instances.simpleertube)
-
-			console.info("Successfully updated Instances")
-			resolve(true)
-			return
+		if (http.status != 200) {
+			fallback.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/data.json", false)
+			fallback.send(null)
+			if (fallback.status === 200) {
+				http = fallback
+			} else {
+				resolve()
+				return
+			}
 		}
-		resolve()
+		await initcloudflareBlackList()
+		const instances = JSON.parse(http.responseText)
+
+		youtubeHelper.setRedirects({
+			invidious: instances.invidious,
+			piped: instances.piped,
+			pipedMaterial: instances.pipedMaterial,
+		})
+		twitterHelper.setRedirects(instances.nitter)
+		instagramHelper.setRedirects(instances.bibliogram)
+		redditHelper.setRedirects({
+			libreddit: instances.libreddit,
+			teddit: instances.teddit,
+		})
+		translateHelper.setRedirects({
+			simplyTranslate: instances.simplyTranslate,
+			lingva: instances.lingva,
+		})
+		searchHelper.setRedirects({
+			searx: instances.searx,
+			searxng: instances.searxng,
+			whoogle: instances.whoogle,
+			librex: instances.librex,
+		})
+		wikipediaHelper.setRedirects(instances.wikiless)
+		mediumHelper.setRedirects(instances.scribe)
+		quoraHelper.setRedirects(instances.quetre)
+		libremdbHelper.setRedirects(instances.libremdb)
+		sendTargetsHelper.setRedirects(instances.send)
+		tiktokHelper.setRedirects(instances.proxiTok)
+		lbryHelper.setRedirects(instances.librarian)
+		reutersHelper.setRedirects(instances.neuters)
+		youtubeMusicHelper.setRedirects({
+			beatbump: instances.beatbump,
+			hyperpipe: instances.hyperpipe,
+		})
+		mapsHelper.setRedirects(instances.facil)
+		peertubeHelper.setRedirects(instances.simpleertube)
+
+		console.info("Successfully updated Instances")
+		resolve(true)
+		return
 	})
 }