about summary refs log tree commit diff stats
path: root/src/assets/javascripts/sendTargets.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts/sendTargets.js')
-rw-r--r--src/assets/javascripts/sendTargets.js306
1 files changed, 159 insertions, 147 deletions
diff --git a/src/assets/javascripts/sendTargets.js b/src/assets/javascripts/sendTargets.js
index 2ea95d21..ba892fe3 100644
--- a/src/assets/javascripts/sendTargets.js
+++ b/src/assets/javascripts/sendTargets.js
@@ -1,12 +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}send\.libredirect\.invalid\/$/,
-    /^ https ?: \/\/send\.firefox\.com\/$/,
-    /^https?:\/{2}sendfiles\.online\/$/
-];
+const targets = [/^https?:\/{2}send\.libredirect\.invalid\/$/, /^ https ?: \/\/send\.firefox\.com\/$/, /^https?:\/{2}sendfiles\.online\/$/]
 
 const frontends = new Array("send")
 const protocols = new Array("normal", "tor", "i2p", "loki")
@@ -14,167 +10,183 @@ 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.send = val;
-        sendNormalRedirectsChecks = [...redirects.send.normal];
-        for (const instance of r.cloudflareBlackList) {
-            const a = sendNormalRedirectsChecks.indexOf(instance);
-            if (a > -1) sendNormalRedirectsChecks.splice(a, 1);
-        }
-        browser.storage.local.set({
-            sendTargetsRedirects: redirects,
-            sendNormalRedirectsChecks,
-        })
-    })
+	browser.storage.local.get("cloudflareBlackList", r => {
+		redirects.send = val
+		sendNormalRedirectsChecks = [...redirects.send.normal]
+		for (const instance of r.cloudflareBlackList) {
+			const a = sendNormalRedirectsChecks.indexOf(instance)
+			if (a > -1) sendNormalRedirectsChecks.splice(a, 1)
+		}
+		browser.storage.local.set({
+			sendTargetsRedirects: redirects,
+			sendNormalRedirectsChecks,
+		})
+	})
 }
 
-let
-    disableSendTarget,
-    sendTargetsRedirects,
-    sendNormalRedirectsChecks,
-    sendNormalCustomRedirects,
-    sendTorRedirectsChecks,
-    sendTorCustomRedirects,
-    sendI2pCustomRedirects,
-    sendLokiCustomRedirects,
-    protocol,
-    protocolFallback;
+let disableSendTarget,
+	sendTargetsRedirects,
+	sendNormalRedirectsChecks,
+	sendNormalCustomRedirects,
+	sendTorRedirectsChecks,
+	sendTorCustomRedirects,
+	sendI2pCustomRedirects,
+	sendLokiCustomRedirects,
+	protocol,
+	protocolFallback
 
 function init() {
-    return new Promise(resolve => {
-        browser.storage.local.get(
-            [
-                "disableSendTarget",
-                "sendTargetsRedirects",
-                "protocol",
-                "protocolFallback",
-                "sendNormalRedirectsChecks",
-                "sendNormalCustomRedirects",
-                "sendTorRedirectsChecks",
-                "sendTorCustomRedirects",
-                "sendI2pCustomRedirects",
-                "sendLokiCustomRedirects"
-            ],
-            r => {
-                disableSendTarget = r.disableSendTarget;
-                sendTargetsRedirects = r.sendTargetsRedirects;
-                sendNormalRedirectsChecks = r.sendNormalRedirectsChecks;
-                sendNormalCustomRedirects = r.sendNormalCustomRedirects;
-                sendTorRedirectsChecks = r.sendTorRedirectsChecks;
-                sendTorCustomRedirects = r.sendTorCustomRedirects;
-                sendI2pCustomRedirects = r.sendI2pCustomRedirects;
-                sendLokiCustomRedirects = r.sendLokiCustomRedirects;
-                protocol = r.protocol;
-                protocolFallback = r.protocolFallback;
-                resolve();
-            }
-        )
-    })
+	return new Promise(resolve => {
+		browser.storage.local.get(
+			[
+				"disableSendTarget",
+				"sendTargetsRedirects",
+				"protocol",
+				"protocolFallback",
+				"sendNormalRedirectsChecks",
+				"sendNormalCustomRedirects",
+				"sendTorRedirectsChecks",
+				"sendTorCustomRedirects",
+				"sendI2pCustomRedirects",
+				"sendLokiCustomRedirects",
+			],
+			r => {
+				disableSendTarget = r.disableSendTarget
+				sendTargetsRedirects = r.sendTargetsRedirects
+				sendNormalRedirectsChecks = r.sendNormalRedirectsChecks
+				sendNormalCustomRedirects = r.sendNormalCustomRedirects
+				sendTorRedirectsChecks = r.sendTorRedirectsChecks
+				sendTorCustomRedirects = r.sendTorCustomRedirects
+				sendI2pCustomRedirects = r.sendI2pCustomRedirects
+				sendLokiCustomRedirects = r.sendLokiCustomRedirects
+				protocol = r.protocol
+				protocolFallback = r.protocolFallback
+				resolve()
+			}
+		)
+	})
 }
 
-init();
+init()
 browser.storage.onChanged.addListener(init)
 
 function all() {
-    return [
-        ...sendTargetsRedirects.send.normal,
-        ...sendTargetsRedirects.send.tor,
-        ...sendNormalCustomRedirects,
-        ...sendTorRedirectsChecks,
-        ...sendTorCustomRedirects,
-        ...sendI2pCustomRedirects,
-        ...sendLokiCustomRedirects
-    ];
+	return [
+		...sendTargetsRedirects.send.normal,
+		...sendTargetsRedirects.send.tor,
+		...sendNormalCustomRedirects,
+		...sendTorRedirectsChecks,
+		...sendTorCustomRedirects,
+		...sendI2pCustomRedirects,
+		...sendLokiCustomRedirects,
+	]
 }
 
 function switchInstance(url, disableOverride) {
-    return new Promise(async resolve => {
-        await init();
-        if (disableSendTarget && !disableOverride) { resolve(); return; }
-        const protocolHost = utils.protocolHost(url);
-        if (!all().includes(protocolHost)) { resolve(); return; }
-        if (url.pathname != '/') { resolve(); return; }
-
-        let instancesList = [];
-        if (protocol == 'loki') instancesList = [...sendLokiCustomRedirects];
-        else if (protocol == 'i2p') instancesList = [...sendI2pCustomRedirects];
-        else if (protocol == 'tor') instancesList = [...sendTorRedirectsChecks, ...sendTorCustomRedirects];
-        if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
-            instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects];
-        }
-
-        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 (disableSendTarget && !disableOverride) {
+			resolve()
+			return
+		}
+		const protocolHost = utils.protocolHost(url)
+		if (!all().includes(protocolHost)) {
+			resolve()
+			return
+		}
+		if (url.pathname != "/") {
+			resolve()
+			return
+		}
+
+		let instancesList = []
+		if (protocol == "loki") instancesList = [...sendLokiCustomRedirects]
+		else if (protocol == "i2p") instancesList = [...sendI2pCustomRedirects]
+		else if (protocol == "tor") instancesList = [...sendTorRedirectsChecks, ...sendTorCustomRedirects]
+		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+			instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects]
+		}
+
+		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 (disableSendTarget && !disableOverride) return;
-    if (type != "main_frame") return;
-    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 = [...sendLokiCustomRedirects];
-    else if (protocol == 'i2p') instancesList = [...sendI2pCustomRedirects];
-    else if (protocol == 'tor') instancesList = [...sendTorRedirectsChecks, ...sendTorCustomRedirects];
-    if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
-        instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects];
-    }
-    if (instancesList.length === 0) return;
-
-    const randomInstance = utils.getRandomInstance(instancesList);
-    return randomInstance;
+	if (disableSendTarget && !disableOverride) return
+	if (type != "main_frame") return
+	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 = [...sendLokiCustomRedirects]
+	else if (protocol == "i2p") instancesList = [...sendI2pCustomRedirects]
+	else if (protocol == "tor") instancesList = [...sendTorRedirectsChecks, ...sendTorCustomRedirects]
+	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+		instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects]
+	}
+	if (instancesList.length === 0) return
+
+	const randomInstance = utils.getRandomInstance(instancesList)
+	return randomInstance
 }
 
 function initDefaults() {
-    return new Promise(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', async r => {
-                sendNormalRedirectsChecks = [...redirects.send.normal];
-                for (const instance of r.cloudflareBlackList) {
-                    let i = sendNormalRedirectsChecks.indexOf(instance);
-                    if (i > -1) sendNormalRedirectsChecks.splice(i, 1);
-                }
-                browser.storage.local.set({
-                    disableSendTarget: false,
-                    sendTargetsRedirects: redirects,
-
-                    sendNormalRedirectsChecks: sendNormalRedirectsChecks,
-                    sendNormalCustomRedirects: [],
-
-                    sendTorRedirectsChecks: [...redirects.send.tor],
-                    sendTorCustomRedirects: [],
-
-                    sendI2pRedirectsChecks: [...redirects.send.i2p],
-                    sendI2pCustomRedirects: [],
-
-                    sendLokiRedirectsChecks: [...redirects.send.loki],
-                    sendLokiCustomRedirects: []
-                }, () => resolve())
-            })
-        })
-    })
+	return new Promise(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", async r => {
+					sendNormalRedirectsChecks = [...redirects.send.normal]
+					for (const instance of r.cloudflareBlackList) {
+						let i = sendNormalRedirectsChecks.indexOf(instance)
+						if (i > -1) sendNormalRedirectsChecks.splice(i, 1)
+					}
+					browser.storage.local.set(
+						{
+							disableSendTarget: false,
+							sendTargetsRedirects: redirects,
+
+							sendNormalRedirectsChecks: sendNormalRedirectsChecks,
+							sendNormalCustomRedirects: [],
+
+							sendTorRedirectsChecks: [...redirects.send.tor],
+							sendTorCustomRedirects: [],
+
+							sendI2pRedirectsChecks: [...redirects.send.i2p],
+							sendI2pCustomRedirects: [],
+
+							sendLokiRedirectsChecks: [...redirects.send.loki],
+							sendLokiCustomRedirects: [],
+						},
+						() => resolve()
+					)
+				})
+			})
+	})
 }
 
 export default {
-    setRedirects,
-    redirect,
-    switchInstance,
-    initDefaults,
-};
+	setRedirects,
+	redirect,
+	switchInstance,
+	initDefaults,
+}