diff options
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/google-search.js | 7 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 14 | ||||
-rw-r--r-- | src/assets/javascripts/remove-twitter-sw.js | 241 |
3 files changed, 184 insertions, 78 deletions
diff --git a/src/assets/javascripts/helpers/google-search.js b/src/assets/javascripts/helpers/google-search.js index c83d7c98..6ac12400 100644 --- a/src/assets/javascripts/helpers/google-search.js +++ b/src/assets/javascripts/helpers/google-search.js @@ -4,6 +4,13 @@ const redirects = [ { link: "https://startpage.com", q: "/search/" }, { link: "https://www.qwant.com", q: "/" }, { link: "https://www.mojeek.com", q: "/search" }, + { link: "https://search.snopyta.org", q: "/" }, + { link: "https://searx.info", q: "/" }, + { link: "https://searx.be", q: "/" }, + { link: "https://search.disroot.org", q: "/" }, + { link: "https://searx.tuxcloud.net", q: "/" }, + { link: "https://searx.ninja", q: "/" }, + { link: "https://tromland.org/searx", q: "/search" }, ]; export default { diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 6cf62bc7..7c89a258 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -5,19 +5,19 @@ const targets = [ "amp.reddit.com", ]; const redirects = [ - "https://old.reddit.com", // desktop - "https://i.reddit.com", // mobile - // teddit: privacy w/ old UI - "https://teddit.net", - "https://teddit.ggc-project.de", - "https://teddit.kavin.rocks", - "https://snew.notabug.io", // anti-censorship // libreddit: privacy w/ modern UI "https://libredd.it", "https://libreddit.spike.codes", "https://libreddit.kavin.rocks", "https://libreddit.insanity.wtf", "https://libreddit.dothq.co", + // teddit: privacy w/ old UI + "https://teddit.net", + "https://teddit.ggc-project.de", + "https://teddit.kavin.rocks", + "https://old.reddit.com", // desktop + "https://i.reddit.com", // mobile + "https://snew.notabug.io", // anti-censorship ]; const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/; diff --git a/src/assets/javascripts/remove-twitter-sw.js b/src/assets/javascripts/remove-twitter-sw.js index c39b4c9e..e6ff0ae9 100644 --- a/src/assets/javascripts/remove-twitter-sw.js +++ b/src/assets/javascripts/remove-twitter-sw.js @@ -1,5 +1,26 @@ "use strict"; +const nitterInstances = [ + "https://nitter.net", + "https://nitter.snopyta.org", + "https://nitter.42l.fr", + "https://nitter.nixnet.services", + "https://nitter.13ad.de", + "https://nitter.pussthecat.org", + "https://nitter.mastodont.cat", + "https://nitter.dark.fail", + "https://nitter.tedomum.net", + "https://nitter.cattube.org", + "https://nitter.fdn.fr", + "https://nitter.1d4.us", + "https://nitter.kavin.rocks", + "https://tweet.lambda.dance", + "https://nitter.cc", + "https://nitter.weaponizedhumiliation.com", + "https://nitter.vxempire.xyz", + "https://nitter.unixfox.eu", +]; + let disableNitter; let nitterInstance; let redirectBypassFlag; @@ -7,83 +28,161 @@ let exceptions; window.browser = window.browser || window.chrome; -Promise.all([ - import(browser.extension.getURL("src/assets/javascripts/helpers/common.js")), - import(browser.extension.getURL("src/assets/javascripts/helpers/twitter.js")), -]).then( - (helpers) => { - let commonHelper; - let twitterHelper; - [commonHelper, twitterHelper] = helpers; +function getRandomInstance() { + return nitterInstances[~~(nitterInstances.length * Math.random())]; +} - function isNotException(url) { - return !exceptions.some((regex) => regex.test(url.href)); - } +function isNotException(url) { + return !exceptions.some((regex) => regex.test(url.href)); +} - function shouldRedirect(url) { - return ( - !redirectBypassFlag && - isNotException(url) && - !disableNitter && - url.host !== nitterInstance && - !url.pathname.includes("/home") - ); - } +function shouldRedirect(url) { + return ( + !redirectBypassFlag && + isNotException(url) && + !disableNitter && + url.host !== nitterInstance && + !url.pathname.includes("/home") + ); +} - function redirectTwitter(url) { - if (url.host.split(".")[0] === "pbs") { - return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`; - } else if (url.host.split(".")[0] === "video") { - return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`; - } else { - return `${nitterInstance}${url.pathname}${url.search}`; - } - } +function redirectTwitter(url) { + if (url.host.split(".")[0] === "pbs") { + return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`; + } else if (url.host.split(".")[0] === "video") { + return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`; + } else { + return `${nitterInstance}${url.pathname}${url.search}`; + } +} - browser.storage.sync.get( - [ - "nitterInstance", - "disableNitter", - "removeTwitterSW", - "redirectBypassFlag", - "exceptions", - ], - (result) => { - redirectBypassFlag = result.redirectBypassFlag; - browser.storage.sync.set({ - redirectBypassFlag: false, - }); - if (!result.removeTwitterSW) { - disableNitter = result.disableNitter; - nitterInstance = - result.nitterInstance || - commonHelper.default.getRandomInstance( - twitterHelper.default.redirects - ); - exceptions = result.exceptions - ? result.exceptions.map((e) => { - return new RegExp(e); - }) - : []; - navigator.serviceWorker.getRegistrations().then((registrations) => { - for (let registration of registrations) { - if (registration.scope === "https://twitter.com/") { - registration.unregister(); - console.log("Unregistered Twitter SW", registration); - } - } - }); - const url = new URL(window.location); - if (shouldRedirect(url)) { - const redirect = redirectTwitter(url); - console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`); - window.location = redirect; +browser.storage.sync.get( + [ + "nitterInstance", + "disableNitter", + "removeTwitterSW", + "redirectBypassFlag", + "exceptions", + ], + (result) => { + redirectBypassFlag = result.redirectBypassFlag; + browser.storage.sync.set({ + redirectBypassFlag: false, + }); + if (!result.removeTwitterSW) { + disableNitter = result.disableNitter; + nitterInstance = result.nitterInstance || getRandomInstance(); + exceptions = result.exceptions + ? result.exceptions.map((e) => { + return new RegExp(e); + }) + : []; + navigator.serviceWorker.getRegistrations().then((registrations) => { + for (let registration of registrations) { + if (registration.scope === "https://twitter.com/") { + registration.unregister(); + console.log("Unregistered Twitter SW", registration); } } + }); + const url = new URL(window.location); + if (shouldRedirect(url)) { + const redirect = redirectTwitter(url); + console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`); + window.location = redirect; } - ); - }, - (error) => { - console.error(error); + } } ); + +// Keeping this here until https://bugzilla.mozilla.org/show_bug.cgi?id=1536094 is fixed... +// +//"use strict"; +// +//let disableNitter; +//let nitterInstance; +//let redirectBypassFlag; +//let exceptions; +// +//window.browser = window.browser || window.chrome; +// +//Promise.all([ +// import(browser.extension.getURL("src/assets/javascripts/helpers/common.js")), +// import(browser.extension.getURL("src/assets/javascripts/helpers/twitter.js")), +//]).then( +// (helpers) => { +// let commonHelper; +// let twitterHelper; +// [commonHelper, twitterHelper] = helpers; +// +// function isNotException(url) { +// return !exceptions.some((regex) => regex.test(url.href)); +// } +// +// function shouldRedirect(url) { +// return ( +// !redirectBypassFlag && +// isNotException(url) && +// !disableNitter && +// url.host !== nitterInstance && +// !url.pathname.includes("/home") +// ); +// } +// +// function redirectTwitter(url) { +// if (url.host.split(".")[0] === "pbs") { +// return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`; +// } else if (url.host.split(".")[0] === "video") { +// return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`; +// } else { +// return `${nitterInstance}${url.pathname}${url.search}`; +// } +// } +// +// browser.storage.sync.get( +// [ +// "nitterInstance", +// "disableNitter", +// "removeTwitterSW", +// "redirectBypassFlag", +// "exceptions", +// ], +// (result) => { +// redirectBypassFlag = result.redirectBypassFlag; +// browser.storage.sync.set({ +// redirectBypassFlag: false, +// }); +// if (!result.removeTwitterSW) { +// disableNitter = result.disableNitter; +// nitterInstance = +// result.nitterInstance || +// commonHelper.default.getRandomInstance( +// twitterHelper.default.redirects +// ); +// exceptions = result.exceptions +// ? result.exceptions.map((e) => { +// return new RegExp(e); +// }) +// : []; +// navigator.serviceWorker.getRegistrations().then((registrations) => { +// for (let registration of registrations) { +// if (registration.scope === "https://twitter.com/") { +// registration.unregister(); +// console.log("Unregistered Twitter SW", registration); +// } +// } +// }); +// const url = new URL(window.location); +// if (shouldRedirect(url)) { +// const redirect = redirectTwitter(url); +// console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`); +// window.location = redirect; +// } +// } +// } +// ); +// }, +// (error) => { +// console.error(error); +// } +//); |