From 2a0596f08fb54e2faef4bcb4548a28f5837fc067 Mon Sep 17 00:00:00 2001 From: BobIsMyManager Date: Tue, 26 Jul 2022 22:28:50 +0100 Subject: 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 --- src/assets/javascripts/sendTargets.js | 306 ++++++++++++++++++---------------- 1 file changed, 159 insertions(+), 147 deletions(-) (limited to 'src/assets/javascripts/sendTargets.js') 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, +} -- cgit 1.4.1