summaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorSimonBrazell <simon@brazell.com.au>2021-01-11 17:46:00 +1100
committerSimonBrazell <simon@brazell.com.au>2021-01-11 17:46:00 +1100
commit223d7cd0ac245f5b5186439a832f6607451a7800 (patch)
treedac535654f780efbda5b3eeb992ca29f0120294a /src/assets
parent7736cfaf7aea80e14cdf9ff80eb32b78a0b85229 (diff)
downloadprivacy-redirect-223d7cd0ac245f5b5186439a832f6607451a7800.tar.gz
privacy-redirect-223d7cd0ac245f5b5186439a832f6607451a7800.tar.bz2
privacy-redirect-223d7cd0ac245f5b5186439a832f6607451a7800.zip
CLoses #130 changed to GPLv3, added SearX instances (#16), fixed instance selects.v1.1.45
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/google-search.js7
-rw-r--r--src/assets/javascripts/helpers/reddit.js14
-rw-r--r--src/assets/javascripts/remove-twitter-sw.js241
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 c83d7c9..6ac1240 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 6cf62bc..7c89a25 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 c39b4c9..e6ff0ae 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);
+// }
+//);