diff options
author | Edward <contact@langdon.slmail.me> | 2022-10-09 19:04:15 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-09 19:04:15 +0530 |
commit | 26abc5d2c9f671d359be8a7bf503632242abb2c2 (patch) | |
tree | ab05b3b2906fbc8423eea3abe1bd8efeccefa439 /src/assets/javascripts/lbry.js | |
parent | Update messages.json (diff) | |
parent | Merge pull request #404 from marcelocripe/patch-1 (diff) | |
download | libredirect-26abc5d2c9f671d359be8a7bf503632242abb2c2.zip |
Merge branch 'master' into patch-3
Diffstat (limited to 'src/assets/javascripts/lbry.js')
-rw-r--r-- | src/assets/javascripts/lbry.js | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js deleted file mode 100644 index 698517a9..00000000 --- a/src/assets/javascripts/lbry.js +++ /dev/null @@ -1,223 +0,0 @@ -window.browser = window.browser || window.chrome - -import utils from "./utils.js" - -const targets = [/^https?:\/{2}odysee\.com/] - -const frontends = new Array("librarian") -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) { - return new Promise(resolve => - browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { - redirects.librarian = val - librarianNormalRedirectsChecks = [...redirects.librarian.normal] - for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { - const a = librarianNormalRedirectsChecks.indexOf(instance) - if (a > -1) librarianNormalRedirectsChecks.splice(a, 1) - } - browser.storage.local.set( - { - lbryTargetsRedirects: redirects, - librarianNormalRedirectsChecks, - librarianTorRedirectsChecks: [...redirects.librarian.tor], - librarianI2pRedirectsChecks: [...redirects.librarian.i2p], - librarianLokiRedirectsChecks: [...redirects.librarian.loki], - }, - () => resolve() - ) - }) - ) -} - -let disableLbryTargets, - lbryFrontend, - protocol, - protocolFallback, - lbryTargetsRedirects, - lbryRedirectType, - librarianNormalRedirectsChecks, - librarianNormalCustomRedirects, - librarianTorRedirectsChecks, - librarianTorCustomRedirects, - librarianI2pRedirectsChecks, - librarianI2pCustomRedirects, - librarianLokiCustomRedirects - -function init() { - return new Promise(resolve => { - browser.storage.local.get( - [ - "disableLbryTargets", - "lbryFrontend", - "protocol", - "protocolFallback", - "lbryTargetsRedirects", - "lbryRedirectType", - "librarianNormalRedirectsChecks", - "librarianNormalCustomRedirects", - "librarianTorRedirectsChecks", - "librarianTorCustomRedirects", - "librarianI2pRedirectsChecks", - "librarianI2pCustomRedirects", - "librarianLokiCustomRedirects", - ], - r => { - disableLbryTargets = r.disableLbryTargets - lbryFrontend = r.lbryFrontend - protocol = r.protocol - protocolFallback = r.protocolFallback - lbryTargetsRedirects = r.lbryTargetsRedirects - lbryRedirectType = r.lbryRedirectType - librarianNormalRedirectsChecks = r.librarianNormalRedirectsChecks - librarianNormalCustomRedirects = r.librarianNormalCustomRedirects - librarianTorRedirectsChecks = r.librarianTorRedirectsChecks - librarianTorCustomRedirects = r.librarianTorCustomRedirects - librarianI2pRedirectsChecks = r.librarianI2pRedirectsChecks - librarianI2pCustomRedirects = r.librarianI2pCustomRedirects - librarianLokiCustomRedirects = r.librarianLokiCustomRedirects - resolve() - } - ) - }) -} -init() -browser.storage.onChanged.addListener(init) - -function all() { - return [...redirects.librarian.normal, ...redirects.librarian.tor, ...librarianNormalCustomRedirects, ...librarianTorCustomRedirects, ...librarianI2pCustomRedirects, ...librarianLokiCustomRedirects] -} - -function getInstancesList() { - let tmpList = [] - switch (protocol) { - case "loki": - tmpList = [...librarianLokiCustomRedirects] - break - case "i2p": - tmpList = [...librarianI2pRedirectsChecks, ...librarianI2pCustomRedirects] - break - case "tor": - tmpList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects] - } - if ((tmpList.length === 0 && protocolFallback) || protocol == "normal") { - tmpList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects] - } - return tmpList -} - -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}`) - }) -} - -function redirect(url, type, initiator, disableOverride) { - if (disableLbryTargets && !disableOverride) return - if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) return - if (!targets.some(rx => rx.test(url.href))) return - if (type == "sub_frame" && lbryRedirectType == "main_frame") return - - const instancesList = getInstancesList() - switch (type) { - case "main_frame": - switch (lbryFrontend) { - case "librarian": - if (instancesList.length === 0) return - const randomInstance = utils.getRandomInstance(instancesList) - return `${randomInstance}${url.pathname}${url.search}` - case "lbryDesktop": - if (type == "main_frame") { - return url.href.replace(/^https?:\/{2}odysee\.com\//, "lbry://").replace(/:(?=[a-zA-Z0-9])/g, "#") - } - } - case "sub_frame": - if (instancesList.length === 0) return - const randomInstance = utils.getRandomInstance(instancesList) - return `${randomInstance}${url.pathname}${url.search}`.replace(/\/(?=[a-f0-9]{40})/, ":") - } -} - -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.get(["cloudflareBlackList", "offlineBlackList"], async r => { - librarianNormalRedirectsChecks = [...redirects.librarian.normal] - for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { - const a = librarianNormalRedirectsChecks.indexOf(instance) - if (a > -1) librarianNormalRedirectsChecks.splice(a, 1) - } - browser.storage.local.set( - { - disableLbryTargets: true, - lbryFrontend: "librarian", - lbryTargetsRedirects: redirects, - lbryRedirectType: "both", - - librarianNormalRedirectsChecks, - librarianNormalCustomRedirects: [], - - librarianTorRedirectsChecks: [...redirects.librarian.tor], - librarianTorCustomRedirects: [], - - librarianI2pRedirectsChecks: [...redirects.librarian.i2p], - librarianI2pCustomRedirects: [], - - librarianLokiRedirectsChecks: [...redirects.librarian.loki], - librarianLokiCustomRedirects: [], - }, - () => resolve() - ) - }) - }) - }) -} - -export default { - setRedirects, - switchInstance, - redirect, - initDefaults, -} |