about summary refs log tree commit diff stats
path: root/src/assets/javascripts/lbry.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/lbry.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/lbry.js')
-rw-r--r--src/assets/javascripts/lbry.js280
1 files changed, 143 insertions, 137 deletions
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js
index cfdf1bb0..7f39b734 100644
--- a/src/assets/javascripts/lbry.js
+++ b/src/assets/javascripts/lbry.js
@@ -1,8 +1,8 @@
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
 
-import utils from './utils.js'
+import utils from "./utils.js"
 
-let targets = ["odysee.com"];
+let targets = ["odysee.com"]
 
 const frontends = new Array("librarian")
 const protocols = new Array("normal", "tor", "i2p", "loki")
@@ -10,160 +10,166 @@ 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.librarian = val;
-        librarianNormalRedirectsChecks = [...redirects.librarian.normal];
-        for (const instance of r.cloudflareBlackList) {
-            const a = librarianNormalRedirectsChecks.indexOf(instance);
-            if (a > -1) librarianNormalRedirectsChecks.splice(a, 1);
-        }
-        browser.storage.local.set({
-            lbryTargetsRedirects: redirects,
-            librarianNormalRedirectsChecks
-        })
-    })
+	browser.storage.local.get("cloudflareBlackList", r => {
+		redirects.librarian = val
+		librarianNormalRedirectsChecks = [...redirects.librarian.normal]
+		for (const instance of r.cloudflareBlackList) {
+			const a = librarianNormalRedirectsChecks.indexOf(instance)
+			if (a > -1) librarianNormalRedirectsChecks.splice(a, 1)
+		}
+		browser.storage.local.set({
+			lbryTargetsRedirects: redirects,
+			librarianNormalRedirectsChecks,
+		})
+	})
 }
 
-let
-    disableLbryTargets,
-    protocol,
-    protocolFallback,
-    lbryTargetsRedirects,
-    librarianNormalRedirectsChecks,
-    librarianNormalCustomRedirects,
-    librarianTorRedirectsChecks,
-    librarianTorCustomRedirects,
-    librarianI2pRedirectsChecks,
-    librarianI2pCustomRedirects,
-    librarianLokiCustomRedirects;
+let disableLbryTargets,
+	protocol,
+	protocolFallback,
+	lbryTargetsRedirects,
+	librarianNormalRedirectsChecks,
+	librarianNormalCustomRedirects,
+	librarianTorRedirectsChecks,
+	librarianTorCustomRedirects,
+	librarianI2pRedirectsChecks,
+	librarianI2pCustomRedirects,
+	librarianLokiCustomRedirects
 
 function init() {
-    return new Promise(resolve => {
-        browser.storage.local.get(
-            [
-                "disableLbryTargets",
-                "protocol",
-                "protocolFallback",
-                "lbryTargetsRedirects",
-                "librarianNormalRedirectsChecks",
-                "librarianNormalCustomRedirects",
-                "librarianTorRedirectsChecks",
-                "librarianTorCustomRedirects",
-                "librarianI2pRedirectsChecks",
-                "librarianI2pCustomRedirects",
-                "librarianLokiCustomRedirects"
-            ],
-            r => {
-                disableLbryTargets = r.disableLbryTargets;
-                protocol = r.protocol;
-                protocolFallback = r.protocolFallback;
-                lbryTargetsRedirects = r.lbryTargetsRedirects;
-                librarianNormalRedirectsChecks = r.librarianNormalRedirectsChecks;
-                librarianNormalCustomRedirects = r.librarianNormalCustomRedirects;
-                librarianTorRedirectsChecks = r.librarianTorRedirectsChecks;
-                librarianTorCustomRedirects = r.librarianTorCustomRedirects;
-                librarianI2pRedirectsChecks = r.librarianI2pRedirectsChecks;
-                librarianI2pCustomRedirects = r.librarianI2pCustomRedirects;
-                librarianLokiCustomRedirects = r.librarianLokiCustomRedirects;
-                resolve();
-            }
-        )
-    })
+	return new Promise(resolve => {
+		browser.storage.local.get(
+			[
+				"disableLbryTargets",
+				"protocol",
+				"protocolFallback",
+				"lbryTargetsRedirects",
+				"librarianNormalRedirectsChecks",
+				"librarianNormalCustomRedirects",
+				"librarianTorRedirectsChecks",
+				"librarianTorCustomRedirects",
+				"librarianI2pRedirectsChecks",
+				"librarianI2pCustomRedirects",
+				"librarianLokiCustomRedirects",
+			],
+			r => {
+				disableLbryTargets = r.disableLbryTargets
+				protocol = r.protocol
+				protocolFallback = r.protocolFallback
+				lbryTargetsRedirects = r.lbryTargetsRedirects
+				librarianNormalRedirectsChecks = r.librarianNormalRedirectsChecks
+				librarianNormalCustomRedirects = r.librarianNormalCustomRedirects
+				librarianTorRedirectsChecks = r.librarianTorRedirectsChecks
+				librarianTorCustomRedirects = r.librarianTorCustomRedirects
+				librarianI2pRedirectsChecks = r.librarianI2pRedirectsChecks
+				librarianI2pCustomRedirects = r.librarianI2pCustomRedirects
+				librarianLokiCustomRedirects = r.librarianLokiCustomRedirects
+				resolve()
+			}
+		)
+	})
 }
-init();
+init()
 browser.storage.onChanged.addListener(init)
 
 function all() {
-    return [
-        ...redirects.librarian.normal,
-        ...redirects.librarian.tor,
-        ...librarianNormalCustomRedirects,
-        ...librarianTorCustomRedirects,
-        ...librarianI2pCustomRedirects,
-        ...librarianLokiCustomRedirects
-    ];
+	return [...redirects.librarian.normal, ...redirects.librarian.tor, ...librarianNormalCustomRedirects, ...librarianTorCustomRedirects, ...librarianI2pCustomRedirects, ...librarianLokiCustomRedirects]
 }
 
 function switchInstance(url, disableOverride) {
-    return new Promise(async resolve => {
-        await init();
-        if (disableLbryTargets && !disableOverride) { resolve(); return; }
-        const protocolHost = utils.protocolHost(url);
-        if (!all().includes(protocolHost)) { resolve(); return; }
-
-        let instancesList = [];
-        if (protocol == 'loki') instancesList = [...librarianLokiCustomRedirects];
-        else if (protocol == 'i2p') instancesList = [...librarianI2pCustomRedirects];
-        else if (protocol == 'tor') instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects];
-        if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
-            instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects];
-        }
-
-        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 (disableLbryTargets && !disableOverride) {
+			resolve()
+			return
+		}
+		const protocolHost = utils.protocolHost(url)
+		if (!all().includes(protocolHost)) {
+			resolve()
+			return
+		}
+
+		let instancesList = []
+		if (protocol == "loki") instancesList = [...librarianLokiCustomRedirects]
+		else if (protocol == "i2p") instancesList = [...librarianI2pCustomRedirects]
+		else if (protocol == "tor") instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects]
+		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+			instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects]
+		}
+
+		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 redirect(url, type, initiator, disableOverride) {
-    if (disableLbryTargets && !disableOverride) return;
-    if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) return;
-    if (!targets.includes(url.host)) return;
-    if (type != "main_frame") return;
-
-    let instancesList = [];
-    if (protocol == 'loki') instancesList = [...librarianLokiCustomRedirects];
-    else if (protocol == 'i2p') instancesList = [...librarianI2pCustomRedirects];
-    else if (protocol == 'tor') instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects];
-    if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
-        instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects];
-    }
-    if (instancesList.length === 0) return;
-
-    const randomInstance = utils.getRandomInstance(instancesList);
-    return `${randomInstance}${url.pathname}${url.search}`;
+	if (disableLbryTargets && !disableOverride) return
+	if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) return
+	if (!targets.includes(url.host)) return
+	if (type != "main_frame") return
+
+	let instancesList = []
+	if (protocol == "loki") instancesList = [...librarianLokiCustomRedirects]
+	else if (protocol == "i2p") instancesList = [...librarianI2pCustomRedirects]
+	else if (protocol == "tor") instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects]
+	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+		instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects]
+	}
+	if (instancesList.length === 0) return
+
+	const randomInstance = utils.getRandomInstance(instancesList)
+	return `${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({
-                disableLbryTargets: true,
-                lbryTargetsRedirects: redirects,
-
-                librarianNormalRedirectsChecks: [...redirects.librarian.normal],
-                librarianNormalCustomRedirects: [],
-
-                librarianTorRedirectsChecks: [...redirects.librarian.tor],
-                librarianTorCustomRedirects: [],
-
-                librarianI2pRedirectsChecks: [...redirects.librarian.i2p],
-                librarianI2pCustomRedirects: [],
-
-                librarianLokiRedirectsChecks: [...redirects.librarian.loki],
-                librarianLokiCustomRedirects: []
-            }, () => 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(
+					{
+						disableLbryTargets: true,
+						lbryTargetsRedirects: redirects,
+
+						librarianNormalRedirectsChecks: [...redirects.librarian.normal],
+						librarianNormalCustomRedirects: [],
+
+						librarianTorRedirectsChecks: [...redirects.librarian.tor],
+						librarianTorCustomRedirects: [],
+
+						librarianI2pRedirectsChecks: [...redirects.librarian.i2p],
+						librarianI2pCustomRedirects: [],
+
+						librarianLokiRedirectsChecks: [...redirects.librarian.loki],
+						librarianLokiCustomRedirects: [],
+					},
+					() => resolve()
+				)
+			})
+	})
 }
 
 export default {
-    setRedirects,
-    switchInstance,
-    redirect,
-    initDefaults,
-};
+	setRedirects,
+	switchInstance,
+	redirect,
+	initDefaults,
+}