From f4dc7ded61079a8d564bd804fad00a7f4f904319 Mon Sep 17 00:00:00 2001 From: BobIsMyManager Date: Thu, 21 Jul 2022 21:30:46 +0100 Subject: WIP: Optimization, resolve incorrect protocol storage, unified protocol settings... Optmizations still throw a lot of errors, this will be resolved Custom instances of previously unused protocols do not save, this will be resolved Track version number locally for easier config migration in the future --- src/assets/javascripts/tiktok.js | 62 ++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 22 deletions(-) (limited to 'src/assets/javascripts/tiktok.js') diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js index 75e710d0..0bf6d592 100644 --- a/src/assets/javascripts/tiktok.js +++ b/src/assets/javascripts/tiktok.js @@ -6,12 +6,18 @@ const targets = [ /^https?:\/{2}(www\.|)tiktok\.com.*/ ]; -let redirects = { - "proxiTok": { - "normal": [], - "tor": [] +const frontends = new Array("proxiTok") +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', r => { redirects.proxiTok = val; @@ -39,9 +45,11 @@ function initProxiTokCookies(test, from) { ].includes(protocolHost)) resolve(); if (!test) { - let checkedInstances; - if (tiktokProtocol == 'normal') checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects] - else if (tiktokProtocol == 'tor') checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects] + let instancesList = []; + if (protocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]; + if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') { + instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]; + } await utils.copyCookie('proxitok', from, checkedInstances, 'theme'); await utils.copyCookie('proxitok', from, checkedInstances, 'api-legacy'); } @@ -52,10 +60,12 @@ function initProxiTokCookies(test, from) { function pasteProxiTokCookies() { return new Promise(async resolve => { await init(); - if (disableTiktok || tiktokProtocol === undefined) { resolve(); return; } - let checkedInstances; - if (tiktokProtocol == 'normal') checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects] - else if (tiktokProtocol == 'tor') checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects] + if (disableTiktok || protocol === undefined) { resolve(); return; } + let instancesList = []; + if (protocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]; + if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') { + instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]; + } utils.getCookiesFromStorage('proxitok', checkedInstances, 'theme'); utils.getCookiesFromStorage('proxitok', checkedInstances, 'api-legacy'); resolve(); @@ -64,7 +74,8 @@ function pasteProxiTokCookies() { let disableTiktok, - tiktokProtocol, + protocol, + protocolFallback, tiktokRedirects, proxiTokNormalRedirectsChecks, proxiTokNormalCustomRedirects, @@ -76,7 +87,8 @@ function init() { browser.storage.local.get( [ "disableTiktok", - "tiktokProtocol", + "protocol", + "protocolFallback", "tiktokRedirects", "proxiTokNormalRedirectsChecks", "proxiTokNormalCustomRedirects", @@ -85,7 +97,8 @@ function init() { ], r => { disableTiktok = r.disableTiktok; - tiktokProtocol = r.tiktokProtocol; + protocol = r.protocol; + protocolFallback = r.protocolFallback; tiktokRedirects = r.tiktokRedirects; proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks; proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects; @@ -112,9 +125,11 @@ function redirect(url, type, initiator, disableOverride) { if (initiator && (all.includes(initiator.origin) || targets.includes(initiator.host))) return; if (!targets.some(rx => rx.test(url.href))) return; - let instancesList; - if (tiktokProtocol == 'normal') instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]; - if (tiktokProtocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]; + let instancesList = []; + 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); @@ -151,9 +166,11 @@ function switchInstance(url, disableOverride) { ]; if (!all.includes(protocolHost)) { resolve(); return; } - let instancesList; - if (tiktokProtocol == 'normal') instancesList = [...proxiTokNormalCustomRedirects, ...proxiTokNormalRedirectsChecks]; - else if (tiktokProtocol == 'tor') instancesList = [...proxiTokTorCustomRedirects, ...proxiTokTorRedirectsChecks]; + let instancesList = []; + 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); @@ -168,10 +185,11 @@ function initDefaults() { return new Promise(async resolve => { fetch('/instances/data.json').then(response => response.text()).then(async data => { let dataJson = JSON.parse(data); - redirects.proxiTok = dataJson.proxiTok; + for (let i = 0; i < frontends.length; i++) { + redirects[frontends[i]] = dataJson[frontends[i]] + } browser.storage.local.set({ disableTiktok: false, - tiktokProtocol: "normal", tiktokRedirects: redirects, -- cgit 1.4.1