Merge branch 'update-blacklist'

This commit is contained in:
ManeraKai 2022-08-08 11:48:32 +03:00
commit 4654308da9
31 changed files with 675 additions and 403 deletions

View File

@ -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 {}

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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}`

View File

@ -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]

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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) {

View File

@ -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) {

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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()

View File

@ -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")

View File

@ -30,9 +30,9 @@
<ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
</svg><a href="#medium" data-localise="__MSG_medium__">Medium</a>
</div>
<div class="title"><img src="../../../assets/images/quora.png"><a href="#quora" data-localise="__MSG_quora__">Quora</a></div>
<div class="title"><img src="../../../assets/images/imdb.svg"><a href="#imdb" data-localise="__MSG_imdb__">IMDb</a></div>
<div class="title"><img src="../../../assets/images/reuters.svg"><a href="#reuters" data-localise="__MSG_reuters__">Reuters</a></div>
<div class="title"><img src="../../../assets/images/quora.png"><a href="#quora">Quora</a></div>
<div class="title"><img src="../../../assets/images/imdb.svg"><a href="#imdb">IMDb</a></div>
<div class="title"><img src="../../../assets/images/reuters.svg"><a href="#reuters">Reuters</a></div>
<div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="#peertube" data-localise="__MSG_peertube__">PeerTube</a></div>
<div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="#lbry" data-localise="__MSG_lbry__">LBRY</a></div>
<div class="title">
@ -237,19 +237,19 @@
</div>
<div>
<div> <img src="../../../assets/images/quora.png">
<x data-localise="__MSG_quora__">Quora</x>
<x>Quora</x>
</div>
<input id="quora" type="checkbox">
</div>
<div>
<div> <img src="../../../assets/images/imdb.svg">
<x data-localise="__MSG_imdb__">IMDb</x>
<x>IMDb</x>
</div>
<input id="imdb" type="checkbox">
</div>
<div>
<div> <img src="../../../assets/images/reuters.svg">
<x data-localise="__MSG_reuters__">Reuters</x>
<x>Reuters</x>
</div>
<input id="reuters" type="checkbox">
</div>
@ -1774,7 +1774,7 @@
</section>
<section class="option-block" id="quora_page">
<div class="some-block option-block">
<h1 data-localise="__MSG_quora__">Quora</h1>
<h1>Quora</h1>
</div>
<hr>
<div class="some-block option-block">
@ -1881,7 +1881,7 @@
</section>
<section class="option-block" id="imdb_page">
<div class="some-block option-block">
<h1 data-localise="__MSG_imdb__">IMDb</h1>
<h1>IMDb</h1>
</div>
<hr>
<div class="some-block option-block">
@ -1988,7 +1988,7 @@
</section>
<section class="option-block" id="reuters_page">
<div class="some-block option-block">
<h1 data-localise="__MSG_reuters__">Reuters</h1>
<h1>Reuters</h1>
</div>
<hr>
<div class="some-block option-block">
@ -3186,4 +3186,4 @@
</div>
</body>
<script type="module" src="./index.js"></script>
</html>
</html>

View File

@ -36,15 +36,16 @@ updateInstancesElement.addEventListener("click", async () => {
let exportSettingsElement = document.getElementById("export-settings")
function exportSettings() {
browser.storage.local.get(null, result => {
return browser.storage.local.get(null, result => {
let resultString = JSON.stringify(result, null, " ")
exportSettingsElement.href = "data:application/json;base64," + btoa(encodeURI(resultString))
exportSettingsElement.download = "libredirect-settings.json"
return
})
}
exportSettings()
document.getElementById("general_page").addEventListener("click", exportSettings)
document.getElementById("general_page").onclick = exportSettings
let importSettingsElement = document.getElementById("import-settings")
let importSettingsElementText = document.getElementById("import_settings_text")
@ -82,28 +83,28 @@ resetSettings.addEventListener("click", async () => {
.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()
await youtubeMusicHelper.initDefaults()
await twitterHelper.initDefaults()
await instagramHelper.initDefaults()
await mapsHelper.initDefaults()
await searchHelper.initDefaults()
await translateHelper.initDefaults()
await mediumHelper.initDefaults()
await quoraHelper.initDefaults()
await libremdbHelper.initDefaults()
await reutersHelper.initDefaults()
await redditHelper.initDefaults()
await wikipediaHelper.initDefaults()
await imgurHelper.initDefaults()
await tiktokHelper.initDefaults()
await sendTargetsHelper.initDefaults()
await peertubeHelper.initDefaults()
await lbryHelper.initDefaults()
location.reload()
})
browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate }, async () => {
await generalHelper.initDefaults()
await youtubeHelper.initDefaults()
await youtubeMusicHelper.initDefaults()
await twitterHelper.initDefaults()
await instagramHelper.initDefaults()
await mapsHelper.initDefaults()
await searchHelper.initDefaults()
await translateHelper.initDefaults()
await mediumHelper.initDefaults()
await quoraHelper.initDefaults()
await libremdbHelper.initDefaults()
await reutersHelper.initDefaults()
await redditHelper.initDefaults()
await wikipediaHelper.initDefaults()
await imgurHelper.initDefaults()
await tiktokHelper.initDefaults()
await sendTargetsHelper.initDefaults()
await peertubeHelper.initDefaults()
await lbryHelper.initDefaults()
location.reload()
})
})
})
})

View File

@ -172,19 +172,19 @@ section#general_page.option-block
div
div
img(src="../../../assets/images/quora.png")
x(data-localise="__MSG_quora__") Quora
x() Quora
input#quora(type="checkbox")
div
div
img(src="../../../assets/images/imdb.svg")
x(data-localise="__MSG_imdb__") IMDb
x IMDb
input#imdb(type="checkbox")
div
div
img(src="../../../assets/images/reuters.svg")
x(data-localise="__MSG_reuters__") Reuters
x Reuters
input#reuters(type="checkbox")
div

View File

@ -1,6 +1,6 @@
section#imdb_page.option-block
.some-block.option-block
h1(data-localise="__MSG_imdb__") IMDb
h1() IMDb
hr
.some-block.option-block
h4(data-localise="__MSG_enable__") Enable

View File

@ -1,6 +1,6 @@
section#quora_page.option-block
.some-block.option-block
h1(data-localise="__MSG_quora__") Quora
h1() Quora
hr
.some-block.option-block
h4(data-localise="__MSG_enable__") Enable

View File

@ -1,6 +1,6 @@
section#reuters_page.option-block
.some-block.option-block
h1(data-localise="__MSG_reuters__") Reuters
h1() Reuters
hr
.some-block.option-block
h4(data-localise="__MSG_enable__") Enable

View File

@ -50,15 +50,15 @@
<input class="disable-medium" type="checkbox"/>
</div>
<div class="quora some-block"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png"/>
<h4 data-localise="__MSG_quora__">Quora</h4></a>
<h4>Quora</h4></a>
<input class="disable-quora" type="checkbox"/>
</div>
<div class="imdb some-block"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg"/>
<h4 data-localise="__MSG_imdb__">IMDb</h4></a>
<h4>IMDb</h4></a>
<input class="disable-imdb" type="checkbox"/>
</div>
<div class="reuters some-block"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg"/>
<h4 data-localise="__MSG_reuters__">Reuters</h4></a>
<h4>Reuters</h4></a>
<input class="disable-reuters" type="checkbox"/>
</div>
<div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg"/>
@ -144,15 +144,15 @@
<input class="disable-medium" type="checkbox"/>
</div>
<div class="quora some-block"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png"/>
<h4 data-localise="__MSG_quora__">Quora</h4></a>
<h4>Quora</h4></a>
<input class="disable-quora" type="checkbox"/>
</div>
<div class="imdb some-block"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg"/>
<h4 data-localise="__MSG_imdb__">IMDb</h4></a>
<h4>IMDb</h4></a>
<input class="disable-imdb" type="checkbox"/>
</div>
<div class="reuters some-block"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg"/>
<h4 data-localise="__MSG_reuters__">Reuters</h4></a>
<h4>Reuters</h4></a>
<input class="disable-reuters" type="checkbox"/>
</div>
<div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg"/>

View File

@ -58,19 +58,19 @@ mixin services
.quora.some-block
a.title(href="https://quora.com")
img(src="../../assets/images/quora.png")
h4(data-localise="__MSG_quora__") Quora
h4() Quora
input.disable-quora(type="checkbox")
.imdb.some-block
a.title(href="https://imdb.com")
img(src="../../assets/images/imdb.svg")
h4(data-localise="__MSG_imdb__") IMDb
h4() IMDb
input.disable-imdb(type="checkbox")
.reuters.some-block
a.title(href="https://reuters.com")
img(src="../../assets/images/reuters.svg")
h4(data-localise="__MSG_reuters__") Reuters
h4() Reuters
input.disable-reuters(type="checkbox")
.peertube.some-block

View File

@ -44,15 +44,15 @@ mixin links(service)
.title
img(src="../../../assets/images/quora.png")
a(href="#quora" data-localise="__MSG_quora__") Quora
a(href="#quora" ) Quora
.title
img(src="../../../assets/images/imdb.svg")
a(href="#imdb" data-localise="__MSG_imdb__") IMDb
a(href="#imdb") IMDb
.title
img(src="../../../assets/images/reuters.svg")
a(href="#reuters" data-localise="__MSG_reuters__") Reuters
a(href="#reuters") Reuters
.title
img(src="../../../assets/images/peertube-icon.svg")