about summary refs log tree commit diff stats
path: root/src/assets/javascripts/tiktok.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts/tiktok.js')
-rw-r--r--src/assets/javascripts/tiktok.js415
1 files changed, 216 insertions, 199 deletions
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index a5c14a27..ba4a9ff1 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.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\.|)tiktok\.com.*/
-];
+const targets = [/^https?:\/{2}(www\.|)tiktok\.com.*/]
 
 const frontends = new Array("proxiTok")
 const protocols = new Array("normal", "tor", "i2p", "loki")
@@ -12,232 +10,251 @@ 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.proxiTok = val;
-        proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal];
-        for (const instance of r.cloudflareBlackList) {
-            const a = proxiTokNormalRedirectsChecks.indexOf(instance);
-            if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1);
-        }
-        browser.storage.local.set({
-            tiktokRedirects: redirects,
-            proxiTokNormalRedirectsChecks
-        })
-    })
+	browser.storage.local.get("cloudflareBlackList", r => {
+		redirects.proxiTok = val
+		proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal]
+		for (const instance of r.cloudflareBlackList) {
+			const a = proxiTokNormalRedirectsChecks.indexOf(instance)
+			if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1)
+		}
+		browser.storage.local.set({
+			tiktokRedirects: redirects,
+			proxiTokNormalRedirectsChecks,
+		})
+	})
 }
 
 function initProxiTokCookies(test, from) {
-    return new Promise(async resolve => {
-        await init();
-        let protocolHost = utils.protocolHost(from);
-        if (![
-            ...proxiTokNormalRedirectsChecks,
-            ...proxiTokNormalCustomRedirects,
-            ...proxiTokTorRedirectsChecks,
-            ...proxiTokTorCustomRedirects,
-            ...proxiTokI2pCustomRedirects,
-            ...proxiTokLokiCustomRedirects,
-        ].includes(protocolHost)) resolve();
-
-        if (!test) {
-            let checkedInstances = [];
-            if (protocol == 'loki') checkedInstances = [...proxiTokI2pCustomRedirects];
-            else if (protocol == 'i2p') checkedInstances = [...proxiTokLokiCustomRedirects];
-            else if (protocol == 'tor') checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects];
-            if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') {
-                checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects];
-            }
-            await utils.copyCookie('proxitok', from, checkedInstances, 'theme');
-            await utils.copyCookie('proxitok', from, checkedInstances, 'api-legacy');
-        }
-        resolve(true);
-    })
+	return new Promise(async resolve => {
+		await init()
+		let protocolHost = utils.protocolHost(from)
+		if (
+			![
+				...proxiTokNormalRedirectsChecks,
+				...proxiTokNormalCustomRedirects,
+				...proxiTokTorRedirectsChecks,
+				...proxiTokTorCustomRedirects,
+				...proxiTokI2pCustomRedirects,
+				...proxiTokLokiCustomRedirects,
+			].includes(protocolHost)
+		)
+			resolve()
+
+		if (!test) {
+			let checkedInstances = []
+			if (protocol == "loki") checkedInstances = [...proxiTokI2pCustomRedirects]
+			else if (protocol == "i2p") checkedInstances = [...proxiTokLokiCustomRedirects]
+			else if (protocol == "tor") checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]
+			if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
+				checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
+			}
+			await utils.copyCookie("proxitok", from, checkedInstances, "theme")
+			await utils.copyCookie("proxitok", from, checkedInstances, "api-legacy")
+		}
+		resolve(true)
+	})
 }
 
 function pasteProxiTokCookies() {
-    return new Promise(async resolve => {
-        await init();
-        if (disableTiktok || protocol === undefined) { resolve(); return; }
-        let checkedInstances = [];
-        if (protocol == 'loki') checkedInstances = [...proxiTokI2pCustomRedirects];
-        else if (protocol == 'i2p') checkedInstances = [...proxiTokLokiCustomRedirects];
-        else if (protocol == 'tor') checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects];
-        if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') {
-            checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects];
-        }
-        utils.getCookiesFromStorage('proxitok', checkedInstances, 'theme');
-        utils.getCookiesFromStorage('proxitok', checkedInstances, 'api-legacy');
-        resolve();
-    })
+	return new Promise(async resolve => {
+		await init()
+		if (disableTiktok || protocol === undefined) {
+			resolve()
+			return
+		}
+		let checkedInstances = []
+		if (protocol == "loki") checkedInstances = [...proxiTokI2pCustomRedirects]
+		else if (protocol == "i2p") checkedInstances = [...proxiTokLokiCustomRedirects]
+		else if (protocol == "tor") checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]
+		if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
+			checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
+		}
+		utils.getCookiesFromStorage("proxitok", checkedInstances, "theme")
+		utils.getCookiesFromStorage("proxitok", checkedInstances, "api-legacy")
+		resolve()
+	})
 }
 
-let
-    disableTiktok,
-    protocol,
-    protocolFallback,
-    tiktokRedirects,
-    proxiTokNormalRedirectsChecks,
-    proxiTokNormalCustomRedirects,
-    proxiTokTorRedirectsChecks,
-    proxiTokTorCustomRedirects,
-    proxiTokI2pCustomRedirects,
-    proxiTokLokiCustomRedirects;
+let disableTiktok,
+	protocol,
+	protocolFallback,
+	tiktokRedirects,
+	proxiTokNormalRedirectsChecks,
+	proxiTokNormalCustomRedirects,
+	proxiTokTorRedirectsChecks,
+	proxiTokTorCustomRedirects,
+	proxiTokI2pCustomRedirects,
+	proxiTokLokiCustomRedirects
 
 function init() {
-    return new Promise(async resolve => {
-        browser.storage.local.get(
-            [
-                "disableTiktok",
-                "protocol",
-                "protocolFallback",
-                "tiktokRedirects",
-                "proxiTokNormalRedirectsChecks",
-                "proxiTokNormalCustomRedirects",
-                "proxiTokTorRedirectsChecks",
-                "proxiTokTorCustomRedirects",
-                "proxiTokI2pCustomRedirects",
-                "proxiTokLokiCustomRedirects"
-            ],
-            r => {
-                disableTiktok = r.disableTiktok;
-                protocol = r.protocol;
-                protocolFallback = r.protocolFallback;
-                tiktokRedirects = r.tiktokRedirects;
-                proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks;
-                proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects;
-                proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks;
-                proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects;
-                proxiTokI2pCustomRedirects = r.proxiTokI2pCustomRedirects;
-                proxiTokLokiCustomRedirects = r.proxiTokLokiCustomRedirects;
-                resolve();
-            }
-        )
-    })
+	return new Promise(async resolve => {
+		browser.storage.local.get(
+			[
+				"disableTiktok",
+				"protocol",
+				"protocolFallback",
+				"tiktokRedirects",
+				"proxiTokNormalRedirectsChecks",
+				"proxiTokNormalCustomRedirects",
+				"proxiTokTorRedirectsChecks",
+				"proxiTokTorCustomRedirects",
+				"proxiTokI2pCustomRedirects",
+				"proxiTokLokiCustomRedirects",
+			],
+			r => {
+				disableTiktok = r.disableTiktok
+				protocol = r.protocol
+				protocolFallback = r.protocolFallback
+				tiktokRedirects = r.tiktokRedirects
+				proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks
+				proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects
+				proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks
+				proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects
+				proxiTokI2pCustomRedirects = r.proxiTokI2pCustomRedirects
+				proxiTokLokiCustomRedirects = r.proxiTokLokiCustomRedirects
+				resolve()
+			}
+		)
+	})
 }
 
-init();
+init()
 browser.storage.onChanged.addListener(init)
 
 // https://www.tiktok.com/@keysikaspol/video/7061265241887345946
 // https://www.tiktok.com/@keysikaspol
 function redirect(url, type, initiator, disableOverride) {
-    if (disableTiktok && !disableOverride) return;
-    if (type != "main_frame") return;
-    const all = [
-        ...tiktokRedirects.proxiTok.normal,
-        ...proxiTokNormalCustomRedirects
-    ];
-    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 = [...proxiTokI2pCustomRedirects];
-    else if (protocol == 'i2p') instancesList = [...proxiTokLokiCustomRedirects];
-    else if (protocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects];
-    if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
-        instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects];
-    }
-    if (instancesList.length === 0) return;
-
-    const randomInstance = utils.getRandomInstance(instancesList);
-    return `${randomInstance}${url.pathname}`;
+	if (disableTiktok && !disableOverride) return
+	if (type != "main_frame") return
+	const all = [...tiktokRedirects.proxiTok.normal, ...proxiTokNormalCustomRedirects]
+	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 = [...proxiTokI2pCustomRedirects]
+	else if (protocol == "i2p") instancesList = [...proxiTokLokiCustomRedirects]
+	else if (protocol == "tor") instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]
+	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+		instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
+	}
+	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 = [
-            ...tiktokRedirects.proxiTok.normal,
-            ...tiktokRedirects.proxiTok.tor,
-            ...proxiTokNormalCustomRedirects,
-            ...proxiTokTorCustomRedirects,
-            ...proxiTokI2pCustomRedirects,
-            ...proxiTokLokiCustomRedirects
-        ];
-        if (!all.includes(protocolHost)) { resolve(); return; }
-
-        resolve(`https://tiktok.com${url.pathname}${url.search}`);
-    })
+	return new Promise(async resolve => {
+		await init()
+		let protocolHost = utils.protocolHost(url)
+		const all = [
+			...tiktokRedirects.proxiTok.normal,
+			...tiktokRedirects.proxiTok.tor,
+			...proxiTokNormalCustomRedirects,
+			...proxiTokTorCustomRedirects,
+			...proxiTokI2pCustomRedirects,
+			...proxiTokLokiCustomRedirects,
+		]
+		if (!all.includes(protocolHost)) {
+			resolve()
+			return
+		}
+
+		resolve(`https://tiktok.com${url.pathname}${url.search}`)
+	})
 }
 
 function switchInstance(url, disableOverride) {
-    return new Promise(async resolve => {
-        await init();
-        if (disableTiktok && !disableOverride) { resolve(); return; }
-        let protocolHost = utils.protocolHost(url);
-        const all = [
-            ...tiktokRedirects.proxiTok.tor,
-            ...tiktokRedirects.proxiTok.normal,
-
-            ...proxiTokNormalCustomRedirects,
-            ...proxiTokTorCustomRedirects,
-            ...proxiTokI2pCustomRedirects,
-            ...proxiTokLokiCustomRedirects
-        ];
-        if (!all.includes(protocolHost)) { resolve(); return; }
-
-        let instancesList = [];
-        if (protocol == 'loki') instancesList = [...proxiTokI2pCustomRedirects];
-        else if (protocol == 'i2p') instancesList = [...proxiTokLokiCustomRedirects];
-        else if (protocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects];
-        if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
-            instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects];
-        }
-
-        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 (disableTiktok && !disableOverride) {
+			resolve()
+			return
+		}
+		let protocolHost = utils.protocolHost(url)
+		const all = [
+			...tiktokRedirects.proxiTok.tor,
+			...tiktokRedirects.proxiTok.normal,
+
+			...proxiTokNormalCustomRedirects,
+			...proxiTokTorCustomRedirects,
+			...proxiTokI2pCustomRedirects,
+			...proxiTokLokiCustomRedirects,
+		]
+		if (!all.includes(protocolHost)) {
+			resolve()
+			return
+		}
+
+		let instancesList = []
+		if (protocol == "loki") instancesList = [...proxiTokI2pCustomRedirects]
+		else if (protocol == "i2p") instancesList = [...proxiTokLokiCustomRedirects]
+		else if (protocol == "tor") instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]
+		if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+			instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
+		}
+
+		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({
-                disableTiktok: false,
-
-                tiktokRedirects: redirects,
-
-                proxiTokNormalRedirectsChecks: [...redirects.proxiTok.normal],
-                proxiTokNormalCustomRedirects: [],
-
-                proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
-                proxiTokTorCustomRedirects: [],
-
-                proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p],
-                proxiTokI2pCustomRedirects: [],
-
-                proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki],
-                proxiTokLokiCustomRedirects: []
-            }, () => 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(
+					{
+						disableTiktok: false,
+
+						tiktokRedirects: redirects,
+
+						proxiTokNormalRedirectsChecks: [...redirects.proxiTok.normal],
+						proxiTokNormalCustomRedirects: [],
+
+						proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
+						proxiTokTorCustomRedirects: [],
+
+						proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p],
+						proxiTokI2pCustomRedirects: [],
+
+						proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki],
+						proxiTokLokiCustomRedirects: [],
+					},
+					() => resolve()
+				)
+			})
+	})
 }
 
 export default {
-    setRedirects,
+	setRedirects,
 
-    redirect,
-    reverse,
-    switchInstance,
+	redirect,
+	reverse,
+	switchInstance,
 
-    initProxiTokCookies,
-    pasteProxiTokCookies,
+	initProxiTokCookies,
+	pasteProxiTokCookies,
 
-    initDefaults
-};
+	initDefaults,
+}