about summary refs log tree commit diff stats
path: root/src/assets/javascripts/imdb.js
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-26 22:28:50 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-26 22:28:50 +0100
commit2a0596f08fb54e2faef4bcb4548a28f5837fc067 (patch)
treecf5851f95c37da269a561623cee0d3967ca321ec /src/assets/javascripts/imdb.js
parentI should really inspect diffs before commiting (diff)
downloadlibredirect-2a0596f08fb54e2faef4bcb4548a28f5837fc067.zip
Many things
Made all instances updateable

Added hyperpipe

Closes https://github.com/libredirect/libredirect/issues/398

Added cloudtube

Closes https://github.com/libredirect/libredirect/issues/397

Start using prettier
Diffstat (limited to 'src/assets/javascripts/imdb.js')
-rw-r--r--src/assets/javascripts/imdb.js329
1 files changed, 171 insertions, 158 deletions
diff --git a/src/assets/javascripts/imdb.js b/src/assets/javascripts/imdb.js
index 2a8ac2f6..9981f1b9 100644
--- a/src/assets/javascripts/imdb.js
+++ b/src/assets/javascripts/imdb.js
@@ -1,10 +1,8 @@
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
 
-import utils from './utils.js'
+import utils from "./utils.js"
 
-const targets = [
-    /^https?:\/{2}(?:www\.|)imdb\.com.*/
-];
+const targets = [/^https?:\/{2}(?:www\.|)imdb\.com.*/]
 
 const frontends = new Array("libremdb")
 const protocols = new Array("normal", "tor", "i2p", "loki")
@@ -12,182 +10,197 @@ 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]] = []
-    }
+	redirects[frontends[i]] = {}
+	for (let x = 0; x < protocols.length; x++) {
+		redirects[frontends[i]][protocols[x]] = []
+	}
 }
 
 function setRedirects(val) {
-    browser.storage.local.get('cloudflareBlackList', r => {
-        redirects.libremdb = val;
-        libremdbNormalRedirectsChecks = [...redirects.libremdb.normal];
-        for (const instance of r.cloudflareBlackList) {
-            const a = libremdbNormalRedirectsChecks.indexOf(instance);
-            if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1);
-        }
-        browser.storage.local.set({
-            imdbRedirects: redirects,
-            libremdbNormalRedirectsChecks
-        })
-    })
+	browser.storage.local.get("cloudflareBlackList", r => {
+		redirects.libremdb = val
+		libremdbNormalRedirectsChecks = [...redirects.libremdb.normal]
+		for (const instance of r.cloudflareBlackList) {
+			const a = libremdbNormalRedirectsChecks.indexOf(instance)
+			if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1)
+		}
+		browser.storage.local.set({
+			imdbRedirects: redirects,
+			libremdbNormalRedirectsChecks,
+		})
+	})
 }
 
-let
-    disableImdb,
-    protocol,
-    protocolFallback,
-    imdbRedirects,
-    libremdbNormalRedirectsChecks,
-    libremdbNormalCustomRedirects,
-    libremdbTorRedirectsChecks,
-    libremdbTorCustomRedirects,
-    libremdbI2pCustomRedirects,
-    libremdbLokiCustomRedirects;
+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();
-            }
-        )
-    })
+	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();
+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}`;
+	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}`);
-    })
+	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}`);
-    })
+	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.set({
-                disableImdb: true,
-                imdbRedirects: redirects,
-
-                libremdbNormalRedirectsChecks: [...redirects.libremdb.normal],
-                libremdbNormalCustomRedirects: [],
-
-                libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
-                libremdbTorCustomRedirects: [],
-
-                libremdbI2pRedirectsChecks: [],
-                libremdbI2pCustomRedirects: [],
-
-                libremdbLokiRedirectsChecks: [],
-                libremdbLokiCustomRedirects: []
-            }, () => resolve());
-        });
-    })
+	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.set(
+					{
+						disableImdb: true,
+						imdbRedirects: redirects,
+
+						libremdbNormalRedirectsChecks: [...redirects.libremdb.normal],
+						libremdbNormalCustomRedirects: [],
+
+						libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
+						libremdbTorCustomRedirects: [],
+
+						libremdbI2pRedirectsChecks: [],
+						libremdbI2pCustomRedirects: [],
+
+						libremdbLokiRedirectsChecks: [],
+						libremdbLokiCustomRedirects: [],
+					},
+					() => resolve()
+				)
+			})
+	})
 }
 
 export default {
-    setRedirects,
+	setRedirects,
 
-    redirect,
-    reverse,
-    switchInstance,
+	redirect,
+	reverse,
+	switchInstance,
 
-    initDefaults
-};
+	initDefaults,
+}