diff --git a/src/assets/javascripts/frontend.js b/src/assets/javascripts/frontend.js
new file mode 100644
index 00000000..ab71cc0d
--- /dev/null
+++ b/src/assets/javascripts/frontend.js
@@ -0,0 +1,143 @@
+class FrontEnd {
+ constructor({ enable, frontends, frontend, redirect }) {
+ this.redirects = {}
+ this.enable = enable
+ this.frontend = frontend
+ this.protocol = "normal"
+ this.protocolFallback = true
+ fetch("/instances/data.json")
+ .then(response => response.text())
+ .then(async data => {
+ data = JSON.parse(data)
+ fetch("/instances/blacklist.json")
+ .then(response => response.text())
+ .then(async blackList => {
+ blackList = JSON.parse(blackList)
+ for (const frontend in frontends) {
+ this.redirects[frontend] = {}
+
+ this.redirects[frontend].cookies = [...frontends[frontend].cookies]
+
+ for (const protocol in data[frontend]) {
+ this.redirects[frontend][protocol] = {}
+
+ this.redirects[frontend][protocol].all = [...data[frontend][protocol]]
+
+ this.redirects[frontend][protocol].custom = []
+
+ this.redirects[frontend][protocol].checked = [...data[frontend][protocol]]
+ for (const instance of blackList.cloudflare) {
+ const a = this.redirects[frontend][protocol].checked.indexOf(instance)
+ if (a > -1) this.redirects[frontend][protocol].checked.splice(a, 1)
+ }
+ for (const instance of blackList.offline) {
+ const a = this.redirects[frontend][protocol].checked.indexOf(instance)
+ if (a > -1) this.redirects[frontend][protocol].checked.splice(a, 1)
+ }
+ }
+ }
+ })
+ })
+ this.unifyCookies = from =>
+ new Promise(async resolve => {
+ await init()
+ const protocolHost = utils.protocolHost(from)
+ const list = [...this.redirects[this.frontend][this.protocol]]
+ if (![...list.checked, ...list.custom].includes(protocolHost)) {
+ resolve()
+ return
+ }
+ for (const cookie of this.redirects[this.frontend].cookies) {
+ await utils.copyCookie(frontend, protocolHost, [...list.checked, list.custom], cookie)
+ }
+ resolve(true)
+ })
+
+ this.switchInstance = (url, disableOverride) => {
+ if (!this.enable && !disableOverride) return
+
+ const protocolHost = utils.protocolHost(url)
+
+ const list = [...this.redirects[this.frontend][this.protocol]]
+ if (!list.all.includes(protocolHost)) return
+
+ let userList = [...list.checked, ...list.custom]
+ if (userList.length === 0 && this.protocolFallback) userList = [...list.normal.all]
+
+ const i = userList.indexOf(protocolHost)
+ if (i > -1) userList.splice(i, 1)
+ if (userList.length === 0) return
+
+ const randomInstance = utils.getRandomInstance(userList)
+ return `${randomInstance}${url.pathname}${url.search}`
+ }
+
+ this.redirect = (url, type, initiator, disableOverride) => {
+ const result = redirect(url, type, initiator, disableOverride)
+ if (result == "BYPASSTAB") return "BYPASSTAB"
+ if (result) {
+ const list = [...this.redirects[this.frontend][this.protocol]]
+ let userList = [...list.checked, ...list.custom]
+ const randomInstance = utils.getRandomInstance(userList)
+ return `${randomInstance}${result.pathname}${result.search}`
+ }
+ }
+
+ let init = () => new Promise(async resolve => {})
+ }
+}
+
+let Reddit = new FrontEnd({
+ enable: true,
+ frontends: {
+ libreddit: { cookies: ["theme", "front_page", "layout", "wide", "post_sort", "comment_sort", "show_nsfw", "autoplay_videos", "use_hls", "hide_hls_notification", "subscriptions", "filters"] },
+ teddit: {
+ cookies: [
+ "collapse_child_comments",
+ "domain_instagram",
+ "domain_twitter",
+ "domain_youtube",
+ "flairs",
+ "highlight_controversial",
+ "nsfw_enabled",
+ "post_media_max_height",
+ "show_upvoted_percentage",
+ "show_upvotes",
+ "theme",
+ "videos_muted",
+ ],
+ },
+ },
+ frontend: "libreddit",
+ redirect: (url, type, initiator, disableOverride) => {
+ if (this.enable && !disableOverride) return
+
+ const targets = [/^https?:\/{2}(www\.|old\.|np\.|new\.|amp\.|)reddit\.com/, /^https?:\/{2}(i\.|preview\.)redd\.it/]
+ if (!targets.some(rx => rx.test(url.href))) return
+
+ if (initiator && all().includes(initiator.origin)) return "BYPASSTAB"
+ if (!["main_frame", "xmlhttprequest", "other", "image", "media"].includes(type)) return
+
+ const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/
+ if (url.pathname.match(bypassPaths)) return
+
+ const protocolHost = utils.protocolHost(url)
+
+ if (url.host === "i.redd.it") {
+ if (this.frontend == "libreddit") return `${protocolHost}/img${url.pathname}${url.search}`
+ if (this.frontend == "teddit") return `${protocolHost}/pics/w:null_${url.pathname.substring(1)}${url.search}`
+ } else if (url.host === "redd.it") {
+ // https://redd.it/foo => https://libredd.it/comments/foo
+ if (this.frontend == "libreddit" && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) return `${protocolHost}/comments${url.pathname}${url.search}`
+ // https://redd.it/foo => https://teddit.net/comments/foo
+ if (this.frontend == "teddit" && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) return `${protocolHost}/comments${url.pathname}${url.search}`
+ } else if (url.host === "preview.redd.it") {
+ if (this.frontend == "libreddit") return `${protocolHost}/preview/pre${url.pathname}${url.search}`
+ if (this.frontend == "teddit") return
+ } else {
+ return `${url.href}`
+ }
+ },
+})
+
+export default {}
diff --git a/src/assets/javascripts/imdb.js b/src/assets/javascripts/imdb.js
index 57368557..604e9a9e 100644
--- a/src/assets/javascripts/imdb.js
+++ b/src/assets/javascripts/imdb.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.libremdb = val
- 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({
- imdbRedirects: redirects,
- libremdbNormalRedirectsChecks,
- libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
- libremdbI2pRedirectsChecks: [...redirects.libremdb.i2p],
- libremdbLokiRedirectsChecks: [...redirects.libremdb.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.libremdb = val
+ 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(
+ {
+ imdbRedirects: redirects,
+ libremdbNormalRedirectsChecks,
+ libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
+ libremdbI2pRedirectsChecks: [...redirects.libremdb.i2p],
+ libremdbLokiRedirectsChecks: [...redirects.libremdb.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableImdb,
diff --git a/src/assets/javascripts/imgur.js b/src/assets/javascripts/imgur.js
index 15b9ccac..24e8cb8d 100644
--- a/src/assets/javascripts/imgur.js
+++ b/src/assets/javascripts/imgur.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
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],
+ return new Promise(resolve =>
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableImgur,
diff --git a/src/assets/javascripts/instagram.js b/src/assets/javascripts/instagram.js
index d0aa07c0..bc580de7 100644
--- a/src/assets/javascripts/instagram.js
+++ b/src/assets/javascripts/instagram.js
@@ -16,21 +16,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
- redirects.bibliogram = val
- bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal]
- 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],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
+ redirects.bibliogram = val
+ bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal]
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableInstagram,
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js
index 5e285ada..5819d132 100644
--- a/src/assets/javascripts/lbry.js
+++ b/src/assets/javascripts/lbry.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.librarian = val
- librarianNormalRedirectsChecks = [...redirects.librarian.normal]
- for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
- const a = librarianNormalRedirectsChecks.indexOf(instance)
- if (a > -1) librarianNormalRedirectsChecks.splice(a, 1)
- }
- browser.storage.local.set({
- lbryTargetsRedirects: redirects,
- librarianNormalRedirectsChecks,
- librarianTorRedirectsChecks: [...redirects.librarian.tor],
- librarianI2pRedirectsChecks: [...redirects.librarian.i2p],
- librarianLokiRedirectsChecks: [...redirects.librarian.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.librarian = val
+ librarianNormalRedirectsChecks = [...redirects.librarian.normal]
+ for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+ const a = librarianNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) librarianNormalRedirectsChecks.splice(a, 1)
+ }
+ browser.storage.local.set(
+ {
+ lbryTargetsRedirects: redirects,
+ librarianNormalRedirectsChecks,
+ librarianTorRedirectsChecks: [...redirects.librarian.tor],
+ librarianI2pRedirectsChecks: [...redirects.librarian.i2p],
+ librarianLokiRedirectsChecks: [...redirects.librarian.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableLbryTargets,
diff --git a/src/assets/javascripts/maps.js b/src/assets/javascripts/maps.js
index 6e3c9af0..6911c9ba 100644
--- a/src/assets/javascripts/maps.js
+++ b/src/assets/javascripts/maps.js
@@ -21,21 +21,26 @@ redirects.osm = {}
redirects.osm.normal = ["https://www.openstreetmap.org"]
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.facil = val
- 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({
- mapsRedirects: redirects,
- facilNormalRedirectsChecks,
- facilTorRedirectsChecks: [...redirects.facil.tor],
- facilI2pRedirectsChecks: [...redirects.facil.i2p],
- facilLokiRedirectsChecks: [...redirects.facil.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.facil = val
+ 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(
+ {
+ mapsRedirects: redirects,
+ facilNormalRedirectsChecks,
+ facilTorRedirectsChecks: [...redirects.facil.tor],
+ facilI2pRedirectsChecks: [...redirects.facil.i2p],
+ facilLokiRedirectsChecks: [...redirects.facil.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableMaps,
diff --git a/src/assets/javascripts/medium.js b/src/assets/javascripts/medium.js
index e5cb1dc4..386d234c 100644
--- a/src/assets/javascripts/medium.js
+++ b/src/assets/javascripts/medium.js
@@ -40,21 +40,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.scribe = val
- scribeNormalRedirectsChecks = [...redirects.scribe.normal]
- 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],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.scribe = val
+ scribeNormalRedirectsChecks = [...redirects.scribe.normal]
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableMedium,
diff --git a/src/assets/javascripts/peertube.js b/src/assets/javascripts/peertube.js
index 478a18f0..e1ff406f 100644
--- a/src/assets/javascripts/peertube.js
+++ b/src/assets/javascripts/peertube.js
@@ -15,21 +15,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.simpleertube = val
- simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal]
- 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],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.simpleertube = val
+ simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal]
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disablePeertubeTargets,
diff --git a/src/assets/javascripts/quora.js b/src/assets/javascripts/quora.js
index 578cfe76..4473c3d7 100644
--- a/src/assets/javascripts/quora.js
+++ b/src/assets/javascripts/quora.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.quetre = val
- 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({
- quoraRedirects: redirects,
- quetreNormalRedirectsChecks,
- quetreTorRedirectsChecks: [...redirects.quetre.tor],
- quetreI2pRedirectsChecks: [...redirects.quetre.i2p],
- quetreLokiRedirectsChecks: [...redirects.quetre.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.quetre = val
+ 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(
+ {
+ quoraRedirects: redirects,
+ quetreNormalRedirectsChecks,
+ quetreTorRedirectsChecks: [...redirects.quetre.tor],
+ quetreI2pRedirectsChecks: [...redirects.quetre.i2p],
+ quetreLokiRedirectsChecks: [...redirects.quetre.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableQuora,
@@ -95,9 +100,7 @@ function redirect(url, type, initiator, disableOverride) {
if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
instancesList = [...quetreNormalRedirectsChecks, ...quetreNormalCustomRedirects]
}
- if (instancesList.length === 0) {
- return
- }
+ if (instancesList.length === 0) return
const randomInstance = utils.getRandomInstance(instancesList)
return `${randomInstance}${url.pathname}`
diff --git a/src/assets/javascripts/reddit.js b/src/assets/javascripts/reddit.js
index ca1993b5..209ee7e3 100644
--- a/src/assets/javascripts/reddit.js
+++ b/src/assets/javascripts/reddit.js
@@ -16,29 +16,34 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects = val
- libredditNormalRedirectsChecks = [...redirects.libreddit.normal]
- tedditNormalRedirectsChecks = [...redirects.teddit.normal]
- for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
- const a = libredditNormalRedirectsChecks.indexOf(instance)
- if (a > -1) libredditNormalRedirectsChecks.splice(a, 1)
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects = val
+ libredditNormalRedirectsChecks = [...redirects.libreddit.normal]
+ tedditNormalRedirectsChecks = [...redirects.teddit.normal]
+ for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+ const a = libredditNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) libredditNormalRedirectsChecks.splice(a, 1)
- const b = tedditNormalRedirectsChecks.indexOf(instance)
- if (b > -1) tedditNormalRedirectsChecks.splice(b, 1)
- }
- 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],
+ const b = tedditNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) tedditNormalRedirectsChecks.splice(b, 1)
+ }
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableReddit,
@@ -304,7 +309,9 @@ function switchInstance(url, disableOverride) {
if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
instancesList = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects]
}
- if ([...redditRedirects.teddit.normal, ...redditRedirects.teddit.tor].includes(protocolHost)) url.pathname = url.pathname.replace("/pics/w:null_", "/img/")
+ if ([...redditRedirects.teddit.normal, ...redditRedirects.teddit.tor].includes(protocolHost)) {
+ url.pathname = url.pathname.replace("/pics/w:null_", "/img/")
+ }
} else if (redditFrontend == "teddit") {
if (protocol == "loki") instancesList = [...tedditLokiCustomRedirects]
else if (protocol == "i2p") instancesList = [...tedditI2pCustomRedirects]
@@ -312,7 +319,9 @@ function switchInstance(url, disableOverride) {
if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
instancesList = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects]
}
- if ([...redditRedirects.libreddit.normal, ...redditRedirects.libreddit.tor].includes(protocolHost)) url.pathname = url.pathname.replace("/img/", "/pics/w:null_")
+ if ([...redditRedirects.libreddit.normal, ...redditRedirects.libreddit.tor].includes(protocolHost)) {
+ url.pathname = url.pathname.replace("/img/", "/pics/w:null_")
+ }
}
const i = instancesList.indexOf(protocolHost)
@@ -333,9 +342,8 @@ function initDefaults() {
.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]]
- }
+ for (const frontend of frontends) redirects[frontend] = dataJson[frontend]
+
browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
libredditNormalRedirectsChecks = [...redirects.libreddit.normal]
tedditNormalRedirectsChecks = [...redirects.teddit.normal]
diff --git a/src/assets/javascripts/reuters.js b/src/assets/javascripts/reuters.js
index 51d16329..16459b4a 100644
--- a/src/assets/javascripts/reuters.js
+++ b/src/assets/javascripts/reuters.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.neuters = val
- 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({
- neutersRedirects: redirects,
- neutersNormalRedirectsChecks,
- neutersTorRedirectsChecks: [...redirects.neuters.tor],
- neutersI2pRedirectsChecks: [...redirects.neuters.i2p],
- neutersLokiRedirectsChecks: [...redirects.neuters.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.neuters = val
+ 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(
+ {
+ neutersRedirects: redirects,
+ neutersNormalRedirectsChecks,
+ neutersTorRedirectsChecks: [...redirects.neuters.tor],
+ neutersI2pRedirectsChecks: [...redirects.neuters.i2p],
+ neutersLokiRedirectsChecks: [...redirects.neuters.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableReuters,
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index 64b56caa..548e7629 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -7,7 +7,7 @@ const targets = [/^https?:\/{2}search\.libredirect\.invalid/]
const frontends = new Array("searx", "searxng", "whoogle", "librex")
const protocols = new Array("normal", "tor", "i2p", "loki")
-const redirects = {}
+let redirects = {}
for (let i = 0; i < frontends.length; i++) {
redirects[frontends[i]] = {}
@@ -17,45 +17,50 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- 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, ...r.offlineBlackList]) {
- const a = searxNormalRedirectsChecks.indexOf(instance)
- if (a > -1) searxNormalRedirectsChecks.splice(a, 1)
+ return new Promise(resolve =>
+ 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, ...r.offlineBlackList]) {
+ const a = searxNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) searxNormalRedirectsChecks.splice(a, 1)
- const b = searxngNormalRedirectsChecks.indexOf(instance)
- if (b > -1) searxngNormalRedirectsChecks.splice(b, 1)
+ const b = searxngNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) searxngNormalRedirectsChecks.splice(b, 1)
- const c = whoogleNormalRedirectsChecks.indexOf(instance)
- if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1)
+ const c = whoogleNormalRedirectsChecks.indexOf(instance)
+ if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1)
- const d = librexNormalRedirectsChecks.indexOf(instance)
- if (d > -1) librexNormalRedirectsChecks.splice(d, 1)
- }
- 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],
+ const d = librexNormalRedirectsChecks.indexOf(instance)
+ if (d > -1) librexNormalRedirectsChecks.splice(d, 1)
+ }
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableSearch,
diff --git a/src/assets/javascripts/sendTargets.js b/src/assets/javascripts/sendTargets.js
index a52ab6ff..a7b5f20b 100644
--- a/src/assets/javascripts/sendTargets.js
+++ b/src/assets/javascripts/sendTargets.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.send = val
- sendNormalRedirectsChecks = [...redirects.send.normal]
- 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],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.send = val
+ sendNormalRedirectsChecks = [...redirects.send.normal]
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableSendTarget,
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index 71f07687..78106a15 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.proxiTok = val
- 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({
- tiktokRedirects: redirects,
- proxiTokNormalRedirectsChecks,
- proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
- proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p],
- proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.proxiTok = val
+ 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(
+ {
+ tiktokRedirects: redirects,
+ proxiTokNormalRedirectsChecks,
+ proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
+ proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p],
+ proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
function initProxiTokCookies(test, from) {
diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js
index 993c630f..fa103169 100644
--- a/src/assets/javascripts/translate/translate.js
+++ b/src/assets/javascripts/translate/translate.js
@@ -91,29 +91,34 @@ init()
browser.storage.onChanged.addListener(init)
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects = val
- simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]
- lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
- for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
- const a = simplyTranslateNormalCustomRedirects.indexOf(instance)
- if (a > -1) simplyTranslateNormalCustomRedirects.splice(a, 1)
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects = val
+ simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]
+ lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
+ 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,
- simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
- simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p],
- simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki],
- lingvaNormalRedirectsChecks,
- lingvaTorRedirectsChecks: [...redirects.lingva.tor],
- lingvaI2pRedirectsChecks: [...redirects.lingva.i2p],
- lingvaLokiRedirectsChecks: [...redirects.lingva.loki],
+ const b = lingvaNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1)
+ }
+ browser.storage.local.set(
+ {
+ translateRedirects: redirects,
+ simplyTranslateNormalRedirectsChecks,
+ simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
+ simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p],
+ simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki],
+ lingvaNormalRedirectsChecks,
+ lingvaTorRedirectsChecks: [...redirects.lingva.tor],
+ lingvaI2pRedirectsChecks: [...redirects.lingva.i2p],
+ lingvaLokiRedirectsChecks: [...redirects.lingva.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
function copyPasteLingvaLocalStorage(test, url, tabId) {
diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js
index 7111ad00..2f68dfc2 100644
--- a/src/assets/javascripts/twitter.js
+++ b/src/assets/javascripts/twitter.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => {
- redirects.nitter = val
- nitterNormalRedirectsChecks = [...redirects.nitter.normal]
- for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) {
- let i = nitterNormalRedirectsChecks.indexOf(instance)
- if (i > -1) nitterNormalRedirectsChecks.splice(i, 1)
- }
- browser.storage.local.set({
- twitterRedirects: redirects,
- nitterNormalRedirectsChecks,
- nitterTorRedirectsChecks: [...redirects.nitter.tor],
- nitterI2pRedirectsChecks: [...redirects.nitter.i2p],
- nitterLokiRedirectsChecks: [...redirects.nitter.loki],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => {
+ redirects.nitter = val
+ nitterNormalRedirectsChecks = [...redirects.nitter.normal]
+ for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) {
+ let i = nitterNormalRedirectsChecks.indexOf(instance)
+ if (i > -1) nitterNormalRedirectsChecks.splice(i, 1)
+ }
+ browser.storage.local.set(
+ {
+ twitterRedirects: redirects,
+ nitterNormalRedirectsChecks,
+ nitterTorRedirectsChecks: [...redirects.nitter.tor],
+ nitterI2pRedirectsChecks: [...redirects.nitter.i2p],
+ nitterLokiRedirectsChecks: [...redirects.nitter.loki],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableTwitter,
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 50ada765..5ca5c30b 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -28,14 +28,48 @@ let authenticateBlackList = []
let offlineBlackList = []
async function initBlackList() {
return new Promise(resolve => {
- fetch("/instances/blacklist.json")
- .then(response => response.text())
- .then(data => {
- cloudflareBlackList = JSON.parse(data).cloudflare
- authenticateBlackList = JSON.parse(data).authenticate
- offlineBlackList = JSON.parse(data).offline
+ browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => {
+ cloudflareBlackList = r.cloudflareBlackList
+ authenticateBlackList = r.authenticateBlackList
+ offlineBlackList = r.offlineBlackList
+ })
+ if (cloudflareBlackList.length == 0) {
+ fetch("/instances/blacklist.json")
+ .then(response => response.text())
+ .then(data => {
+ cloudflareBlackList = JSON.parse(data).cloudflare
+ authenticateBlackList = JSON.parse(data).authenticate
+ offlineBlackList = JSON.parse(data).offline
+ })
+ }
+ resolve()
+ })
+}
+
+function updateBlackList() {
+ return new Promise(async resolve => {
+ let http = new XMLHttpRequest()
+ let fallback = new XMLHttpRequest()
+ http.open("GET", "https://codeberg.org/LibRedirect/libredirect/raw/branch/master/src/instances/blacklist.json", false)
+ http.send(null)
+ if (http.status != 200) {
+ fallback.open("GET", "https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/blacklist.json", false)
+ fallback.send(null)
+ if (fallback.status === 200) {
+ http = fallback
+ } else {
resolve()
- })
+ return
+ }
+ }
+ const blackList = JSON.parse(http.responseText)
+ browser.storage.local.set({
+ cloudflareBlackList: blackList.cloudflare,
+ authenticateBlackList: blackList.authenticate,
+ offlineBlackList: blackList.offline,
+ })
+ ;(cloudflareBlackList = blackList.cloudflare), (authenticateBlackList = blackList.authenticate), (offlineBlackList = blackList.offline)
+ resolve()
})
}
@@ -55,45 +89,45 @@ function updateInstances() {
return
}
}
- await initBlackList()
+ await updateBlackList()
const instances = JSON.parse(http.responseText)
- youtubeHelper.setRedirects({
+ await youtubeHelper.setRedirects({
invidious: instances.invidious,
piped: instances.piped,
pipedMaterial: instances.pipedMaterial,
cloudtube: instances.cloudtube,
})
- twitterHelper.setRedirects(instances.nitter)
- instagramHelper.setRedirects(instances.bibliogram)
- redditHelper.setRedirects({
+ await twitterHelper.setRedirects(instances.nitter)
+ await instagramHelper.setRedirects(instances.bibliogram)
+ await redditHelper.setRedirects({
libreddit: instances.libreddit,
teddit: instances.teddit,
})
- translateHelper.setRedirects({
+ await translateHelper.setRedirects({
simplyTranslate: instances.simplyTranslate,
lingva: instances.lingva,
})
- searchHelper.setRedirects({
+ await searchHelper.setRedirects({
searx: instances.searx,
searxng: instances.searxng,
whoogle: instances.whoogle,
librex: instances.librex,
})
- wikipediaHelper.setRedirects(instances.wikiless)
- mediumHelper.setRedirects(instances.scribe)
- quoraHelper.setRedirects(instances.quetre)
- libremdbHelper.setRedirects(instances.libremdb)
- sendTargetsHelper.setRedirects(instances.send)
- tiktokHelper.setRedirects(instances.proxiTok)
- lbryHelper.setRedirects(instances.librarian)
- reutersHelper.setRedirects(instances.neuters)
- youtubeMusicHelper.setRedirects({
+ await wikipediaHelper.setRedirects(instances.wikiless)
+ await mediumHelper.setRedirects(instances.scribe)
+ await quoraHelper.setRedirects(instances.quetre)
+ await libremdbHelper.setRedirects(instances.libremdb)
+ await sendTargetsHelper.setRedirects(instances.send)
+ await tiktokHelper.setRedirects(instances.proxiTok)
+ await lbryHelper.setRedirects(instances.librarian)
+ await reutersHelper.setRedirects(instances.neuters)
+ await youtubeMusicHelper.setRedirects({
beatbump: instances.beatbump,
hyperpipe: instances.hyperpipe,
})
- mapsHelper.setRedirects(instances.facil)
- peertubeHelper.setRedirects(instances.simpleertube)
+ await mapsHelper.setRedirects(instances.facil)
+ await peertubeHelper.setRedirects(instances.simpleertube)
console.info("Successfully updated Instances")
resolve(true)
@@ -511,7 +545,7 @@ function latency(name, frontend, document, location) {
latencyElement.addEventListener("click", async () => {
let reloadWindow = () => location.reload()
latencyElement.addEventListener("click", reloadWindow)
- let key = `${name} Redirects`
+ let key = `${name}Redirects`
browser.storage.local.get(key, r => {
let redirects = r[key]
const oldHtml = latencyLabel.innerHTML
diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js
index 2d0f75a1..1e06ed44 100644
--- a/src/assets/javascripts/wikipedia.js
+++ b/src/assets/javascripts/wikipedia.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects.wikiless = val
- wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]
- 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],
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects.wikiless = val
+ wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableWikipedia,
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index 32f06b9c..bdb9449a 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -30,45 +30,50 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects = val
- invidiousNormalRedirectsChecks = [...redirects.invidious.normal]
- pipedNormalRedirectsChecks = [...redirects.piped.normal]
- pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
- cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal]
- for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
- const a = invidiousNormalRedirectsChecks.indexOf(instance)
- if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1)
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects = val
+ invidiousNormalRedirectsChecks = [...redirects.invidious.normal]
+ pipedNormalRedirectsChecks = [...redirects.piped.normal]
+ pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
+ cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal]
+ for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+ const a = invidiousNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1)
- const b = pipedNormalRedirectsChecks.indexOf(instance)
- if (b > -1) pipedNormalRedirectsChecks.splice(b, 1)
+ const b = pipedNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) pipedNormalRedirectsChecks.splice(b, 1)
- const c = pipedMaterialNormalRedirectsChecks.indexOf(instance)
- if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1)
+ const c = pipedMaterialNormalRedirectsChecks.indexOf(instance)
+ if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1)
- const d = cloudtubeNormalRedirectsChecks.indexOf(instance)
- if (c > -1) cloudtubeNormalRedirectsChecks.splice(d, 1)
- }
- 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],
+ const d = cloudtubeNormalRedirectsChecks.indexOf(instance)
+ if (c > -1) cloudtubeNormalRedirectsChecks.splice(d, 1)
+ }
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableYoutube,
diff --git a/src/assets/javascripts/youtubeMusic.js b/src/assets/javascripts/youtubeMusic.js
index 5d980cfe..757378f4 100644
--- a/src/assets/javascripts/youtubeMusic.js
+++ b/src/assets/javascripts/youtubeMusic.js
@@ -19,29 +19,34 @@ for (let i = 0; i < frontends.length; i++) {
}
function setRedirects(val) {
- browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
- redirects = val
- beatbumpNormalRedirectsChecks = [...redirects.beatbump.normal]
- hyperpipeNormalRedirectsChecks = [...redirects.hyperpipe.normal]
- for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
- const a = beatbumpNormalRedirectsChecks.indexOf(instance)
- if (a > -1) beatbumpNormalRedirectsChecks.splice(a, 1)
+ return new Promise(resolve =>
+ browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+ redirects = val
+ beatbumpNormalRedirectsChecks = [...redirects.beatbump.normal]
+ hyperpipeNormalRedirectsChecks = [...redirects.hyperpipe.normal]
+ for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+ const a = beatbumpNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) beatbumpNormalRedirectsChecks.splice(a, 1)
- const b = hyperpipeNormalRedirectsChecks.indexOf(instance)
- if (b > -1) hyperpipeNormalRedirectsChecks.splice(b, 1)
- }
- 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],
+ const b = hyperpipeNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) hyperpipeNormalRedirectsChecks.splice(b, 1)
+ }
+ 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],
+ },
+ () => resolve()
+ )
})
- })
+ )
}
let disableYoutubeMusic,
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index eab4a924..085d7273 100644
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -661,7 +661,7 @@ for k1, v1 in mightyList.items():
cloudflare.append(instance)
if not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_authenticate(instance):
authenticate.append(instance)
- if not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_offline(instance):
+ elif not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_offline(instance):
offline.append(instance)
peertube()
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index c6e9ab7a..39c10052 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -22,8 +22,11 @@ import sendTargetsHelper from "../../assets/javascripts/sendTargets.js"
import peertubeHelper from "../../assets/javascripts/peertube.js"
import lbryHelper from "../../assets/javascripts/lbry.js"
+import frontend from "../../assets/javascripts/frontend.js"
+
window.browser = window.browser || window.chrome
+
browser.runtime.onInstalled.addListener(details => {
function initDefaults() {
fetch("/instances/blacklist.json")
diff --git a/src/pages/options/index.html b/src/pages/options/index.html
index 077b3da2..b8541ff9 100644
--- a/src/pages/options/index.html
+++ b/src/pages/options/index.html
@@ -30,9 +30,9 @@