diff --git a/README.md b/README.md index a9e6839..4de3976 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ npm run start ### Install temporarily open `about:addons`\ -click on the settings button below the addon search bar and select `debug add-on`\ +type in the address bar `about:debugging`\ press `load temporarily addon` ### Install in Firefox ESR, Developer Edition, Nightly diff --git a/src/assets/images/imgur-icon.png b/src/assets/images/imgur.png similarity index 100% rename from src/assets/images/imgur-icon.png rename to src/assets/images/imgur.png diff --git a/src/assets/javascripts/general.js b/src/assets/javascripts/general.js index 0b34c14..a8360bd 100644 --- a/src/assets/javascripts/general.js +++ b/src/assets/javascripts/general.js @@ -32,6 +32,7 @@ async function initDefaults() { firstPartyIsolate: false, protocol: "normal", protocolFallback: true, + latencyThreshold: 1000, }, () => resolve() ) diff --git a/src/assets/javascripts/imdb.js b/src/assets/javascripts/imdb.js index 9981f1b..5736855 100644 --- a/src/assets/javascripts/imdb.js +++ b/src/assets/javascripts/imdb.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.libremdb = val libremdbNormalRedirectsChecks = [...redirects.libremdb.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = libremdbNormalRedirectsChecks.indexOf(instance) if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ imdbRedirects: redirects, libremdbNormalRedirectsChecks, + libremdbTorRedirectsChecks: [...redirects.libremdb.tor], + libremdbI2pRedirectsChecks: [...redirects.libremdb.i2p], + libremdbLokiRedirectsChecks: [...redirects.libremdb.loki], }) }) } @@ -172,25 +175,32 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.set( - { - disableImdb: true, - imdbRedirects: redirects, + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { + libremdbNormalRedirectsChecks = [...redirects.libremdb.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = libremdbNormalRedirectsChecks.indexOf(instance) + if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set( + { + disableImdb: true, + imdbRedirects: redirects, - libremdbNormalRedirectsChecks: [...redirects.libremdb.normal], - libremdbNormalCustomRedirects: [], + libremdbNormalRedirectsChecks, + libremdbNormalCustomRedirects: [], - libremdbTorRedirectsChecks: [...redirects.libremdb.tor], - libremdbTorCustomRedirects: [], + libremdbTorRedirectsChecks: [...redirects.libremdb.tor], + libremdbTorCustomRedirects: [], - libremdbI2pRedirectsChecks: [], - libremdbI2pCustomRedirects: [], + libremdbI2pRedirectsChecks: [], + libremdbI2pCustomRedirects: [], - libremdbLokiRedirectsChecks: [], - libremdbLokiCustomRedirects: [], - }, - () => resolve() - ) + libremdbLokiRedirectsChecks: [], + libremdbLokiCustomRedirects: [], + }, + () => resolve() + ) + }) }) }) } diff --git a/src/assets/javascripts/imgur.js b/src/assets/javascripts/imgur.js index 9ccd24a..15b9cca 100644 --- a/src/assets/javascripts/imgur.js +++ b/src/assets/javascripts/imgur.js @@ -16,39 +16,21 @@ for (let i = 0; i < frontends.length; i++) { } } -function setRedirects() { - return new Promise(resolve => { - fetch("/instances/data.json") - .then(response => response.text()) - .then(async data => { - let dataJson = JSON.parse(data) - redirects.rimgo = dataJson.rimgo - - rimgoNormalRedirectsChecks = [...redirects.rimgo.normal] - rimgoTorRedirectsChecks = [...redirects.rimgo.tor] - rimgoI2pRedirectsChecks = [...redirects.rimgo.i2p] - - for (const instance of r.cloudflareBlackList) { - const a = rimgoNormalRedirectsChecks.indexOf(instance) - if (a > -1) rimgoNormalRedirectsChecks.splice(a, 1) - - const b = rimgoTorRedirectsChecks.indexOf(instance) - if (b > -1) rimgoTorRedirectsChecks.splice(b, 1) - - const c = rimgoI2pRedirectsChecks.indexOf(instance) - if (c > -1) rimgoI2pRedirectsChecks.splice(c, 1) - } - - browser.storage.local.set( - { - imgurRedirects: redirects, - rimgoNormalRedirectsChecks, - rimgoTorRedirectsChecks, - rimgoI2pRedirectsChecks, - }, - () => resolve() - ) - }) +function setRedirects(val) { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { + redirects.rimgo = val + rimgoNormalRedirectsChecks = [...redirects.rimgo.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = rimgoNormalRedirectsChecks.indexOf(instance) + if (a > -1) rimgoNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set({ + imgurRedirects: redirects, + rimgoNormalRedirectsChecks, + rimgoTorRedirectsChecks: [...redirects.rimgo.tor], + rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p], + rimgoLokiRedirectsChecks: [...redirects.rimgo.loki], + }) }) } @@ -195,11 +177,11 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { rimgoNormalRedirectsChecks = [...redirects.rimgo.normal] - for (const instance of r.cloudflareBlackList) { - const i = rimgoNormalRedirectsChecks.indexOf(instance) - if (i > -1) rimgoNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = rimgoNormalRedirectsChecks.indexOf(instance) + if (a > -1) rimgoNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set( { diff --git a/src/assets/javascripts/instagram.js b/src/assets/javascripts/instagram.js index 0004207..d0aa07c 100644 --- a/src/assets/javascripts/instagram.js +++ b/src/assets/javascripts/instagram.js @@ -16,16 +16,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { redirects.bibliogram = val bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = bibliogramNormalRedirectsChecks.indexOf(instance) if (a > -1) bibliogramNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ instagramRedirects: redirects, bibliogramNormalRedirectsChecks, + bibliogramTorRedirectsChecks: [...redirects.bibliogram.tor], + bibliogramI2pRedirectsChecks: [...redirects.bibliogram.i2p], + bibliogramLokiRedirectsChecks: [...redirects.bibliogram.loki], }) }) } @@ -203,17 +206,17 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal] - for (const instance of r.cloudflareBlackList) { - const i = bibliogramNormalRedirectsChecks.indexOf(instance) - if (i > -1) bibliogramNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = bibliogramNormalRedirectsChecks.indexOf(instance) + if (a > -1) bibliogramNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ disableInstagram: false, instagramRedirects: redirects, - bibliogramNormalRedirectsChecks: bibliogramNormalRedirectsChecks, + bibliogramNormalRedirectsChecks, bibliogramNormalCustomRedirects: [], bibliogramTorRedirectsChecks: [...redirects.bibliogram.tor], diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js index 0c4d34c..5e285ad 100644 --- a/src/assets/javascripts/lbry.js +++ b/src/assets/javascripts/lbry.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.librarian = val librarianNormalRedirectsChecks = [...redirects.librarian.normal] - for (const instance of r.cloudflareBlackList) { + 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], }) }) } @@ -175,27 +178,34 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.set( - { - disableLbryTargets: true, - lbryFrontend: "librarian", - lbryTargetsRedirects: redirects, - lbryRedirectType: "both", + 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: [...redirects.librarian.normal], - librarianNormalCustomRedirects: [], + librarianNormalRedirectsChecks, + librarianNormalCustomRedirects: [], - librarianTorRedirectsChecks: [...redirects.librarian.tor], - librarianTorCustomRedirects: [], + librarianTorRedirectsChecks: [...redirects.librarian.tor], + librarianTorCustomRedirects: [], - librarianI2pRedirectsChecks: [...redirects.librarian.i2p], - librarianI2pCustomRedirects: [], + librarianI2pRedirectsChecks: [...redirects.librarian.i2p], + librarianI2pCustomRedirects: [], - librarianLokiRedirectsChecks: [...redirects.librarian.loki], - librarianLokiCustomRedirects: [], - }, - () => resolve() - ) + librarianLokiRedirectsChecks: [...redirects.librarian.loki], + librarianLokiCustomRedirects: [], + }, + () => resolve() + ) + }) }) }) } diff --git a/src/assets/javascripts/maps.js b/src/assets/javascripts/maps.js index 9fb10b9..6e3c9af 100644 --- a/src/assets/javascripts/maps.js +++ b/src/assets/javascripts/maps.js @@ -21,16 +21,19 @@ redirects.osm = {} redirects.osm.normal = ["https://www.openstreetmap.org"] function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.facil = val facilNormalRedirectsChecks = [...redirects.facil.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = facilNormalRedirectsChecks.indexOf(instance) if (a > -1) facilNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ mapsRedirects: redirects, facilNormalRedirectsChecks, + facilTorRedirectsChecks: [...redirects.facil.tor], + facilI2pRedirectsChecks: [...redirects.facil.i2p], + facilLokiRedirectsChecks: [...redirects.facil.loki], }) }) } @@ -264,25 +267,32 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.set( - { - disableMaps: false, - mapsFrontend: "osm", - mapsRedirects: redirects, - facilNormalRedirectsChecks: [...redirects.facil.normal], - facilNormalCustomRedirects: [], + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { + facilNormalRedirectsChecks = [...redirects.facil.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = facilNormalRedirectsChecks.indexOf(instance) + if (a > -1) facilNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set( + { + disableMaps: false, + mapsFrontend: "osm", + mapsRedirects: redirects, + facilNormalRedirectsChecks, + facilNormalCustomRedirects: [], - facilTorRedirectsChecks: [...redirects.facil.tor], - facilTorCustomRedirects: [], + facilTorRedirectsChecks: [...redirects.facil.tor], + facilTorCustomRedirects: [], - facilI2pRedirectsChecks: [...redirects.facil.i2p], - facilI2pCustomRedirects: [], + facilI2pRedirectsChecks: [...redirects.facil.i2p], + facilI2pCustomRedirects: [], - facilLokiRedirectsChecks: [...redirects.facil.loki], - facilLokiCustomRedirects: [], - }, - () => resolve() - ) + facilLokiRedirectsChecks: [...redirects.facil.loki], + facilLokiCustomRedirects: [], + }, + () => resolve() + ) + }) }) }) } diff --git a/src/assets/javascripts/medium.js b/src/assets/javascripts/medium.js index 4c03471..e5cb1dc 100644 --- a/src/assets/javascripts/medium.js +++ b/src/assets/javascripts/medium.js @@ -40,16 +40,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.scribe = val scribeNormalRedirectsChecks = [...redirects.scribe.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = scribeNormalRedirectsChecks.indexOf(instance) if (a > -1) scribeNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ mediumRedirects: redirects, scribeNormalRedirectsChecks, + scribeTorRedirectsChecks: [...redirects.scribe.tor], + scribeI2pRedirectsChecks: [...redirects.scribe.i2p], + scribeLokiRedirectsChecks: [...redirects.scribe.loki], }) }) } @@ -181,18 +184,18 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { scribeNormalRedirectsChecks = [...redirects.scribe.normal] - for (const instance of r.cloudflareBlackList) { - let i = scribeNormalRedirectsChecks.indexOf(instance) - if (i > -1) scribeNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = scribeNormalRedirectsChecks.indexOf(instance) + if (a > -1) scribeNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set( { disableMedium: false, mediumRedirects: redirects, - scribeNormalRedirectsChecks: scribeNormalRedirectsChecks, + scribeNormalRedirectsChecks, scribeNormalCustomRedirects: [], scribeTorRedirectsChecks: [...redirects.scribe.tor], diff --git a/src/assets/javascripts/peertube.js b/src/assets/javascripts/peertube.js index de25cfa..478a18f 100644 --- a/src/assets/javascripts/peertube.js +++ b/src/assets/javascripts/peertube.js @@ -15,16 +15,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.simpleertube = val simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = simpleertubeNormalRedirectsChecks.indexOf(instance) if (a > -1) simpleertubeNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ peertubeRedirects: redirects, simpleertubeNormalRedirectsChecks, + simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor], + simpleertubeI2pRedirectsChecks: [...redirects.simpleertube.i2p], + simpleertubeLokiRedirectsChecks: [...redirects.simpleertube.loki], }) }) } @@ -162,11 +165,11 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal] - for (const instance of r.cloudflareBlackList) { - let i = simpleertubeNormalRedirectsChecks.indexOf(instance) - if (i > -1) simpleertubeNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = simpleertubeNormalRedirectsChecks.indexOf(instance) + if (a > -1) simpleertubeNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set( { @@ -174,7 +177,7 @@ function initDefaults() { disablePeertubeTargets: true, peertubeRedirects: redirects, - simpleertubeNormalRedirectsChecks: simpleertubeNormalRedirectsChecks, + simpleertubeNormalRedirectsChecks, simpleertubeNormalCustomRedirects: [], simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor], diff --git a/src/assets/javascripts/quora.js b/src/assets/javascripts/quora.js index 3f9e418..578cfe7 100644 --- a/src/assets/javascripts/quora.js +++ b/src/assets/javascripts/quora.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.quetre = val quetreNormalRedirectsChecks = [...redirects.quetre.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = quetreNormalRedirectsChecks.indexOf(instance) if (a > -1) quetreNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ quoraRedirects: redirects, quetreNormalRedirectsChecks, + quetreTorRedirectsChecks: [...redirects.quetre.tor], + quetreI2pRedirectsChecks: [...redirects.quetre.i2p], + quetreLokiRedirectsChecks: [...redirects.quetre.loki], }) }) } @@ -157,26 +160,33 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.set( - { - disableQuora: false, + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { + quetreNormalRedirectsChecks = [...redirects.quetre.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = quetreNormalRedirectsChecks.indexOf(instance) + if (a > -1) quetreNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set( + { + disableQuora: false, - quoraRedirects: redirects, + quoraRedirects: redirects, - quetreNormalRedirectsChecks: [...redirects.quetre.normal], - quetreNormalCustomRedirects: [], + quetreNormalRedirectsChecks, + quetreNormalCustomRedirects: [], - quetreTorRedirectsChecks: [...redirects.quetre.tor], - quetreTorCustomRedirects: [], + quetreTorRedirectsChecks: [...redirects.quetre.tor], + quetreTorCustomRedirects: [], - quetreI2pRedirectsChecks: [...redirects.quetre.i2p], - quetreI2pCustomRedirects: [], + quetreI2pRedirectsChecks: [...redirects.quetre.i2p], + quetreI2pCustomRedirects: [], - quetreLokiRedirectsChecks: [...redirects.quetre.loki], - quetreLokiCustomRedirects: [], - }, - () => resolve() - ) + quetreLokiRedirectsChecks: [...redirects.quetre.loki], + quetreLokiCustomRedirects: [], + }, + () => resolve() + ) + }) }) }) } diff --git a/src/assets/javascripts/reddit.js b/src/assets/javascripts/reddit.js index d1bf7b9..ca1993b 100644 --- a/src/assets/javascripts/reddit.js +++ b/src/assets/javascripts/reddit.js @@ -16,11 +16,11 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects = val libredditNormalRedirectsChecks = [...redirects.libreddit.normal] tedditNormalRedirectsChecks = [...redirects.teddit.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = libredditNormalRedirectsChecks.indexOf(instance) if (a > -1) libredditNormalRedirectsChecks.splice(a, 1) @@ -30,7 +30,13 @@ function setRedirects(val) { browser.storage.local.set({ redditRedirects: redirects, libredditNormalRedirectsChecks, + libredditTorRedirectsChecks: [...redirects.libreddit.tor], + libredditI2pRedirectsChecks: [...redirects.libreddit.i2p], + libredditLokiRedirectsChecks: [...redirects.libreddit.loki], tedditNormalRedirectsChecks, + tedditTorRedirectsChecks: [...redirects.teddit.tor], + tedditI2pRedirectsChecks: [...redirects.teddit.i2p], + tedditLokiRedirectsChecks: [...redirects.teddit.loki], }) }) } @@ -330,17 +336,15 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { libredditNormalRedirectsChecks = [...redirects.libreddit.normal] tedditNormalRedirectsChecks = [...redirects.teddit.normal] - for (const instance of r.cloudflareBlackList) { - let i + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = libredditNormalRedirectsChecks.indexOf(instance) + if (a > -1) libredditNormalRedirectsChecks.splice(a, 1) - i = libredditNormalRedirectsChecks.indexOf(instance) - if (i > -1) libredditNormalRedirectsChecks.splice(i, 1) - - i = tedditNormalRedirectsChecks.indexOf(instance) - if (i > -1) tedditNormalRedirectsChecks.splice(i, 1) + const b = tedditNormalRedirectsChecks.indexOf(instance) + if (b > -1) tedditNormalRedirectsChecks.splice(b, 1) } browser.storage.local.set( { @@ -348,7 +352,7 @@ function initDefaults() { redditFrontend: "libreddit", redditRedirects: redirects, - libredditNormalRedirectsChecks: libredditNormalRedirectsChecks, + libredditNormalRedirectsChecks, libredditNormalCustomRedirects: [], libredditTorRedirectsChecks: [...redirects.libreddit.tor], @@ -360,7 +364,7 @@ function initDefaults() { libredditLokiRedirectsChecks: [...redirects.libreddit.loki], libredditLokiCustomRedirects: [], - tedditNormalRedirectsChecks: tedditNormalRedirectsChecks, + tedditNormalRedirectsChecks, tedditNormalCustomRedirects: [], tedditTorRedirectsChecks: [...redirects.teddit.tor], diff --git a/src/assets/javascripts/reuters.js b/src/assets/javascripts/reuters.js index e4afa19..51d1632 100644 --- a/src/assets/javascripts/reuters.js +++ b/src/assets/javascripts/reuters.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.neuters = val neutersNormalRedirectsChecks = [...redirects.neuters.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = neutersNormalRedirectsChecks.indexOf(instance) if (a > -1) neutersNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ neutersRedirects: redirects, neutersNormalRedirectsChecks, + neutersTorRedirectsChecks: [...redirects.neuters.tor], + neutersI2pRedirectsChecks: [...redirects.neuters.i2p], + neutersLokiRedirectsChecks: [...redirects.neuters.loki], }) }) } @@ -109,26 +112,33 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.set( - { - disableReuters: true, + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { + neutersNormalRedirectsChecks = [...redirects.neuters.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = neutersNormalRedirectsChecks.indexOf(instance) + if (a > -1) neutersNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set( + { + disableReuters: true, - reutersRedirects: redirects, + reutersRedirects: redirects, - neutersNormalRedirectsChecks: [...redirects.neuters.normal], - neutersNormalCustomRedirects: [], + neutersNormalRedirectsChecks, + neutersNormalCustomRedirects: [], - neutersTorRedirectsChecks: [...redirects.neuters.tor], - neutersTorCustomRedirects: [], + neutersTorRedirectsChecks: [...redirects.neuters.tor], + neutersTorCustomRedirects: [], - neutersI2pRedirectsChecks: [...redirects.neuters.i2p], - neutersI2pCustomRedirects: [], + neutersI2pRedirectsChecks: [...redirects.neuters.i2p], + neutersI2pCustomRedirects: [], - neutersLokiRedirectsChecks: [...redirects.neuters.loki], - neutersLokiCustomRedirects: [], - }, - () => resolve() - ) + neutersLokiRedirectsChecks: [...redirects.neuters.loki], + neutersLokiCustomRedirects: [], + }, + () => resolve() + ) + }) }) }) } diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js index 2a5f486..64b56ca 100644 --- a/src/assets/javascripts/search.js +++ b/src/assets/javascripts/search.js @@ -8,52 +8,22 @@ const frontends = new Array("searx", "searxng", "whoogle", "librex") const protocols = new Array("normal", "tor", "i2p", "loki") const redirects = {} -/* - "searx": { - "normal": [], - "tor": [], - "i2p": [] - }, - "searxng": { - "normal": [], - "tor": [], - "i2p": [] - }, - "whoogle": { - "normal": [], - "tor": [], - "i2p": [] - } - */ -//}; - -//let tmp = "{" for (let i = 0; i < frontends.length; i++) { - //redirects.frontends[i] = {} - //redirects.push(frontends[i]) - //tmp = frontends[i] - //tmp = tmp + '\n"' + frontends[i] + '": {' redirects[frontends[i]] = {} for (let x = 0; x < protocols.length; x++) { - //redirects.frontends[i].protocols = [] - //tmp = tmp + '\n"' + protocols[x] + '": [],' redirects[frontends[i]][protocols[x]] = [] } - //tmp = tmp + "\n}," } -//tmp = tmp + "\n}" - -//const redirects = JSON.parse(tmp) function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects = val searxNormalRedirectsChecks = [...redirects.searx.normal] searxngNormalRedirectsChecks = [...redirects.searxng.normal] whoogleNormalRedirectsChecks = [...redirects.whoogle.normal] librexNormalRedirectsChecks = [...redirects.librex.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = searxNormalRedirectsChecks.indexOf(instance) if (a > -1) searxNormalRedirectsChecks.splice(a, 1) @@ -69,9 +39,21 @@ function setRedirects(val) { browser.storage.local.set({ searchRedirects: redirects, searxNormalRedirectsChecks, + searxTorRedirectsChecks: [...redirects.searx.tor], + searxI2pRedirectsChecks: [...redirects.searx.i2p], + searxLokiRedirectsChecks: [...redirects.searx.loki], searxngNormalRedirectsChecks, + searxngTorRedirectsChecks: [...redirects.searxng.tor], + searxngI2pRedirectsChecks: [...redirects.searxng.i2p], + searxngLokiRedirectsChecks: [...redirects.searxng.loki], whoogleNormalRedirectsChecks, + whoogleTorRedirectsChecks: [...redirects.whoogle.tor], + whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p], + whoogleLokiRedirectsChecks: [...redirects.whoogle.loki], librexNormalRedirectsChecks, + librexTorRedirectsChecks: [...redirects.librex.tor], + librexI2pRedirectsChecks: [...redirects.librex.i2p], + librexLokiRedirectsChecks: [...redirects.librex.loki], }) }) } @@ -499,34 +481,27 @@ function initDefaults() { .then(response => response.text()) .then(async data => { let dataJson = JSON.parse(data) - /* - redirects.searx = dataJson.searx; - redirects.searxng = dataJson.searxng; - redirects.whoogle = dataJson.whoogle; - */ for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { - whoogleNormalRedirectsChecks = [...redirects.whoogle.normal] + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { searxNormalRedirectsChecks = [...redirects.searx.normal] searxngNormalRedirectsChecks = [...redirects.searxng.normal] + whoogleNormalRedirectsChecks = [...redirects.whoogle.normal] librexNormalRedirectsChecks = [...redirects.librex.normal] - for (const instance of r.cloudflareBlackList) { - let i + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = searxNormalRedirectsChecks.indexOf(instance) + if (a > -1) searxNormalRedirectsChecks.splice(a, 1) - i = whoogleNormalRedirectsChecks.indexOf(instance) - if (i > -1) whoogleNormalRedirectsChecks.splice(i, 1) + const b = searxngNormalRedirectsChecks.indexOf(instance) + if (b > -1) searxngNormalRedirectsChecks.splice(b, 1) - i = searxNormalRedirectsChecks.indexOf(instance) - if (i > -1) searxNormalRedirectsChecks.splice(i, 1) + const c = whoogleNormalRedirectsChecks.indexOf(instance) + if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1) - i = searxngNormalRedirectsChecks.indexOf(instance) - if (i > -1) searxngNormalRedirectsChecks.splice(i, 1) - - i = librexNormalRedirectsChecks.indexOf(instance) - if (i > -1) librexNormalRedirectsChecks.splice(i, 1) + const d = librexNormalRedirectsChecks.indexOf(instance) + if (d > -1) librexNormalRedirectsChecks.splice(d, 1) } browser.storage.local.set( { @@ -535,7 +510,7 @@ function initDefaults() { searchRedirects: redirects, searxngCustomSettings: false, - whoogleNormalRedirectsChecks: whoogleNormalRedirectsChecks, + whoogleNormalRedirectsChecks, whoogleNormalCustomRedirects: [], whoogleTorRedirectsChecks: [...redirects.whoogle.tor], @@ -547,7 +522,7 @@ function initDefaults() { whoogleLokiRedirectsChecks: [...redirects.whoogle.loki], whoogleLokiCustomRedirects: [], - searxNormalRedirectsChecks: searxNormalRedirectsChecks, + searxNormalRedirectsChecks, searxNormalCustomRedirects: [], searxTorRedirectsChecks: [...redirects.searx.tor], @@ -559,7 +534,7 @@ function initDefaults() { searxLokiRedirectsChecks: [...redirects.searx.loki], searxLokiCustomRedirects: [], - searxngNormalRedirectsChecks: searxngNormalRedirectsChecks, + searxngNormalRedirectsChecks, searxngNormalCustomRedirects: [], searxngTorRedirectsChecks: [...redirects.searxng.tor], @@ -571,7 +546,7 @@ function initDefaults() { searxngLokiRedirectsChecks: [...redirects.searxng.loki], searxngLokiCustomRedirects: [], - librexNormalRedirectsChecks: librexNormalRedirectsChecks, + librexNormalRedirectsChecks, librexNormalCustomRedirects: [], librexTorRedirectsChecks: [...redirects.librex.tor], diff --git a/src/assets/javascripts/sendTargets.js b/src/assets/javascripts/sendTargets.js index ba892fe..a52ab6f 100644 --- a/src/assets/javascripts/sendTargets.js +++ b/src/assets/javascripts/sendTargets.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.send = val sendNormalRedirectsChecks = [...redirects.send.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = sendNormalRedirectsChecks.indexOf(instance) if (a > -1) sendNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ sendTargetsRedirects: redirects, sendNormalRedirectsChecks, + sendTorRedirectsChecks: [...redirects.send.tor], + sendI2pRedirectsChecks: [...redirects.send.i2p], + sendLokiRedirectsChecks: [...redirects.send.loki], }) }) } @@ -154,18 +157,18 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { sendNormalRedirectsChecks = [...redirects.send.normal] - for (const instance of r.cloudflareBlackList) { - let i = sendNormalRedirectsChecks.indexOf(instance) - if (i > -1) sendNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = sendNormalRedirectsChecks.indexOf(instance) + if (a > -1) sendNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set( { disableSendTarget: false, sendTargetsRedirects: redirects, - sendNormalRedirectsChecks: sendNormalRedirectsChecks, + sendNormalRedirectsChecks, sendNormalCustomRedirects: [], sendTorRedirectsChecks: [...redirects.send.tor], diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js index 9d2660d..71f0768 100644 --- a/src/assets/javascripts/tiktok.js +++ b/src/assets/javascripts/tiktok.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.proxiTok = val proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = proxiTokNormalRedirectsChecks.indexOf(instance) if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ tiktokRedirects: redirects, proxiTokNormalRedirectsChecks, + proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor], + proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p], + proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki], }) }) } @@ -202,26 +205,33 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.set( - { - disableTiktok: false, + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { + proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = proxiTokNormalRedirectsChecks.indexOf(instance) + if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1) + } + browser.storage.local.set( + { + disableTiktok: false, - tiktokRedirects: redirects, + tiktokRedirects: redirects, - proxiTokNormalRedirectsChecks: [...redirects.proxiTok.normal], - proxiTokNormalCustomRedirects: [], + proxiTokNormalRedirectsChecks, + proxiTokNormalCustomRedirects: [], - proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor], - proxiTokTorCustomRedirects: [], + proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor], + proxiTokTorCustomRedirects: [], - proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p], - proxiTokI2pCustomRedirects: [], + proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p], + proxiTokI2pCustomRedirects: [], - proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki], - proxiTokLokiCustomRedirects: [], - }, - () => resolve() - ) + proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki], + proxiTokLokiCustomRedirects: [], + }, + () => resolve() + ) + }) }) }) } diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js index 893be4e..993c630 100644 --- a/src/assets/javascripts/translate/translate.js +++ b/src/assets/javascripts/translate/translate.js @@ -91,21 +91,27 @@ init() browser.storage.onChanged.addListener(init) function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects = val + simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal] lingvaNormalRedirectsChecks = [...redirects.lingva.normal] - for (const instance of r.cloudflareBlackList) { - const i = lingvaNormalRedirectsChecks.indexOf(instance) - if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = simplyTranslateNormalCustomRedirects.indexOf(instance) + if (a > -1) simplyTranslateNormalCustomRedirects.splice(a, 1) + + const b = lingvaNormalRedirectsChecks.indexOf(instance) + if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1) } browser.storage.local.set({ translateRedirects: redirects, - simplyTranslateNormalRedirectsChecks: redirects.simplyTranslate.normal, - simplyTranslateTorRedirectsChecks: redirects.simplyTranslate.tor, - simplyTranslateI2pRedirectsChecks: redirects.simplyTranslate.i2p, - simplyTranslateLokiRedirectsChecks: redirects.simplyTranslate.loki, + simplyTranslateNormalRedirectsChecks, + simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor], + simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p], + simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki], lingvaNormalRedirectsChecks, - lingvaTorRedirectsChecks: redirects.lingva.tor, + lingvaTorRedirectsChecks: [...redirects.lingva.tor], + lingvaI2pRedirectsChecks: [...redirects.lingva.i2p], + lingvaLokiRedirectsChecks: [...redirects.lingva.loki], }) }) } @@ -271,7 +277,7 @@ function switchInstance(url, disableOverride) { return } - let instancesList + let instancesList = [] if (protocol == "loki") { if (translateFrontend == "simplyTranslate") instancesList = [...simplyTranslateLokiRedirectsChecks, ...simplyTranslateLokiCustomRedirects] @@ -304,16 +310,20 @@ function initDefaults() { return new Promise(async resolve => { fetch("/instances/data.json") .then(response => response.text()) - .then(data => { + .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 => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { + simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal] lingvaNormalRedirectsChecks = [...redirects.lingva.normal] - for (const instance of r.cloudflareBlackList) { - const i = lingvaNormalRedirectsChecks.indexOf(instance) - if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = simplyTranslateNormalRedirectsChecks.indexOf(instance) + if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1) + + const b = lingvaNormalRedirectsChecks.indexOf(instance) + if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1) } browser.storage.local.set( { @@ -321,7 +331,7 @@ function initDefaults() { translateFrontend: "simplyTranslate", translateRedirects: redirects, - simplyTranslateNormalRedirectsChecks: [...redirects.simplyTranslate.normal], + simplyTranslateNormalRedirectsChecks, simplyTranslateNormalCustomRedirects: [], simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor], @@ -333,7 +343,7 @@ function initDefaults() { simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki], simplyTranslateLokiCustomRedirects: [], - lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks, + lingvaNormalRedirectsChecks, lingvaNormalCustomRedirects: [], lingvaTorRedirectsChecks: [...redirects.lingva.tor], diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js index b3c3356..7111ad0 100644 --- a/src/assets/javascripts/twitter.js +++ b/src/assets/javascripts/twitter.js @@ -17,10 +17,10 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList"], r => { + browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => { redirects.nitter = val nitterNormalRedirectsChecks = [...redirects.nitter.normal] - for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList]) { + for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) { let i = nitterNormalRedirectsChecks.indexOf(instance) if (i > -1) nitterNormalRedirectsChecks.splice(i, 1) } @@ -28,6 +28,8 @@ function setRedirects(val) { twitterRedirects: redirects, nitterNormalRedirectsChecks, nitterTorRedirectsChecks: [...redirects.nitter.tor], + nitterI2pRedirectsChecks: [...redirects.nitter.i2p], + nitterLokiRedirectsChecks: [...redirects.nitter.loki], }) }) } @@ -224,9 +226,9 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList"], async r => { + browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], async r => { nitterNormalRedirectsChecks = [...redirects.nitter.normal] - for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList]) { + for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) { let i = nitterNormalRedirectsChecks.indexOf(instance) if (i > -1) nitterNormalRedirectsChecks.splice(i, 1) } @@ -236,7 +238,7 @@ function initDefaults() { twitterRedirects: redirects, twitterRedirectType: "both", - nitterNormalRedirectsChecks: nitterNormalRedirectsChecks, + nitterNormalRedirectsChecks, nitterNormalCustomRedirects: [], nitterTorRedirectsChecks: [...redirects.nitter.tor], diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js index e9a3040..50ada76 100644 --- a/src/assets/javascripts/utils.js +++ b/src/assets/javascripts/utils.js @@ -25,7 +25,7 @@ function getRandomInstance(instances) { let cloudflareBlackList = [] let authenticateBlackList = [] -let offlineBlacklist = [] +let offlineBlackList = [] async function initBlackList() { return new Promise(resolve => { fetch("/instances/blacklist.json") @@ -33,7 +33,7 @@ async function initBlackList() { .then(data => { cloudflareBlackList = JSON.parse(data).cloudflare authenticateBlackList = JSON.parse(data).authenticate - offlineBlacklist = JSON.parse(data).offlineBlacklist + offlineBlackList = JSON.parse(data).offline resolve() }) }) @@ -62,6 +62,7 @@ function updateInstances() { invidious: instances.invidious, piped: instances.piped, pipedMaterial: instances.pipedMaterial, + cloudtube: instances.cloudtube, }) twitterHelper.setRedirects(instances.nitter) instagramHelper.setRedirects(instances.bibliogram) @@ -164,7 +165,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) { ...redirects[name][protocol].map(x => { const cloudflare = cloudflareBlackList.includes(x) ? ' cloudflare' : "" const authenticate = authenticateBlackList.includes(x) ? ' authenticate' : "" - const offline = offlineBlacklist.includes(x) ? ' offline' : "" + const offline = offlineBlackList.includes(x) ? ' offline' : "" let ms = instancesLatency[x] let latencyColor = ms <= 1000 ? "green" : ms <= 2000 ? "orange" : "red" @@ -250,34 +251,57 @@ async function processDefaultCustomInstances(target, name, protocol, document) { }) } -async function ping(href) { +function ping(href) { return new Promise(async resolve => { + let average = 0 + let time + for (let i = 0; i < 3; i++) { + time = await pingOnce(href) + if (i == 0) continue + if (time >= 5000) { + resolve(time) + return + } + average += time + } + average = parseInt(average / 3) + resolve(average) + }) +} + +function pingOnce(href) { + return new Promise(async resolve => { + let started let http = new XMLHttpRequest() - http.open("GET", `${href}?_=${new Date().getTime()}`, /*async*/ true) http.timeout = 5000 - let started = new Date().getTime() + http.ontimeout = () => resolve(5000) + http.onerror = () => resolve() http.onreadystatechange = () => { if (http.readyState == 2) { if (http.status == 200) { let ended = new Date().getTime() http.abort() resolve(ended - started) - } else resolve(5000 + http.status) + } else { + resolve(5000 + http.status) + } } } - http.ontimeout = () => resolve(5000) - http.onerror = () => resolve() - try { - http.send(null) - } catch (exception) { - resolve() - } + http.open("GET", `${href}?_=${new Date().getTime()}`, true) + started = new Date().getTime() + http.send(null) }) } -async function testLatency(element, instances) { +async function testLatency(element, instances, frontend) { return new Promise(async resolve => { let myList = {} + let latencyThreshold + let redirectsChecks = [] + browser.storage.local.get(["latencyThreshold", `${frontend}NormalRedirectsChecks`], r => { + latencyThreshold = r.latencyThreshold + redirectsChecks = r[`${frontend}NormalRedirectsChecks`] + }) for (const href of instances) await ping(href).then(time => { if (time) { @@ -287,6 +311,12 @@ async function testLatency(element, instances) { else if (time <= 2000) color = "orange" else color = "red" + if (time > latencyThreshold) { + redirectsChecks.splice(redirectsChecks.indexOf(href), 1) + } + + browser.storage.local.set({ [`${frontend}NormalRedirectsChecks`]: redirectsChecks }) + let text if (time == 5000) text = "5000ms+" else if (time > 5000) text = `ERROR: ${time - 5000}` @@ -486,8 +516,8 @@ function latency(name, frontend, document, location) { let redirects = r[key] const oldHtml = latencyLabel.innerHTML latencyLabel.innerHTML = "..." - testLatency(latencyLabel, redirects[frontend].normal).then(r => { - browser.storage.local.set({ [`${frontend} Latency`]: r }) + testLatency(latencyLabel, redirects[frontend].normal, frontend).then(r => { + browser.storage.local.set({ [`${frontend}Latency`]: r }) latencyLabel.innerHTML = oldHtml processDefaultCustomInstances(name, frontend, "normal", document) latencyElement.removeEventListener("click", reloadWindow) diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js index 04191d1..2d0f75a 100644 --- a/src/assets/javascripts/wikipedia.js +++ b/src/assets/javascripts/wikipedia.js @@ -17,16 +17,19 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects.wikiless = val wikilessNormalRedirectsChecks = [...redirects.wikiless.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = wikilessNormalRedirectsChecks.indexOf(instance) if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set({ wikipediaRedirects: redirects, wikilessNormalRedirectsChecks, + wikilessTorRedirectsChecks: [...redirects.wikiless.tor], + wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p], + wikilessLokiRedirectsChecks: [...redirects.wikiless.loki], }) }) } @@ -200,18 +203,18 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { wikilessNormalRedirectsChecks = [...redirects.wikiless.normal] - for (const instance of r.cloudflareBlackList) { - let i = wikilessNormalRedirectsChecks.indexOf(instance) - if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1) + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = wikilessNormalRedirectsChecks.indexOf(instance) + if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1) } browser.storage.local.set( { disableWikipedia: true, wikipediaRedirects: redirects, - wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks, + wikilessNormalRedirectsChecks, wikilessNormalCustomRedirects: [], wikilessTorRedirectsChecks: [...redirects.wikiless.tor], diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js index 7e02dcd..32f06b9 100644 --- a/src/assets/javascripts/youtube/youtube.js +++ b/src/assets/javascripts/youtube/youtube.js @@ -30,14 +30,13 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { - for (let i = 0; i < frontends.length; i++) { - redirects.frontends = val.frontends - } + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { + redirects = val invidiousNormalRedirectsChecks = [...redirects.invidious.normal] pipedNormalRedirectsChecks = [...redirects.piped.normal] pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal] - for (const instance of r.cloudflareBlackList) { + cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal] + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = invidiousNormalRedirectsChecks.indexOf(instance) if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1) @@ -53,9 +52,21 @@ function setRedirects(val) { browser.storage.local.set({ youtubeRedirects: redirects, invidiousNormalRedirectsChecks, + invidiousTorRedirectsChecks: [...redirects.invidious.tor], + invidiousI2pRedirectsChecks: [...redirects.invidious.i2p], + invidiousLokiRedirectsChecks: [...redirects.invidious.loki], pipedNormalRedirectsChecks, + pipedTorRedirectsChecks: [...redirects.piped.tor], + pipedI2pRedirectsChecks: [...redirects.piped.i2p], + pipedLokiRedirectsChecks: [...redirects.piped.loki], pipedMaterialNormalRedirectsChecks, + pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor], + pipedMaterialI2pRedirectsChecks: [...redirects.pipedMaterial.i2p], + pipedMaterialLokiRedirectsChecks: [...redirects.pipedMaterial.loki], cloudtubeNormalRedirectsChecks, + cloudtubeTorRedirectsChecks: [...redirects.cloudtube.tor], + cloudtubeI2pRedirectsChecks: [...redirects.cloudtube.i2p], + cloudtubeLokiRedirectsChecks: [...redirects.cloudtube.loki], }) }) } @@ -450,13 +461,12 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { invidiousNormalRedirectsChecks = [...redirects.invidious.normal] pipedNormalRedirectsChecks = [...redirects.piped.normal] pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal] cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal] - - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = invidiousNormalRedirectsChecks.indexOf(instance) if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1) @@ -467,9 +477,8 @@ function initDefaults() { if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1) const d = cloudtubeNormalRedirectsChecks.indexOf(instance) - if (d > -1) cloudtubeNormalRedirectsChecks.indexOf(instance) + if (c > -1) cloudtubeNormalRedirectsChecks.splice(d, 1) } - browser.storage.local.set( { disableYoutube: false, @@ -478,7 +487,7 @@ function initDefaults() { youtubeRedirects: redirects, youtubeFrontend: "invidious", - invidiousNormalRedirectsChecks: invidiousNormalRedirectsChecks, + invidiousNormalRedirectsChecks, invidiousNormalCustomRedirects: [], invidiousTorRedirectsChecks: [...redirects.invidious.tor], @@ -490,7 +499,7 @@ function initDefaults() { invidiousLokiRedirectsChecks: [...redirects.invidious.loki], invidiousLokiCustomRedirects: [], - pipedNormalRedirectsChecks: pipedNormalRedirectsChecks, + pipedNormalRedirectsChecks, pipedNormalCustomRedirects: [], pipedTorRedirectsChecks: [...redirects.piped.tor], diff --git a/src/assets/javascripts/youtubeMusic.js b/src/assets/javascripts/youtubeMusic.js index 3ff9a17..797da4d 100644 --- a/src/assets/javascripts/youtubeMusic.js +++ b/src/assets/javascripts/youtubeMusic.js @@ -19,11 +19,11 @@ for (let i = 0; i < frontends.length; i++) { } function setRedirects(val) { - browser.storage.local.get("cloudflareBlackList", r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => { redirects = val beatbumpNormalRedirectsChecks = [...redirects.beatbump.normal] hyperpipeNormalRedirectsChecks = [...redirects.hyperpipe.normal] - for (const instance of r.cloudflareBlackList) { + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { const a = beatbumpNormalRedirectsChecks.indexOf(instance) if (a > -1) beatbumpNormalRedirectsChecks.splice(a, 1) @@ -33,7 +33,13 @@ function setRedirects(val) { browser.storage.local.set({ youtubeMusicRedirects: redirects, beatbumpNormalRedirectsChecks, + beatbumpTorRedirectsChecks: [...redirects.beatbump.tor], + beatbumpI2pRedirectsChecks: [...redirects.beatbump.i2p], + beatbumpLokiRedirectsChecks: [...redirects.beatbump.loki], hyperpipeNormalRedirectsChecks, + hyperpipeTorRedirectsChecks: [...redirects.hyperpipe.tor], + hyperpipeI2pRedirectsChecks: [...redirects.hyperpipe.i2p], + hyperpipeLokiRedirectsChecks: [...redirects.hyperpipe.loki], }) }) } @@ -266,17 +272,15 @@ function initDefaults() { for (let i = 0; i < frontends.length; i++) { redirects[frontends[i]] = dataJson[frontends[i]] } - browser.storage.local.get("cloudflareBlackList", async r => { + browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => { beatbumpNormalRedirectsChecks = [...redirects.beatbump.normal] hyperpipeNormalRedirectsChecks = [...redirects.hyperpipe.normal] - for (const instance of r.cloudflareBlackList) { - let i + for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) { + const a = beatbumpNormalRedirectsChecks.indexOf(instance) + if (a > -1) beatbumpNormalRedirectsChecks.splice(a, 1) - i = beatbumpNormalRedirectsChecks.indexOf(instance) - if (i > -1) beatbumpNormalRedirectsChecks.splice(i, 1) - - i = hyperpipeNormalRedirectsChecks.indexOf(instance) - if (i > -1) hyperpipeNormalRedirectsChecks.splice(i, 1) + const b = hyperpipeNormalRedirectsChecks.indexOf(instance) + if (b > -1) hyperpipeNormalRedirectsChecks.splice(b, 1) } browser.storage.local.set( { @@ -284,7 +288,7 @@ function initDefaults() { youtubeMusicFrontend: "hyperpipe", youtubeMusicRedirects: redirects, - beatbumpNormalRedirectsChecks: beatbumpNormalRedirectsChecks, + beatbumpNormalRedirectsChecks, beatbumpNormalCustomRedirects: [], beatbumpTorRedirectsChecks: [...redirects.beatbump.tor], @@ -296,7 +300,7 @@ function initDefaults() { beatbumpLokiRedirectsChecks: [...redirects.beatbump.loki], beatbumpLokiCustomRedirects: [], - hyperpipeNormalRedirectsChecks: hyperpipeNormalRedirectsChecks, + hyperpipeNormalRedirectsChecks, hyperpipeNormalCustomRedirects: [], hyperpipeTorRedirectsChecks: [...redirects.hyperpipe.tor], diff --git a/src/instances/blacklist.json b/src/instances/blacklist.json index 221058e..e7756f8 100644 --- a/src/instances/blacklist.json +++ b/src/instances/blacklist.json @@ -4,9 +4,8 @@ "https://piped.kavin.rocks", "https://piped.tokhmi.xyz", "https://piped.moomoo.me", - "https://piped.syncpundit.com", "https://piped.mha.fi", - "https://jp-piped.shimul.me", + "https://de-piped.shimul.me", "https://pipedus.palash.dev", "https://piped.waffle.wiki", "https://watch.whatever.social", @@ -68,7 +67,6 @@ "https://jsearch.pw", "https://searx.gnu.style", "https://searx.semipvt.com", - "https://searx.vanwa.tech", "https://etsi.me", "https://s.zhaocloud.net", "https://search.vidhukant.xyz", diff --git a/src/instances/data.json b/src/instances/data.json index c5334a4..3e82842 100644 --- a/src/instances/data.json +++ b/src/instances/data.json @@ -12,6 +12,7 @@ "https://invidious.sethforprivacy.com", "https://invidious.tiekoetter.com", "https://inv.bp.projectsegfau.lt", + "https://invidious.projectsegfau.lt", "https://inv.vern.cc", "https://invidious.nerdvpn.de", "https://inv.privacy.com.de", @@ -19,7 +20,6 @@ "https://youtube.076.ne.jp", "https://invidious.weblibre.org", "https://invidious.snopyta.org", - "https://invidious.projectsegfau.lt", "https://invidious.esmailelbob.xyz", "https://invidious.namazso.eu" ], @@ -43,13 +43,13 @@ "https://piped.tokhmi.xyz", "https://piped.moomoo.me", "https://il.ax", - "https://piped.syncpundit.com", "https://piped.mha.fi", - "https://jp-piped.shimul.me", + "https://de-piped.shimul.me", "https://pipedus.palash.dev", "https://piped.waffle.wiki", "https://watch.whatever.social", "https://yt.jae.fi", + "https://piped.mint.lgbt", "https://piped.esmailelbob.xyz", "https://piped.projectsegfau.lt" ], @@ -501,7 +501,6 @@ "https://searx.tuxcloud.net", "https://searx.tyil.nl", "https://searx.vanwa.tech", - "https://searx.vimproved.me", "https://searx.webheberg.info", "https://searx.xyz", "https://searx.zapashcanon.fr", @@ -519,8 +518,7 @@ "http://yra4tke2pwcnatxjkufpw6kvebu3h3ti2jca2lcdpgx3mpwol326lzid.onion", "http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion", "http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion", - "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion", - "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion" + "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion" ], "i2p": [ "http://ransack.i2p", @@ -582,6 +580,7 @@ "https://searx.sev.monster", "https://searx.slipfox.xyz/searx", "https://searx.tiekoetter.com", + "https://searx.vimproved.me", "https://searx.zcyph.cc", "https://searxng.au/searx", "https://searxng.tordenskjold.de", @@ -603,6 +602,7 @@ "http://searchoorwalty5a2ailrboa2asqyts2u7bdoqwnjefpgjobpvtzn4qd.onion", "http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion", "http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion", + "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion", "http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion", "http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion", "http://fub6vgedgeadlu3ctskrpkcqjruh76tckwtj5swfhyblgml2tzgzckqd.onion/searx", @@ -820,7 +820,6 @@ "https://tube-enseignement-professionnel.apps.education.fr", "https://socpeertube.ru", "https://videos.laliguepaysdelaloire.org", - "https://videotube.duckdns.org", "https://quantube.win", "https://twctube.twc-zone.eu", "https://vhs.absturztau.be", diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py index 07adbce..eab4a92 100644 --- a/src/instances/get_instances.py +++ b/src/instances/get_instances.py @@ -92,7 +92,7 @@ def is_authenticate(url): def is_offline(url): try: r = requests.get(url, timeout=5) - if r.status_code != 200: + if r.status_code >= 400: print(url + ' is ' + Fore.RED + 'offline' + Style.RESET_ALL) print("Status code") print(r.status_code) diff --git a/src/pages/background/background.js b/src/pages/background/background.js index a1b0c9c..c6e9ab7 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -32,25 +32,27 @@ browser.runtime.onInstalled.addListener(details => { browser.storage.local.clear(() => { browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare }, () => { browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }, () => { - generalHelper.initDefaults() - youtubeHelper.initDefaults() - youtubeMusicHelper.initDefaults() - twitterHelper.initDefaults() - instagramHelper.initDefaults() - mapsHelper.initDefaults() - searchHelper.initDefaults() - translateHelper.initDefaults() - mediumHelper.initDefaults() - quoraHelper.initDefaults() - libremdbHelper.initDefaults() - reutersHelper.initDefaults() - redditHelper.initDefaults() - wikipediaHelper.initDefaults() - imgurHelper.initDefaults() - tiktokHelper.initDefaults() - sendTargetsHelper.initDefaults() - peertubeHelper.initDefaults() - lbryHelper.initDefaults() + browser.storage.local.set({ offlineBlackList: JSON.parse(data).offline }, () => { + generalHelper.initDefaults() + youtubeHelper.initDefaults() + youtubeMusicHelper.initDefaults() + twitterHelper.initDefaults() + instagramHelper.initDefaults() + mapsHelper.initDefaults() + searchHelper.initDefaults() + translateHelper.initDefaults() + mediumHelper.initDefaults() + quoraHelper.initDefaults() + libremdbHelper.initDefaults() + reutersHelper.initDefaults() + redditHelper.initDefaults() + wikipediaHelper.initDefaults() + imgurHelper.initDefaults() + tiktokHelper.initDefaults() + sendTargetsHelper.initDefaults() + peertubeHelper.initDefaults() + lbryHelper.initDefaults() + }) }) }) }) diff --git a/src/pages/options/index.html b/src/pages/options/index.html index a868ad3..077b3da 100644 --- a/src/pages/options/index.html +++ b/src/pages/options/index.html @@ -21,7 +21,7 @@
Instagram
TikTok
Reddit
-
Imgur
+
Imgur
Wikipedia
@@ -34,7 +34,7 @@
IMDb
Reuters
PeerTube
-
LBRY/Odysee
+
LBRY
@@ -94,6 +94,13 @@

+
+
+

Latency Threshold

+ + +
+

@@ -173,7 +180,7 @@
-
+
Imgur
@@ -254,7 +261,7 @@
- LBRY/Odysee + LBRY
@@ -3179,4 +3186,4 @@
- \ No newline at end of file + diff --git a/src/pages/options/index.pug b/src/pages/options/index.pug index 553f918..3711fda 100644 --- a/src/pages/options/index.pug +++ b/src/pages/options/index.pug @@ -33,4 +33,4 @@ html#elementToShowWithJavaScript(lang="en") include ./widgets/sendTargets.pug include ./widgets/about.pug - script(type="module" src="./index.js") \ No newline at end of file + script(type="module" src="./index.js") diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js index c64eb25..d682425 100644 --- a/src/pages/options/widgets/general.js +++ b/src/pages/options/widgets/general.js @@ -81,6 +81,7 @@ resetSettings.addEventListener("click", async () => { .then(response => response.text()) .then(async data => { browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare }, () => { + browser.storage.local.set({ offlineBlackList: JSON.parse(data).offline }, () => { browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }, async () => { await generalHelper.initDefaults() await youtubeHelper.initDefaults() @@ -103,6 +104,7 @@ resetSettings.addEventListener("click", async () => { await lbryHelper.initDefaults() location.reload() }) + }) }) }) }) @@ -132,14 +134,14 @@ protocolFallbackCheckbox.addEventListener("change", event => { browser.storage.local.set({ protocolFallback: event.target.checked }) }) -// let latencyOutput = document.getElementById("latency-output") -// let latencyInput = document.getElementById("latency-input") -// latencyInput.addEventListener("change", event => { -// browser.storage.local.set({ latencyThreshold: event.target.value }) -// }) -// latencyInput.addEventListener("input", event => { -// latencyOutput.value = event.target.value -// }) +let latencyOutput = document.getElementById("latency-output") +let latencyInput = document.getElementById("latency-input") +latencyInput.addEventListener("change", event => { + browser.storage.local.set({ latencyThreshold: event.target.value }) +}) +latencyInput.addEventListener("input", event => { + latencyOutput.value = event.target.value +}) let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance") let instanceTypeElement = document.getElementById("exceptions-custom-instance-type") @@ -174,7 +176,7 @@ browser.storage.local.get( themeElement.value = r.theme protocolElement.value = r.protocol protocolFallbackCheckbox.checked = r.protocolFallback - // latencyOutput.value = r.latencyThreshold + latencyOutput.value = r.latencyThreshold // firstPartyIsolate.checked = r.firstPartyIsolate; let protocolFallbackElement = document.getElementById("protocol-fallback") diff --git a/src/pages/options/widgets/general.pug b/src/pages/options/widgets/general.pug index e04e9e2..e523d5b 100644 --- a/src/pages/options/widgets/general.pug +++ b/src/pages/options/widgets/general.pug @@ -31,6 +31,12 @@ section#general_page.option-block h4(data-localise="__MSG_autoRedirect__") input#auto-redirect(type="checkbox") + form + .some-block.option-block + h4(data-localise="__MSG_latencyThreshold") Latency Threshold + output#latency-output(for="latencyInput" name="latencyOutput") + input#latency-input(type="range" min="50" max="5000" value="1000" name="latencyInput" step="50") + .some-block.option-block h4(data-localise="__MSG_exceptions__") @@ -117,7 +123,7 @@ section#general_page.option-block div div - img(src="../../../assets/images/imgur-icon.png") + img(src="../../../assets/images/imgur.png") x(data-localise="__MSG_imgur__") Imgur input#imgur(type="checkbox") @@ -190,7 +196,7 @@ section#general_page.option-block div div img(src="../../../assets/images/lbry-icon.png") - x(data-localise="__MSG_lbry__") LBRY/Odysee + x(data-localise="__MSG_lbry__") LBRY input#lbry(type="checkbox") div diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html index 7493ecb..25f70f4 100644 --- a/src/pages/popup/popup.html +++ b/src/pages/popup/popup.html @@ -28,7 +28,7 @@

TikTok

-
+

Imgur

@@ -122,7 +122,7 @@

TikTok

-
+

Imgur

diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug index cd4d371..7da687c 100644 --- a/src/pages/popup/popup.pug +++ b/src/pages/popup/popup.pug @@ -33,7 +33,7 @@ mixin services .imgur.some-block a.title(href="https://imgur.com") - img(src="../../assets/images/imgur-icon.png") + img(src="../../assets/images/imgur.png") h4(data-localise="__MSG_imgur__") Imgur input.disable-imgur(type="checkbox")