diff options
author | BobIsMyManager <bimmgitsignature.nly8m@simplelogin.co> | 2022-07-21 21:30:46 +0100 |
---|---|---|
committer | BobIsMyManager <bimmgitsignature.nly8m@simplelogin.co> | 2022-07-21 21:30:46 +0100 |
commit | f4dc7ded61079a8d564bd804fad00a7f4f904319 (patch) | |
tree | 06b2df78b2a55411c4b4aa39afea9e9579ecf9df /src/assets/javascripts/lbry.js | |
parent | No more trailing slashes (diff) | |
download | libredirect-f4dc7ded61079a8d564bd804fad00a7f4f904319.zip |
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
Diffstat (limited to 'src/assets/javascripts/lbry.js')
-rw-r--r-- | src/assets/javascripts/lbry.js | 95 |
1 files changed, 42 insertions, 53 deletions
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js index 77a8e4ec..7a298fbe 100644 --- a/src/assets/javascripts/lbry.js +++ b/src/assets/javascripts/lbry.js @@ -4,44 +4,36 @@ import utils from './utils.js' let targets = ["odysee.com"]; -let redirects = { - "librarian": { - "normal": [ - "https://lbry.bcow.xyz", - "https://odysee.076.ne.jp", - "https://lbry.ix.tc", - "https://librarian.pussthecat.org", - "https://lbry.mutahar.rocks", - "https://librarian.esmailelbob.xyz", - ], - "tor": [ - "http://ecc5mi5ncdw6mxhjz6re6g2uevtpbzxjvxgrxia2gyvrlnil3srbnhyd.onion", - "http://vrmbc4brkgkaysmi3fenbzkayobxjh24slmhtocambn3ewe62iuqt3yd.onion", - ] +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) { - redirects.librarian = val; - browser.storage.local.set({ lbryTargetsRedirects: redirects }) - for (const item of librarianNormalRedirectsChecks) - if (!redirects.librarian.normal.includes(item)) { - var index = librarianNormalRedirectsChecks.indexOf(item); - if (index !== -1) librarianNormalRedirectsChecks.splice(index, 1); - } - browser.storage.local.set(librarianNormalRedirectsChecks); - - for (const item of librarianTorRedirectsChecks) - if (!redirects.librarian.normal.includes(item)) { - var index = librarianTorRedirectsChecks.indexOf(item); - if (index !== -1) librarianTorRedirectsChecks.splice(index, 1); + browser.storage.local.get('cloudflareBlackList', r => { + redirects.librarian = val; + librarianNormalRedirectsChecks = [...redirects.librarian.normal]; + for (const instance of r.cloudflareBlackList) { + const a = librarianNormalRedirectsChecks.indexOf(instance); + if (a > -1) librarianNormalRedirectsChecks.splice(a, 1); } - browser.storage.local.set(librarianTorRedirectsChecks) + browser.storage.local.set({ + lbryTargetsRedirects: redirects, + librarianNormalRedirectsChecks + }) + }) } let disableLbryTargets, - lbryTargetsProtocol, + protocol, lbryTargetsRedirects, librarianNormalRedirectsChecks, librarianNormalCustomRedirects, @@ -53,7 +45,7 @@ function init() { browser.storage.local.get( [ "disableLbryTargets", - "lbryTargetsProtocol", + "protocol", "lbryTargetsRedirects", "librarianNormalRedirectsChecks", "librarianNormalCustomRedirects", @@ -62,7 +54,7 @@ function init() { ], r => { disableLbryTargets = r.disableLbryTargets; - lbryTargetsProtocol = r.lbryTargetsProtocol; + protocol = r.protocol; lbryTargetsRedirects = r.lbryTargetsRedirects; librarianNormalRedirectsChecks = r.librarianNormalRedirectsChecks; librarianNormalCustomRedirects = r.librarianNormalCustomRedirects; @@ -92,9 +84,11 @@ function switchInstance(url, disableOverride) { const protocolHost = utils.protocolHost(url); if (!all().includes(protocolHost)) { resolve(); return; } - let instancesList; - if (lbryTargetsProtocol == 'normal') instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects]; - else if (lbryTargetsProtocol == 'tor') instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects]; + let instancesList = []; + 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); @@ -111,9 +105,11 @@ function redirect(url, type, initiator, disableOverride) { if (!targets.includes(url.host)) return; if (type != "main_frame") return; - let instancesList; - if (lbryTargetsProtocol == 'normal') instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects]; - if (lbryTargetsProtocol == 'tor') instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects]; + let instancesList = []; + if (protocol == 'tor') instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects]; + if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') { + instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects]; + } if (instancesList.length === 0) return; const randomInstance = utils.getRandomInstance(instancesList); @@ -121,31 +117,24 @@ function redirect(url, type, initiator, disableOverride) { } function initDefaults() { - return new Promise(resolve => { - browser.storage.local.get('cloudflareBlackList', async r => { - librarianNormalRedirectsChecks = [...redirects.librarian.normal]; - for (const instance of r.cloudflareBlackList) { - let i; - - i = librarianNormalRedirectsChecks.indexOf(instance); - if (i > -1) librarianNormalRedirectsChecks.splice(i, 1); + 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({ disableLbryTargets: true, - lbryTargetsRedirects: { - 'librarian': redirects.librarian - }, + + lbryTargetsRedirects: redirects, librarianNormalRedirectsChecks: librarianNormalRedirectsChecks, librarianNormalCustomRedirects: [], librarianTorRedirectsChecks: [...redirects.librarian.tor], librarianTorCustomRedirects: [], - - lbryTargetsProtocol: "normal", - }, () => resolve()) - - }) + }, () => resolve()); + }); }) } |