about summary refs log tree commit diff stats
path: root/src/assets/javascripts/imdb.js
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-09-29 18:32:03 +0100
committerHygna <hygna@proton.me>2022-09-29 18:32:03 +0100
commitf1b8b64c48fede90ee9c828c1b82e641c0fe653d (patch)
tree44b55dfde203a223d57e6dcfd717dad7614e3b54 /src/assets/javascripts/imdb.js
parentUnify cookies (diff)
downloadlibredirect-f1b8b64c48fede90ee9c828c1b82e641c0fe653d.zip
Changes:
Improved instance fetcher

Added instance updating

Fix a few bugs
Diffstat (limited to 'src/assets/javascripts/imdb.js')
-rw-r--r--src/assets/javascripts/imdb.js216
1 files changed, 0 insertions, 216 deletions
diff --git a/src/assets/javascripts/imdb.js b/src/assets/javascripts/imdb.js
deleted file mode 100644
index 57368557..00000000
--- a/src/assets/javascripts/imdb.js
+++ /dev/null
@@ -1,216 +0,0 @@
-window.browser = window.browser || window.chrome
-
-import utils from "./utils.js"
-
-const targets = [/^https?:\/{2}(?:www\.|)imdb\.com.*/]
-
-const frontends = new Array("libremdb")
-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) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.libremdb = val
-		libremdbNormalRedirectsChecks = [...redirects.libremdb.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = libremdbNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			imdbRedirects: redirects,
-			libremdbNormalRedirectsChecks,
-			libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
-			libremdbI2pRedirectsChecks: [...redirects.libremdb.i2p],
-			libremdbLokiRedirectsChecks: [...redirects.libremdb.loki],
-		})
-	})
-}
-
-let disableImdb,
-	protocol,
-	protocolFallback,
-	imdbRedirects,
-	libremdbNormalRedirectsChecks,
-	libremdbNormalCustomRedirects,
-	libremdbTorRedirectsChecks,
-	libremdbTorCustomRedirects,
-	libremdbI2pCustomRedirects,
-	libremdbLokiCustomRedirects
-
-function init() {
-	return new Promise(async resolve => {
-		browser.storage.local.get(
-			[
-				"disableImdb",
-				"protocol",
-				"protocolFallback",
-				"imdbRedirects",
-				"libremdbNormalRedirectsChecks",
-				"libremdbNormalCustomRedirects",
-				"libremdbTorRedirectsChecks",
-				"libremdbTorCustomRedirects",
-				"libremdbI2pCustomRedirects",
-				"libremdbLokiCustomRedirects",
-			],
-			r => {
-				disableImdb = r.disableImdb
-				protocol = r.protocol
-				protocolFallback = r.protocolFallback
-				imdbRedirects = r.imdbRedirects
-				libremdbNormalRedirectsChecks = r.libremdbNormalRedirectsChecks
-				libremdbNormalCustomRedirects = r.libremdbNormalCustomRedirects
-				libremdbTorRedirectsChecks = r.libremdbTorRedirectsChecks
-				libremdbTorCustomRedirects = r.libremdbTorCustomRedirects
-				libremdbI2pCustomRedirects = r.libremdbI2pCustomRedirects
-				libremdbLokiCustomRedirects = r.libremdbLokiCustomRedirects
-				resolve()
-			}
-		)
-	})
-}
-
-init()
-browser.storage.onChanged.addListener(init)
-
-function redirect(url, type, initiator, disableOverride) {
-	if (disableImdb && !disableOverride) return
-	if (url.pathname == "/") return
-	if (type != "main_frame") return
-	const all = [...imdbRedirects.libremdb.normal, ...libremdbNormalCustomRedirects]
-	if (initiator && (all.includes(initiator.origin) || targets.includes(initiator.host))) return
-	if (!targets.some(rx => rx.test(url.href))) return
-
-	let instancesList = []
-	if (protocol == "loki") instancesList = [...libremdbLokiCustomRedirects]
-	else if (protocol == "i2p") instancesList = [...libremdbI2pCustomRedirects]
-	else if (protocol == "tor") instancesList = [...libremdbTorRedirectsChecks, ...libremdbTorCustomRedirects]
-	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-		instancesList = [...libremdbNormalRedirectsChecks, ...libremdbNormalCustomRedirects]
-	}
-	if (instancesList.length === 0) {
-		return
-	}
-
-	const randomInstance = utils.getRandomInstance(instancesList)
-	return `${randomInstance}${url.pathname}`
-}
-
-function reverse(url) {
-	return new Promise(async resolve => {
-		await init()
-		let protocolHost = utils.protocolHost(url)
-		const all = [
-			...imdbRedirects.libremdb.normal,
-			...imdbRedirects.libremdb.tor,
-			...libremdbNormalCustomRedirects,
-			...libremdbTorCustomRedirects,
-			...libremdbI2pCustomRedirects,
-			...libremdbLokiCustomRedirects,
-		]
-		if (!all.includes(protocolHost)) {
-			resolve()
-			return
-		}
-
-		resolve(`https://imdb.com${url.pathname}${url.search}`)
-	})
-}
-
-function switchInstance(url, disableOverride) {
-	return new Promise(async resolve => {
-		await init()
-		if (disableImdb && !disableOverride) {
-			resolve()
-			return
-		}
-		let protocolHost = utils.protocolHost(url)
-		const all = [
-			...imdbRedirects.libremdb.tor,
-			...imdbRedirects.libremdb.normal,
-
-			...libremdbNormalCustomRedirects,
-			...libremdbTorCustomRedirects,
-			...libremdbI2pCustomRedirects,
-			...libremdbLokiCustomRedirects,
-		]
-		if (!all.includes(protocolHost)) {
-			resolve()
-			return
-		}
-
-		let instancesList = []
-		if (protocol == "loki") instancesList = [...libremdbLokiCustomRedirects]
-		else if (protocol == "i2p") instancesList = [...libremdbI2pCustomRedirects]
-		else if (protocol == "tor") instancesList = [...libremdbTorRedirectsChecks, ...libremdbTorCustomRedirects]
-		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
-			instancesList = [...libremdbNormalRedirectsChecks, ...libremdbNormalCustomRedirects]
-		}
-
-		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 => {
-					libremdbNormalRedirectsChecks = [...redirects.libremdb.normal]
-					for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-						const a = libremdbNormalRedirectsChecks.indexOf(instance)
-						if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1)
-					}
-					browser.storage.local.set(
-						{
-							disableImdb: true,
-							imdbRedirects: redirects,
-
-							libremdbNormalRedirectsChecks,
-							libremdbNormalCustomRedirects: [],
-
-							libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
-							libremdbTorCustomRedirects: [],
-
-							libremdbI2pRedirectsChecks: [],
-							libremdbI2pCustomRedirects: [],
-
-							libremdbLokiRedirectsChecks: [],
-							libremdbLokiCustomRedirects: [],
-						},
-						() => resolve()
-					)
-				})
-			})
-	})
-}
-
-export default {
-	setRedirects,
-
-	redirect,
-	reverse,
-	switchInstance,
-
-	initDefaults,
-}