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/wikipedia.js | 434 +++++++++++++++++++----------------- 1 file changed, 224 insertions(+), 210 deletions(-) (limited to 'src/assets/javascripts/wikipedia.js') diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js index d2ba7de8..d5c9bfa6 100644 --- a/src/assets/javascripts/wikipedia.js +++ b/src/assets/javascripts/wikipedia.js @@ -1,248 +1,262 @@ -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}(([a-z]{1,}\.){0,})wikipedia\.org/ const frontends = new Array("wikiless") const protocols = new Array("normal", "tor", "i2p", "loki") -let redirects = {}; +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.wikiless = val; - wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]; - for (const instance of r.cloudflareBlackList) { - const a = wikilessNormalRedirectsChecks.indexOf(instance); - if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1); - } - browser.storage.local.set({ - wikipediaRedirects: redirects, - wikilessNormalRedirectsChecks - }) - }) + browser.storage.local.get("cloudflareBlackList", r => { + redirects.wikiless = val + wikilessNormalRedirectsChecks = [...redirects.wikiless.normal] + for (const instance of r.cloudflareBlackList) { + const a = wikilessNormalRedirectsChecks.indexOf(instance) + if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set({ + wikipediaRedirects: redirects, + wikilessNormalRedirectsChecks, + }) + }) } -let - disableWikipedia, - wikipediaRedirects, - protocol, - protocolFallback, - wikilessNormalRedirectsChecks, - wikilessTorRedirectsChecks, - wikilessI2pRedirectsChecks, - wikilessNormalCustomRedirects, - wikilessTorCustomRedirects, - wikilessI2pCustomRedirects, - wikilessLokiCustomRedirects; +let disableWikipedia, + wikipediaRedirects, + protocol, + protocolFallback, + wikilessNormalRedirectsChecks, + wikilessTorRedirectsChecks, + wikilessI2pRedirectsChecks, + wikilessNormalCustomRedirects, + wikilessTorCustomRedirects, + wikilessI2pCustomRedirects, + wikilessLokiCustomRedirects function init() { - return new Promise(async resolve => { - browser.storage.local.get( - [ - "disableWikipedia", - "wikipediaRedirects", - "protocol", - "protocolFallback", - "wikilessNormalRedirectsChecks", - "wikilessTorRedirectsChecks", - "wikilessI2pRedirectsChecks", - "wikilessNormalCustomRedirects", - "wikilessTorCustomRedirects", - "wikilessI2pCustomRedirects", - "wikilessLokiCustomRedirects" - ], - r => { - disableWikipedia = r.disableWikipedia; - wikipediaRedirects = r.wikipediaRedirects; - protocol = r.protocol; - protocolFallback = r.protocolFallback; - wikilessNormalRedirectsChecks = r.wikilessNormalRedirectsChecks; - wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks; - wikilessI2pRedirectsChecks = r.wikilessI2pRedirectsChecks; - wikilessNormalCustomRedirects = r.wikilessNormalCustomRedirects; - wikilessTorCustomRedirects = r.wikilessTorCustomRedirects; - wikilessI2pCustomRedirects = r.wikilessI2pCustomRedirects; - wikilessLokiCustomRedirects = r.wikilessLokiCustomRedirects; - resolve(); - } - ) - }) + return new Promise(async resolve => { + browser.storage.local.get( + [ + "disableWikipedia", + "wikipediaRedirects", + "protocol", + "protocolFallback", + "wikilessNormalRedirectsChecks", + "wikilessTorRedirectsChecks", + "wikilessI2pRedirectsChecks", + "wikilessNormalCustomRedirects", + "wikilessTorCustomRedirects", + "wikilessI2pCustomRedirects", + "wikilessLokiCustomRedirects", + ], + r => { + disableWikipedia = r.disableWikipedia + wikipediaRedirects = r.wikipediaRedirects + protocol = r.protocol + protocolFallback = r.protocolFallback + wikilessNormalRedirectsChecks = r.wikilessNormalRedirectsChecks + wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks + wikilessI2pRedirectsChecks = r.wikilessI2pRedirectsChecks + wikilessNormalCustomRedirects = r.wikilessNormalCustomRedirects + wikilessTorCustomRedirects = r.wikilessTorCustomRedirects + wikilessI2pCustomRedirects = r.wikilessI2pCustomRedirects + wikilessLokiCustomRedirects = r.wikilessLokiCustomRedirects + resolve() + } + ) + }) } -init(); +init() browser.storage.onChanged.addListener(init) function initWikilessCookies(test, from) { - return new Promise(async resolve => { - await init(); - const protocolHost = utils.protocolHost(from); - const all = [ - ...wikilessNormalRedirectsChecks, - ...wikilessNormalCustomRedirects, - ...wikilessTorRedirectsChecks, - ...wikilessTorCustomRedirects, - ...wikilessI2pRedirectsChecks, - ...wikilessI2pCustomRedirects, - ...wikilessLokiCustomRedirects - ]; - if (!all.includes(protocolHost)) { resolve(); return; } - - if (!test) { - let checkedInstances = []; - if (protocol == 'loki') checkedInstances = [...wikilessLokiCustomRedirects]; - else if (protocol == 'i2p') checkedInstances = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]; - else if (protocol == 'tor') checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]; - if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') { - checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]; - } - await utils.copyCookie('wikiless', from, checkedInstances, 'theme'); - await utils.copyCookie('wikiless', from, checkedInstances, 'default_lang'); - } - resolve(true); - }) + return new Promise(async resolve => { + await init() + const protocolHost = utils.protocolHost(from) + const all = [ + ...wikilessNormalRedirectsChecks, + ...wikilessNormalCustomRedirects, + ...wikilessTorRedirectsChecks, + ...wikilessTorCustomRedirects, + ...wikilessI2pRedirectsChecks, + ...wikilessI2pCustomRedirects, + ...wikilessLokiCustomRedirects, + ] + if (!all.includes(protocolHost)) { + resolve() + return + } + + if (!test) { + let checkedInstances = [] + if (protocol == "loki") checkedInstances = [...wikilessLokiCustomRedirects] + else if (protocol == "i2p") checkedInstances = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks] + else if (protocol == "tor") checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects] + if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") { + checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects] + } + await utils.copyCookie("wikiless", from, checkedInstances, "theme") + await utils.copyCookie("wikiless", from, checkedInstances, "default_lang") + } + resolve(true) + }) } function pasteWikilessCookies() { - return new Promise(async resolve => { - await init(); - if (disableWikipedia || protocol === undefined) { resolve(); return; } - let checkedInstances = []; - if (protocol == 'loki') checkedInstances = [...wikilessLokiCustomRedirects]; - else if (protocol == 'i2p') checkedInstances = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]; - else if (protocol == 'tor') checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]; - if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') { - checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]; - } - utils.getCookiesFromStorage('wikiless', checkedInstances, 'theme'); - utils.getCookiesFromStorage('wikiless', checkedInstances, 'default_lang'); - resolve(); - }) + return new Promise(async resolve => { + await init() + if (disableWikipedia || protocol === undefined) { + resolve() + return + } + let checkedInstances = [] + if (protocol == "loki") checkedInstances = [...wikilessLokiCustomRedirects] + else if (protocol == "i2p") checkedInstances = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks] + else if (protocol == "tor") checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects] + if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") { + checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects] + } + utils.getCookiesFromStorage("wikiless", checkedInstances, "theme") + utils.getCookiesFromStorage("wikiless", checkedInstances, "default_lang") + resolve() + }) } function redirect(url, disableOverride) { - if (disableWikipedia && !disableOverride) return; - if (!targets.test(url.href)) return; - - let GETArguments = []; - if (url.search.length > 0) { - let search = url.search.substring(1); //get rid of '?' - let argstrings = search.split("&"); - for (let i = 0; i < argstrings.length; i++) { - let args = argstrings[i].split("="); - GETArguments.push([args[0], args[1]]); - } - } - let instancesList = []; - if (protocol == 'loki') instancesList = [...wikilessLokiCustomRedirects]; - else if (protocol == 'i2p') instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]; - else if (protocol == 'tor') instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]; - if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') { - instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]; - } - if (instancesList.length === 0) return; - const randomInstance = utils.getRandomInstance(instancesList) - - let link = `${randomInstance}${url.pathname}`; - let urlSplit = url.host.split("."); - if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") { - if (urlSplit[0] == "m") - GETArguments.push(["mobileaction", "toggle_view_mobile"]); - else - GETArguments.push(["lang", urlSplit[0]]); - if (urlSplit[1] == "m") - GETArguments.push(["mobileaction", "toggle_view_mobile"]); - // wikiless doesn't have mobile view support yet - } - for (let i = 0; i < GETArguments.length; i++) - link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1]; - return link; + if (disableWikipedia && !disableOverride) return + if (!targets.test(url.href)) return + + let GETArguments = [] + if (url.search.length > 0) { + let search = url.search.substring(1) //get rid of '?' + let argstrings = search.split("&") + for (let i = 0; i < argstrings.length; i++) { + let args = argstrings[i].split("=") + GETArguments.push([args[0], args[1]]) + } + } + let instancesList = [] + if (protocol == "loki") instancesList = [...wikilessLokiCustomRedirects] + else if (protocol == "i2p") instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks] + else if (protocol == "tor") instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects] + if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") { + instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects] + } + if (instancesList.length === 0) return + const randomInstance = utils.getRandomInstance(instancesList) + + let link = `${randomInstance}${url.pathname}` + let urlSplit = url.host.split(".") + if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") { + if (urlSplit[0] == "m") GETArguments.push(["mobileaction", "toggle_view_mobile"]) + else GETArguments.push(["lang", urlSplit[0]]) + if (urlSplit[1] == "m") GETArguments.push(["mobileaction", "toggle_view_mobile"]) + // wikiless doesn't have mobile view support yet + } + for (let i = 0; i < GETArguments.length; i++) link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1] + return link } function switchInstance(url, disableOverride) { - return new Promise(async resolve => { - await init(); - if (disableWikipedia && !disableOverride) { resolve(); return; } - const protocolHost = utils.protocolHost(url); - const wikipediaList = [ - ...wikipediaRedirects.wikiless.normal, - ...wikipediaRedirects.wikiless.tor, - ...wikipediaRedirects.wikiless.i2p, - - ...wikilessNormalCustomRedirects, - ...wikilessTorCustomRedirects, - ...wikilessI2pCustomRedirects, - ...wikilessLokiCustomRedirects - ]; - if (!wikipediaList.includes(protocolHost)) { resolve(); return; } - - let instancesList = []; - if (protocol == 'loki') instancesList = [...wikilessLokiCustomRedirects]; - else if (protocol == 'i2p') instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks]; - else if (protocol == 'tor') instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]; - if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') { - instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]; - } - - let index = instancesList.indexOf(protocolHost); - if (index > -1) instancesList.splice(index, 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 (disableWikipedia && !disableOverride) { + resolve() + return + } + const protocolHost = utils.protocolHost(url) + const wikipediaList = [ + ...wikipediaRedirects.wikiless.normal, + ...wikipediaRedirects.wikiless.tor, + ...wikipediaRedirects.wikiless.i2p, + + ...wikilessNormalCustomRedirects, + ...wikilessTorCustomRedirects, + ...wikilessI2pCustomRedirects, + ...wikilessLokiCustomRedirects, + ] + if (!wikipediaList.includes(protocolHost)) { + resolve() + return + } + + let instancesList = [] + if (protocol == "loki") instancesList = [...wikilessLokiCustomRedirects] + else if (protocol == "i2p") instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks] + else if (protocol == "tor") instancesList = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects] + if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") { + instancesList = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects] + } + + let index = instancesList.indexOf(protocolHost) + if (index > -1) instancesList.splice(index, 1) + if (instancesList.length === 0) { + resolve() + return + } + + const randomInstance = utils.getRandomInstance(instancesList) + resolve(`${randomInstance}${url.pathname}${url.search}`) + }) } 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 => { - wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]; - for (const instance of r.cloudflareBlackList) { - let i = wikilessNormalRedirectsChecks.indexOf(instance); - if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1); - } - browser.storage.local.set({ - disableWikipedia: true, - wikipediaRedirects: redirects, - - wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks, - wikilessNormalCustomRedirects: [], - - wikilessTorRedirectsChecks: [...redirects.wikiless.tor], - wikilessTorCustomRedirects: [], - - wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p], - wikilessI2pCustomRedirects: [], - - wikilessLokiRedirectsChecks: [...redirects.wikiless.loki], - wikilessLokiCustomRedirects: [] - - }, () => 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 => { + wikilessNormalRedirectsChecks = [...redirects.wikiless.normal] + for (const instance of r.cloudflareBlackList) { + let i = wikilessNormalRedirectsChecks.indexOf(instance) + if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1) + } + browser.storage.local.set( + { + disableWikipedia: true, + wikipediaRedirects: redirects, + + wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks, + wikilessNormalCustomRedirects: [], + + wikilessTorRedirectsChecks: [...redirects.wikiless.tor], + wikilessTorCustomRedirects: [], + + wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p], + wikilessI2pCustomRedirects: [], + + wikilessLokiRedirectsChecks: [...redirects.wikiless.loki], + wikilessLokiCustomRedirects: [], + }, + () => resolve() + ) + }) + }) + }) } export default { - setRedirects, + setRedirects, - initWikilessCookies, - pasteWikilessCookies, + initWikilessCookies, + pasteWikilessCookies, - redirect, - initDefaults, - switchInstance, -}; + redirect, + initDefaults, + switchInstance, +} -- cgit 1.4.1 From 0803eb5e0484920f31e994303fd2bb07d6f5ec83 Mon Sep 17 00:00:00 2001 From: BobIsMyManager Date: Wed, 27 Jul 2022 11:05:49 +0100 Subject: Added lbry desktop Closes https://github.com/libredirect/libredirect/issues/365 --- .prettierrc.json | 1 - src/_locales/en/messages.json | 3 +++ src/assets/javascripts/lbry.js | 37 +++++++++++++++++++++++++++++-------- src/assets/javascripts/wikipedia.js | 2 +- src/pages/options/index.html | 9 ++++++++- src/pages/options/widgets/lbry.js | 32 +++++++++++++++++--------------- src/pages/options/widgets/lbry.pug | 8 +++++++- 7 files changed, 65 insertions(+), 27 deletions(-) (limited to 'src/assets/javascripts/wikipedia.js') diff --git a/.prettierrc.json b/.prettierrc.json index d0df3f36..864a0cc8 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -8,7 +8,6 @@ { "files": ["*.js", "*.json"], "options": { - "tabWidth": 2, "singleQuote": false } }, diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index dfbede1a..23d42e48 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -207,5 +207,8 @@ }, "protocolFallback": { "message": "Fallback to normal if no instances are available for the current protocol" + }, + "lbryDesktop": { + "message": "LBRY Desktop" } } diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js index 7f39b734..f0698d36 100644 --- a/src/assets/javascripts/lbry.js +++ b/src/assets/javascripts/lbry.js @@ -32,6 +32,7 @@ function setRedirects(val) { } let disableLbryTargets, + lbryFrontend, protocol, protocolFallback, lbryTargetsRedirects, @@ -48,6 +49,7 @@ function init() { browser.storage.local.get( [ "disableLbryTargets", + "lbryFrontend", "protocol", "protocolFallback", "lbryTargetsRedirects", @@ -61,6 +63,7 @@ function init() { ], r => { disableLbryTargets = r.disableLbryTargets + lbryFrontend = r.lbryFrontend protocol = r.protocol protocolFallback = r.protocolFallback lbryTargetsRedirects = r.lbryTargetsRedirects @@ -120,17 +123,34 @@ function redirect(url, type, initiator, disableOverride) { if (disableLbryTargets && !disableOverride) return if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) return if (!targets.includes(url.host)) return - if (type != "main_frame") return + if (type != ("main_frame" || "sub_frame")) return + //https://odysee.com/$/embed/the-anti-smartphone-revolution/22b482e450c4ca13c464eee8f51b3a52bbb942ae?r=7pAWcQybShS63wz486r8wVv9FpsDJ47A + // to + //https://{instance}/embed/@Coldfusion:f/the-anti-smartphone-revolution:2 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] + switch (lbryFrontend) { + case "librarian": + switch (protocol) { + case "loki": + instancesList = [...librarianLokiCustomRedirects] + break + case "i2p": + instancesList = [...librarianI2pRedirectsChecks, ...librarianI2pCustomRedirects] + break + case "tor": + instancesList = [...librarianTorRedirectsChecks, ...librarianTorCustomRedirects] + } + if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") { + instancesList = [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects] + } + break + case "lbryDesktop": + if (type == "main_frame") { + return url.href.replace(/^https?:\/{2}odysee\.com\//, "lbry://").replace(/:(?=[a-zA-Z0-9])/g, "#") + } + if (instancesList.length === 0) return } - if (instancesList.length === 0) return - const randomInstance = utils.getRandomInstance(instancesList) return `${randomInstance}${url.pathname}${url.search}` } @@ -147,6 +167,7 @@ function initDefaults() { browser.storage.local.set( { disableLbryTargets: true, + lbryFrontend: "librarian", lbryTargetsRedirects: redirects, librarianNormalRedirectsChecks: [...redirects.librarian.normal], diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js index d5c9bfa6..cf19b208 100644 --- a/src/assets/javascripts/wikipedia.js +++ b/src/assets/javascripts/wikipedia.js @@ -2,7 +2,7 @@ window.browser = window.browser || window.chrome import utils from "./utils.js" -const targets = /^https?:\/{2}(([a-z]{1,}\.){0,})wikipedia\.org/ +const targets = /^https?:\/{2}([a-z]+\.)*wikipedia\.org/ const frontends = new Array("wikiless") const protocols = new Array("normal", "tor", "i2p", "loki") diff --git a/src/pages/options/index.html b/src/pages/options/index.html index a1e14d22..84955339 100644 --- a/src/pages/options/index.html +++ b/src/pages/options/index.html @@ -2195,13 +2195,20 @@
-

LBRY/Odysee

+

LBRY


Enable

+
+

Frontend

+ +

diff --git a/src/pages/options/widgets/lbry.js b/src/pages/options/widgets/lbry.js index 79be6e18..76e212cb 100644 --- a/src/pages/options/widgets/lbry.js +++ b/src/pages/options/widgets/lbry.js @@ -1,27 +1,23 @@ import utils from "../../../assets/javascripts/utils.js" -// UNCOMMENT ALL COMMENTS ONCE OTHER FRONTENDS EXIST - const frontends = new Array("librarian") const protocols = new Array("normal", "tor", "i2p", "loki") const enable = document.getElementById("lbry-enable") const lbry = document.getElementById("lbry_page") -//const frontend = document.getElementById("lbry-frontend"); +const frontend = document.getElementById("lbry-frontend") let protocol -/* function changeFrontendsSettings() { - for (let i = 0; i < frontends.length; i++) { - const frontendDiv = document.getElementById(frontends[i]) - if (frontends[i] == frontend.value) { - frontendDiv.style.display = 'block' - } else { - frontendDiv.style.display = 'none' - } - } + for (let i = 0; i < frontends.length; i++) { + const frontendDiv = document.getElementById(frontends[i]) + if (frontends[i] == frontend.value) { + frontendDiv.style.display = "block" + } else { + frontendDiv.style.display = "none" + } + } } -*/ function changeProtocolSettings() { for (let i = 0; i < frontends.length; i++) { @@ -37,14 +33,20 @@ function changeProtocolSettings() { } } -browser.storage.local.get(["disableLbryTargets", "protocol"], r => { +browser.storage.local.get(["disableLbryTargets", "protocol", "lbryFrontend"], r => { enable.checked = !r.disableLbryTargets protocol = r.protocol + frontend.value = r.lbryFrontend + changeFrontendsSettings() changeProtocolSettings() }) lbry.addEventListener("change", () => { - browser.storage.local.set({ disableLbryTargets: !enable.checked }) + browser.storage.local.set({ + disableLbryTargets: !enable.checked, + lbryFrontend: frontend.value, + }) + changeFrontendsSettings() }) for (let i = 0; i < frontends.length; i++) { diff --git a/src/pages/options/widgets/lbry.pug b/src/pages/options/widgets/lbry.pug index 2bdccb5a..678b87d9 100644 --- a/src/pages/options/widgets/lbry.pug +++ b/src/pages/options/widgets/lbry.pug @@ -1,11 +1,17 @@ section#lbry_page.option-block .some-block.option-block - h1(data-localise="__MSG_lbry__") LBRY/Odysee + h1(data-localise="__MSG_lbry__") LBRY hr .some-block.option-block h4(data-localise="__MSG_enable__") Enable input#lbry-enable(type="checkbox") + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#lbry-frontend + option(value="librarian") Librarian + option(value="lbryDesktop" data-localise="__MSG_lbryDesktop__") LBRY Desktop + #librarian hr .normal -- cgit 1.4.1