aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-06 17:24:39 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-06 17:24:39 +0300
commit30421fa685cb0a2a56f2d46a09e68956945df739 (patch)
tree250a24eb0875b9ad87aa7f5bb95aaee3f1107311 /src/assets
parentCombined the instances methods to one function (diff)
downloadlibredirect-30421fa685cb0a2a56f2d46a09e68956945df739.zip
Finished adding default & custom instances
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js3
-rw-r--r--src/assets/javascripts/helpers/instagram.js76
-rw-r--r--src/assets/javascripts/helpers/medium.js56
-rw-r--r--src/assets/javascripts/helpers/reddit.js76
-rw-r--r--src/assets/javascripts/helpers/search.js66
-rw-r--r--src/assets/javascripts/helpers/translate.js91
-rw-r--r--src/assets/javascripts/helpers/twitter.js169
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js65
8 files changed, 461 insertions, 141 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 5ff47976..52a41379 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -23,7 +23,7 @@ function updateInstances() {
if (request.status === 200) {
const instances = JSON.parse(request.responseText);
- nameHelper.setInvidiousRedirects(instances.invidious);
+ youtubeHelper.setInvidiousRedirects(instances.invidious);
twitterHelper.setRedirects(instances.nitter);
@@ -140,6 +140,7 @@ function processDefaultCustomInstances(
if (!nameCustomInstances.includes(val)) {
nameCustomInstances.push(val)
setNameCustomRedirects(nameCustomInstances);
+ nameCustomInstanceInput.value = '';
}
calcNameCustomInstances();
}
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index fac1f534..e3255cc8 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -7,25 +7,44 @@ const targets = [
"about.instagram.com",
];
let redirects = {
- "normal": [
- "https://bibliogram.art",
- "https://bibliogram.snopyta.org",
- "https://bibliogram.pussthecat.org",
- "https://bibliogram.1d4.us",
- "https://insta.trom.tf",
- "https://bib.riverside.rocks",
- "https://bibliogram.esmailelbob.xyz",
- "https://bib.actionsack.com",
- "https://biblio.alefvanoon.xyz"
- ]
+ "bibliogram": {
+ "normal": [
+ "https://bibliogram.art",
+ "https://bibliogram.snopyta.org",
+ "https://bibliogram.pussthecat.org",
+ "https://bibliogram.1d4.us",
+ "https://insta.trom.tf",
+ "https://bib.riverside.rocks",
+ "https://bibliogram.esmailelbob.xyz",
+ "https://bib.actionsack.com",
+ "https://biblio.alefvanoon.xyz"
+ ]
+ }
};
const getRedirects = () => redirects;
function setRedirects(val) {
- redirects = val;
- browser.storage.sync.set({ instagramRedirects: val })
+ redirects.bibliogram = val;
+ browser.storage.sync.set({ instagramRedirects: redirects })
console.log("instagramRedirects: ", val)
}
+
+let bibliogramRedirectsChecks;
+const getBibliogramRedirectsChecks = () => bibliogramRedirectsChecks;
+function setBibliogramRedirectsChecks(val) {
+ bibliogramRedirectsChecks = val;
+ browser.storage.sync.set({ bibliogramRedirectsChecks })
+ console.log("bibliogramRedirectsChecks: ", val)
+}
+
+let bibliogramCustomRedirects = [];
+const getBibliogramCustomRedirects = () => bibliogramCustomRedirects;
+function setBibliogramCustomRedirects(val) {
+ bibliogramCustomRedirects = val;
+ browser.storage.sync.set({ bibliogramCustomRedirects })
+ console.log("bibliogramCustomRedirects: ", val)
+}
+
const reservedPaths = [
"about",
"explore",
@@ -61,22 +80,24 @@ function setDisableInstagram(val) {
}
function redirect(url, initiator, type) {
- if (disableInstagram)
- return null;
+ if (disableInstagram) return null;
+
+ let instancesList = [...bibliogramRedirectsChecks, ...bibliogramCustomRedirects];
+ if (instancesList.length === 0) return null;
+ let randomInstance = commonHelper.getRandomInstance(instancesList)
// Do not redirect Bibliogram view on Instagram links
- if (initiator && (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host)))
+ if (initiator && (instancesList.includes(initiator.origin) || targets.includes(initiator.host)))
return null;
// Do not redirect /accounts, /embeds.js, or anything other than main_frame
if (type !== "main_frame" || url.pathname.match(bypassPaths))
return 'CANCEL';
- let link = commonHelper.getRandomInstance(redirects.normal);
if (url.pathname === "/" || instagramReservedPaths.includes(url.pathname.split("/")[1]))
- return `${link}${url.pathname}${url.search}`;
+ return `${randomInstance}${url.pathname}${url.search}`;
else
- return `${link}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
+ return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
}
function isInstagram(url) {
@@ -86,19 +107,34 @@ function isInstagram(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableInstagram",
- "instagramRedirects"
+ "instagramRedirects",
+ "bibliogramRedirectsChecks",
+ "bibliogramCustomRedirects",
])
disableInstagram = result.disableInstagram ?? false;
if (result.instagramRedirects)
redirects = result.instagramRedirects
+
+
+ bibliogramRedirectsChecks = result.bibliogramRedirectsChecks ?? [...redirects.bibliogram.normal];
+ bibliogramCustomRedirects = result.bibliogramCustomRedirects ?? [];
}
export default {
getRedirects,
setRedirects,
+
getDisableInstagram,
setDisableInstagram,
+
+ getBibliogramRedirectsChecks,
+ setBibliogramRedirectsChecks,
+
+ getBibliogramCustomRedirects,
+ setBibliogramCustomRedirects,
+
isInstagram,
+
redirect,
init,
};
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 16a6eac5..d99eae1c 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -17,20 +17,38 @@ const targets = [
];
let redirects = {
- "normal": [
- "https://scribe.rip",
- "https://scribe.nixnet.services",
- "https://scribe.citizen4.eu",
- "https://scribe.bus-hit.me"
- ]
+ "scribe": {
+ "normal": [
+ "https://scribe.rip",
+ "https://scribe.nixnet.services",
+ "https://scribe.citizen4.eu",
+ "https://scribe.bus-hit.me"
+ ]
+ }
};
const getRedirects = () => redirects;
function setRedirects(val) {
- redirects = val;
- browser.storage.sync.set({ mediumRedirects: val })
+ redirects.scribe = val;
+ browser.storage.sync.set({ mediumRedirects: redirects })
console.log("mediumRedirects: ", val)
}
+let scribeRedirectsChecks;
+const getScribeRedirectsChecks = () => scribeRedirectsChecks;
+function setScribeRedirectsChecks(val) {
+ scribeRedirectsChecks = val;
+ browser.storage.sync.set({ scribeRedirectsChecks })
+ console.log("scribeRedirectsChecks: ", val)
+}
+
+let scribeCustomRedirects = [];
+const getScribeCustomRedirects = () => scribeCustomRedirects;
+function setScribeCustomRedirects(val) {
+ scribeCustomRedirects = val;
+ browser.storage.sync.set({ scribeCustomRedirects })
+ console.log("scribeCustomRedirects: ", val)
+}
+
let disableMedium;
const getDisableMedium = () => disableMedium;
function setDisableMedium(val) {
@@ -45,14 +63,19 @@ function redirect(url, initiator) {
if (url.pathname == "/") return null;
+
+ let instancesList = [...scribeRedirectsChecks, ...scribeCustomRedirects];
+ if (instancesList.length === 0) return null;
+ let randomInstance = commonHelper.getRandomInstance(instancesList)
+
if (
commonHelper.isFirefox() && initiator &&
- (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
+ (instancesList.includes(initiator.origin) || targets.includes(initiator.host))
) {
browser.storage.sync.set({ redirectBypassFlag: true });
return null;
}
- return `${commonHelper.getRandomInstance(redirects.normal)}${url.pathname}${url.search}`;
+ return `${randomInstance}${url.pathname}${url.search}`;
}
function isMedium(url) {
@@ -62,11 +85,16 @@ function isMedium(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableMedium",
- "mediumRedirects"
+ "mediumRedirects",
+ "scribeRedirectsChecks",
+ "scribeCustomRedirects",
])
disableMedium = result.disableMedium ?? false;
if (result.mediumRedirects)
redirects = result.mediumRedirects;
+
+ scribeRedirectsChecks = result.scribeRedirectsChecks ?? [...redirects.scribe.normal];
+ scribeCustomRedirects = result.scribeCustomRedirects ?? [];
}
export default {
@@ -78,6 +106,12 @@ export default {
getDisableMedium,
setDisableMedium,
+ getScribeRedirectsChecks,
+ setScribeRedirectsChecks,
+
+ getScribeCustomRedirects,
+ setScribeCustomRedirects,
+
redirect,
isMedium,
init,
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index ba3455d0..fe7b0ec3 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -71,6 +71,39 @@ function setTedditRedirects(val) {
console.log("tedditRedirects:", val)
}
+
+let libredditRedirectsChecks;
+const getLibredditRedirectsChecks = () => libredditRedirectsChecks;
+function setLibredditRedirectsChecks(val) {
+ libredditRedirectsChecks = val;
+ browser.storage.sync.set({ libredditRedirectsChecks })
+ console.log("libredditRedirectsChecks: ", val)
+}
+
+let libredditCustomRedirects = [];
+const getLibredditCustomRedirects = () => libredditCustomRedirects;
+function setLibredditCustomRedirects(val) {
+ libredditCustomRedirects = val;
+ browser.storage.sync.set({ libredditCustomRedirects })
+ console.log("libredditCustomRedirects: ", val)
+}
+
+let tedditRedirectsChecks;
+const getTedditRedirectsChecks = () => tedditRedirectsChecks;
+function setTedditRedirectsChecks(val) {
+ tedditRedirectsChecks = val;
+ browser.storage.sync.set({ tedditRedirectsChecks })
+ console.log("tedditRedirectsChecks: ", val)
+}
+
+let tedditCustomRedirects = [];
+const getTedditCustomRedirects = () => tedditCustomRedirects;
+function setTedditCustomRedirects(val) {
+ tedditCustomRedirects = val;
+ browser.storage.sync.set({ tedditCustomRedirects })
+ console.log("tedditCustomRedirects: ", val)
+}
+
const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
let disableReddit;
@@ -101,8 +134,13 @@ function redirect(url, initiator, type) {
if (type !== "main_frame" || url.pathname.match(bypassPaths))
return null;
- let libredditLink = commonHelper.getRandomInstance(redirects.libreddit.normal);
- let tedditLink = commonHelper.getRandomInstance(redirects.teddit.normal);
+ let libreddtInstancesList = [...libredditRedirectsChecks, ...libredditCustomRedirects];
+ if (libreddtInstancesList.length === 0) return null;
+ let libredditRandomInstance = commonHelper.getRandomInstance(libreddtInstancesList);
+
+ let tedditInstancesList = [...tedditRedirectsChecks, ...tedditCustomRedirects];
+ if (tedditInstancesList.length === 0) return null;
+ let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList);
if (url.host === "i.redd.it")
// As of 2021-04-09, redirects for teddit images are nontrivial:
@@ -110,9 +148,9 @@ function redirect(url, initiator, type) {
// 404 error (probably needs fix on teddit project)
// - some image links on teddit are very different
// Therefore, don't support redirecting image links for teddit.
- return `${libredditLink}/img${url.pathname}${url.search}`;
+ return `${libredditRandomInstance}/img${url.pathname}${url.search}`;
else if (url.host === "redd.it") {
- if (redditFrontend == 'libreddit') return `${libredditLink}${url.pathname}${url.search}`;
+ if (redditFrontend == 'libreddit') return `${libredditRandomInstance}${url.pathname}${url.search}`;
if (redditFrontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/))
// As of 2021-04-22, redirects for teddit redd.it/foo links don't work.
// It appears that adding "/comments" as a prefix works, so manually add
@@ -121,10 +159,10 @@ function redirect(url, initiator, type) {
// paths.
// Note the difference between redd.it/comments/foo (doesn't work) and
// teddit.net/comments/foo (works).
- return `${tedditLink}/comments${url.pathname}${url.search}`;
+ return `${tedditRandomInstance}/comments${url.pathname}${url.search}`;
}
- if (redditFrontend == 'libreddit') return `${libredditLink}${url.pathname}${url.search}`;
- if (redditFrontend == 'teddit') return `${tedditLink}${url.pathname}${url.search}`;
+ if (redditFrontend == 'libreddit') return `${libredditRandomInstance}${url.pathname}${url.search}`;
+ if (redditFrontend == 'teddit') return `${tedditRandomInstance}${url.pathname}${url.search}`;
}
function isReddit(url) {
@@ -135,12 +173,22 @@ async function init() {
let result = await browser.storage.sync.get([
"disableReddit",
"redditFrontend",
- "redditRedirects"
+ "redditRedirects",
+ "libredditRedirectsChecks",
+ "libredditCustomRedirects",
+ "tedditRedirectsChecks",
+ "tedditCustomRedirects",
])
disableReddit = result.disableReddit ?? false;
redditFrontend = result.redditFrontend ?? 'libreddit';
if (result.redditRedirects)
redirects = result.redditRedirects;
+
+ libredditRedirectsChecks = result.libredditRedirectsChecks ?? [...redirects.libreddit.normal];
+ libredditCustomRedirects = result.libredditCustomRedirects ?? [];
+
+ tedditRedirectsChecks = result.tedditRedirectsChecks ?? [...redirects.teddit.normal];
+ tedditCustomRedirects = result.tedditCustomRedirects ?? [];
}
export default {
@@ -155,6 +203,18 @@ export default {
getRedditFrontend,
setRedditFrontend,
+ getLibredditRedirectsChecks,
+ setLibredditRedirectsChecks,
+
+ getLibredditCustomRedirects,
+ setLibredditCustomRedirects,
+
+ getTedditRedirectsChecks,
+ setTedditRedirectsChecks,
+
+ getTedditCustomRedirects,
+ setTedditCustomRedirects,
+
redirect,
isReddit,
init,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 1130aa3e..f8d8b4db 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -157,6 +157,37 @@ function setSearxRedirects(val) {
browser.storage.sync.set({ searchRedirects: redirects })
console.log("searxRedirects:", val)
}
+let whoogleRedirectsChecks;
+const getWhoogleRedirectsChecks = () => whoogleRedirectsChecks;
+function setWhoogleRedirectsChecks(val) {
+ whoogleRedirectsChecks = val;
+ browser.storage.sync.set({ whoogleRedirectsChecks })
+ console.log("whoogleRedirectsChecks: ", val)
+}
+
+let whoogleCustomRedirects = [];
+const getWhoogleCustomRedirects = () => whoogleCustomRedirects;
+function setWhoogleCustomRedirects(val) {
+ whoogleCustomRedirects = val;
+ browser.storage.sync.set({ whoogleCustomRedirects })
+ console.log("whoogleCustomRedirects: ", val)
+}
+
+let searxRedirectsChecks;
+const getSearxRedirectsChecks = () => searxRedirectsChecks;
+function setSearxRedirectsChecks(val) {
+ searxRedirectsChecks = val;
+ browser.storage.sync.set({ searxRedirectsChecks })
+ console.log("searxRedirectsChecks: ", val)
+}
+
+let searxCustomRedirects = [];
+const getSearxCustomRedirects = () => searxCustomRedirects;
+function setSearxCustomRedirects(val) {
+ searxCustomRedirects = val;
+ browser.storage.sync.set({ searxCustomRedirects })
+ console.log("searxCustomRedirects: ", val)
+}
function setWhoogleRedirects(val) {
redirects.whoogle = val;
@@ -184,14 +215,18 @@ function redirect(url, initiator) {
if (disableSearch)
return null;
- let instance;
+ let randomInstance;
let path;
if (searchFrontend == 'searx') {
- instance = commonHelper.getRandomInstance(redirects.searx.normal);
+ let instancesList = [...searxRedirectsChecks, ...searxCustomRedirects];
+ if (instancesList.length === 0) return null;
+ randomInstance = commonHelper.getRandomInstance(instancesList)
path = "/"
}
if (searchFrontend == 'whoogle') {
- instance = commonHelper.getRandomInstance(redirects.whoogle.normal);
+ let instancesList = [...whoogleRedirectsChecks, ...whoogleCustomRedirects];
+ if (instancesList.length === 0) return null;
+ randomInstance = commonHelper.getRandomInstance(instancesList)
path = "/search"
}
@@ -199,7 +234,7 @@ function redirect(url, initiator) {
url.search.slice(1).split("&").forEach(function (input) {
if (input.startsWith("q=")) searchQuery = input;
});
- return `${instance}${path}?${searchQuery}`;
+ return `${randomInstance}${path}?${searchQuery}`;
}
function isSearch(url) {
@@ -211,11 +246,22 @@ async function init() {
"disableSearch",
"searchFrontend",
"searchRedirects",
+ "whoogleRedirectsChecks",
+ "whoogleCustomRedirects",
+ "searxRedirectsChecks",
+ "searxCustomRedirects",
])
disableSearch = result.disableSearch ?? false;
searchFrontend = result.searchFrontend ?? 'searx';
if (result.searchRedirects)
redirects = result.searchRedirects;
+
+
+ whoogleRedirectsChecks = result.whoogleRedirectsChecks ?? [...redirects.whoogle.normal];
+ whoogleCustomRedirects = result.whoogleCustomRedirects ?? [];
+
+ searxRedirectsChecks = result.searxRedirectsChecks ?? [...redirects.whoogle.normal];
+ searxCustomRedirects = result.searxCustomRedirects ?? [];
}
export default {
@@ -232,6 +278,18 @@ export default {
getSearchFrontend,
setSearchFrontend,
+ getWhoogleRedirectsChecks,
+ setWhoogleRedirectsChecks,
+
+ getWhoogleCustomRedirects,
+ setWhoogleCustomRedirects,
+
+ getSearxRedirectsChecks,
+ setSearxRedirectsChecks,
+
+ getSearxCustomRedirects,
+ setSearxCustomRedirects,
+
redirect,
init,
};
diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js
index c0f95994..5a765c94 100644
--- a/src/assets/javascripts/helpers/translate.js
+++ b/src/assets/javascripts/helpers/translate.js
@@ -44,12 +44,46 @@ function setSimplyTranslateRedirects(val) {
console.log("simplyTranslateRedirects:", val)
}
+let simplyTranslateRedirectsChecks;
+const getSimplyTranslateRedirectsChecks = () => simplyTranslateRedirectsChecks;
+function setSimplyTranslateRedirectsChecks(val) {
+ simplyTranslateRedirectsChecks = val;
+ browser.storage.sync.set({ simplyTranslateRedirectsChecks })
+ console.log("simplyTranslateRedirectsChecks: ", val)
+}
+
+let simplyTranslateCustomRedirects = [];
+const getSimplyTranslateCustomRedirects = () => simplyTranslateCustomRedirects;
+function setSimplyTranslateCustomRedirects(val) {
+ simplyTranslateCustomRedirects = val;
+ browser.storage.sync.set({ simplyTranslateCustomRedirects })
+ console.log("simplyTranslateCustomRedirects: ", val)
+}
+
+
function setLingvaRedirects(val) {
redirects.lingva = val;
browser.storage.sync.set({ translateRedirects: redirects })
console.log("lingvaRedirects:", val)
}
+let lingvaRedirectsChecks;
+const getLingvaRedirectsChecks = () => lingvaRedirectsChecks;
+function setLingvaRedirectsChecks(val) {
+ lingvaRedirectsChecks = val;
+ browser.storage.sync.set({ lingvaRedirectsChecks })
+ console.log("lingvaRedirectsChecks: ", val)
+}
+
+let lingvaCustomRedirects = [];
+const getLingvaCustomRedirects = () => lingvaCustomRedirects;
+function setLingvaCustomRedirects(val) {
+ lingvaCustomRedirects = val;
+ browser.storage.sync.set({ lingvaCustomRedirects })
+ console.log("lingvaCustomRedirects: ", val)
+}
+
+
let disableTranslate;
const getDisableTranslate = () => disableTranslate;
function setDisableTranslate(val) {
@@ -63,34 +97,39 @@ const getFrontend = () => translateFrontend;
function setFrontend(val) {
translateFrontend = val;
browser.storage.sync.set({ translateFrontend })
- console.log("Translate frontend: ", frontend)
+ console.log("Translate frontend: ", val)
}
function redirect(url, initiator) {
if (disableTranslate) {
- console.log("SImplyTranslte disabled")
+ console.log("SimplyTranslate disabled")
return null
};
+
+ if (translateFrontend == 'simplyTranslate') {
+
+ let instancesList = [...simplyTranslateRedirectsChecks, ...simplyTranslateCustomRedirects];
+ if (instancesList.length === 0) return null;
+ let randomInstance = commonHelper.getRandomInstance(instancesList)
- let link;
- if (translateFrontend == 'simplyTransalte') {
- link = commonHelper.getRandomInstance(redirects.simplyTranslate.normal);
- console.log(`${link}/${url.search}`);
- return `${link}/${url.search}`;
+ return `${randomInstance}/${url.search}`;
}
else if (translateFrontend == 'lingva') {
let params_arr = url.search.split('&');
params_arr[0] = params_arr[0].substring(1);
- let myMap = new Map();
+ let myMap = {};
for (let i = 0; i < params_arr.length; i++) {
let pair = params_arr[i].split('=');
- myMap.set(pair[0], pair[1]);
+ myMap[pair[0]] = pair[1];
}
- link = commonHelper.getRandomInstance(redirects.lingva.normal);
- if (myMap.get("sl") && myMap.get("tl") && myMap.get("text"))
- return `${link}/${myMap.get("sl")}/${myMap.get("tl")}/${myMap.get("text")}`;
+ let instancesList = [...lingvaRedirectsChecks, ...lingvaCustomRedirects];
+ if (instancesList.length === 0) return null;
+ let randomInstance = commonHelper.getRandomInstance(instancesList)
+
+ if (myMap.sl && myMap.tl && myMap.text)
+ return `${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`;
else
- return link;
+ return randomInstance;
}
}
@@ -103,12 +142,22 @@ async function init() {
let result = await browser.storage.sync.get([
"disableTranslate",
"translateFrontend",
- "translateRedirects"
+ "translateRedirects",
+ "simplyTranslateRedirectsChecks",
+ "simplyTranslateCustomRedirects",
+ "lingvaRedirectsChecks",
+ "lingvaCustomRedirects",
]);
disableTranslate = result.disableTranslate ?? false;
- translateFrontend = result.translateFrontend ?? "simplyTransalte";
+ translateFrontend = result.translateFrontend ?? "simplyTranslate";
if (result.translateRedirects)
redirects = result.translateRedirects
+
+ simplyTranslateRedirectsChecks = result.simplyTranslateRedirectsChecks ?? [...redirects.simplyTranslate.normal];
+ simplyTranslateCustomRedirects = result.simplyTranslateCustomRedirects ?? [];
+
+ lingvaRedirectsChecks = result.lingvaRedirectsChecks ?? [...redirects.lingva.normal];
+ lingvaCustomRedirects = result.lingvaCustomRedirects ?? [];
}
export default {
@@ -124,6 +173,18 @@ export default {
getFrontend,
setFrontend,
+ getSimplyTranslateRedirectsChecks,
+ setSimplyTranslateRedirectsChecks,
+
+ getSimplyTranslateCustomRedirects,
+ setSimplyTranslateCustomRedirects,
+
+ getLingvaRedirectsChecks,
+ setLingvaRedirectsChecks,
+
+ getLingvaCustomRedirects,
+ setLingvaCustomRedirects,
+
redirect,
init,
};
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index d97505cc..7bf3ca1d 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -14,74 +14,92 @@ const targets = [
];
let redirects = {
- "normal": [
- "https://nitter.net",
- "https://nitter.42l.fr",
- "https://nitter.pussthecat.org",
- "https://nitter.nixnet.services",
- "https://nitter.fdn.fr",
- "https://nitter.1d4.us",
- "https://nitter.kavin.rocks",
- "https://nitter.unixfox.eu",
- "https://nitter.domain.glass",
- "https://nitter.eu",
- "https://nitter.namazso.eu",
- "https://nitter.actionsack.com",
- "https://birdsite.xanny.family",
- "https://nitter.hu",
- "https://twitr.gq",
- "https://nitter.moomoo.me",
- "https://nittereu.moomoo.me",
- "https://bird.trom.tf",
- "https://nitter.it",
- "https://twitter.censors.us",
- "https://nitter.grimneko.de",
- "https://nitter.alefvanoon.xyz",
- "https://n.hyperborea.cloud",
- "https://nitter.ca",
- "https://twitter.076.ne.jp",
- "https://nitter.mstdn.social",
- "https://nitter.fly.dev",
- "https://notabird.site",
- "https://nitter.weiler.rocks",
- "https://nitter.silkky.cloud",
- "https://nitter.sethforprivacy.com",
- "https://nttr.stream",
- "https://nitter.cutelab.space",
- "https://nitter.nl",
- "https://nitter.mint.lgbt",
- "https://nitter.tokhmi.xyz",
- "https://nitter.bus-hit.me",
- "https://fuckthesacklers.network",
- "https://nitter.govt.land",
- "https://nitter.datatunnel.xyz",
- "https://nitter.esmailelbob.xyz"
- ],
- "onion": [
- "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
- "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion",
- "http://nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd.onion",
- "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion",
- "http://nitter.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd.onion",
- "http://i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad.onion",
- "http://26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid.onion",
- "http://vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad.onion",
- "http://iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd.onion",
- "http://erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad.onion",
- "http://ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd.onion",
- "http://jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid.onion",
- "http://nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad.onion",
- "http://nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd.onion",
- "http://nitter.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion"
- ]
+ "nitter": {
+ "normal": [
+ "https://nitter.net",
+ "https://nitter.42l.fr",
+ "https://nitter.pussthecat.org",
+ "https://nitter.nixnet.services",
+ "https://nitter.fdn.fr",
+ "https://nitter.1d4.us",
+ "https://nitter.kavin.rocks",
+ "https://nitter.unixfox.eu",
+ "https://nitter.domain.glass",
+ "https://nitter.eu",
+ "https://nitter.namazso.eu",
+ "https://nitter.actionsack.com",
+ "https://birdsite.xanny.family",
+ "https://nitter.hu",
+ "https://twitr.gq",
+ "https://nitter.moomoo.me",
+ "https://nittereu.moomoo.me",
+ "https://bird.trom.tf",
+ "https://nitter.it",
+ "https://twitter.censors.us",
+ "https://nitter.grimneko.de",
+ "https://nitter.alefvanoon.xyz",
+ "https://n.hyperborea.cloud",
+ "https://nitter.ca",
+ "https://twitter.076.ne.jp",
+ "https://nitter.mstdn.social",
+ "https://nitter.fly.dev",
+ "https://notabird.site",
+ "https://nitter.weiler.rocks",
+ "https://nitter.silkky.cloud",
+ "https://nitter.sethforprivacy.com",
+ "https://nttr.stream",
+ "https://nitter.cutelab.space",
+ "https://nitter.nl",
+ "https://nitter.mint.lgbt",
+ "https://nitter.tokhmi.xyz",
+ "https://nitter.bus-hit.me",
+ "https://fuckthesacklers.network",
+ "https://nitter.govt.land",
+ "https://nitter.datatunnel.xyz",
+ "https://nitter.esmailelbob.xyz"
+ ],
+ "onion": [
+ "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
+ "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion",
+ "http://nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd.onion",
+ "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion",
+ "http://nitter.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd.onion",
+ "http://i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad.onion",
+ "http://26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid.onion",
+ "http://vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad.onion",
+ "http://iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd.onion",
+ "http://erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad.onion",
+ "http://ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd.onion",
+ "http://jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid.onion",
+ "http://nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad.onion",
+ "http://nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd.onion",
+ "http://nitter.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion"
+ ]
+ }
};
const getRedirects = () => redirects;
function setRedirects(val) {
- redirects = val;
- browser.storage.sync.set({ twitterRedirects: val })
+ redirects.nitter = val;
+ browser.storage.sync.set({ twitterRedirects: redirects })
console.log("twitterRedirects:", val)
}
+let nitterRedirectsChecks;
+const getNitterRedirectsChecks = () => nitterRedirectsChecks;
+function setNitterRedirectsChecks(val) {
+ nitterRedirectsChecks = val;
+ browser.storage.sync.set({ nitterRedirectsChecks })
+ console.log("nitterRedirectsChecks: ", val)
+}
+
+let nitterCustomRedirects = [];
+const getNitterCustomRedirects = () => nitterCustomRedirects;
+function setNitterCustomRedirects(val) {
+ nitterCustomRedirects = val;
+ browser.storage.sync.set({ nitterCustomRedirects })
+ console.log("nitterCustomRedirects: ", val)
+}
+
let disableTwitter;
const getDisableTwitter = () => disableTwitter;
function setDisableTwitter(val) {
@@ -97,23 +115,27 @@ function redirect(url, initiator) {
if (url.pathname.split("/").includes("home")) {
return null;
}
+
+ let instancesList = [...nitterRedirectsChecks, ...nitterCustomRedirects];
+ if (instancesList.length === 0) return null;
+ let randomInstance = commonHelper.getRandomInstance(instancesList)
+
if (
commonHelper.isFirefox() &&
initiator &&
- (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
+ (instancesList.includes(initiator.origin) || targets.includes(initiator.host))
) {
browser.storage.sync.set({ redirectBypassFlag: true });
return null;
}
- let link = commonHelper.getRandomInstance(redirects.normal)
if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video")
- return `${link}/pic/${encodeURIComponent(url.href)}`;
+ return `${randomInstance}/pic/${encodeURIComponent(url.href)}`;
else if (url.pathname.split("/").includes("tweets"))
- return `${link}${url.pathname.replace("/tweets", "")}${url.search}`;
+ return `${randomInstance}${url.pathname.replace("/tweets", "")}${url.search}`;
else
- return `${link}${url.pathname}${url.search}`;
+ return `${randomInstance}${url.pathname}${url.search}`;
}
@@ -124,11 +146,16 @@ function isTwitter(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableTwitter",
- "twitterRedirects"
+ "twitterRedirects",
+ "nitterRedirectsChecks",
+ "nitterCustomRedirects",
]);
disableTwitter = result.disableTwitter ?? false;
if (result.twitterRedirects)
redirects = result.twitterRedirects;
+
+ nitterRedirectsChecks = result.nitterRedirectsChecks ?? [...redirects.nitter.normal];
+ nitterCustomRedirects = result.nitterCustomRedirects ?? [];
}
export default {
@@ -138,6 +165,12 @@ export default {
getDisableTwitter,
setDisableTwitter,
+ getNitterRedirectsChecks,
+ setNitterRedirectsChecks,
+
+ getNitterCustomRedirects,
+ setNitterCustomRedirects,
+
redirect,
isTwitter,
init,
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 111eee2c..8afecc78 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -3,20 +3,22 @@ import commonHelper from './common.js'
const targets = /wikipedia.org/;
let redirects = {
- "normal": [
- "https://wikiless.org",
- "https://wikiless.alefvanoon.xyz",
- "https://wikiless.sethforprivacy.com",
- "https://wiki.604kph.xyz"
- ],
- "onion": [
- "http://dj2tbh2nqfxyfmvq33cjmhuw7nb6am7thzd3zsjvizeqf374fixbrxyd.onion"
- ]
+ "wikiless": {
+ "normal": [
+ "https://wikiless.org",
+ "https://wikiless.alefvanoon.xyz",
+ "https://wikiless.sethforprivacy.com",
+ "https://wiki.604kph.xyz"
+ ],
+ "onion": [
+ "http://dj2tbh2nqfxyfmvq33cjmhuw7nb6am7thzd3zsjvizeqf374fixbrxyd.onion"
+ ]
+ }
};
const getRedirects = () => redirects;
function setRedirects(val) {
- redirects = val;
- browser.storage.sync.set({ wikipediaRedirects: val })
+ redirects.wikiless = val;
+ browser.storage.sync.set({ wikipediaRedirects: redirects })
console.log("wikipediaRedirects: ", val)
}
@@ -27,6 +29,23 @@ function setDisableWikipedia(val) {
browser.storage.sync.set({ disableWikipedia })
}
+
+let wikilessRedirectsChecks;
+const getWikilessRedirectsChecks = () => wikilessRedirectsChecks;
+function setWikilessRedirectsChecks(val) {
+ wikilessRedirectsChecks = val;
+ browser.storage.sync.set({ wikilessRedirectsChecks })
+ console.log("wikilessRedirectsChecks: ", val)
+}
+
+let wikilessCustomRedirects = [];
+const getWikilessCustomRedirects = () => wikilessCustomRedirects;
+function setWikilessCustomRedirects(val) {
+ wikilessCustomRedirects = val;
+ browser.storage.sync.set({ wikilessCustomRedirects })
+ console.log("wikilessCustomRedirects: ", val)
+}
+
function redirect(url, initiator) {
if (disableWikipedia) return null;
@@ -39,8 +58,15 @@ function redirect(url, initiator) {
GETArguments.push([args[0], args[1]]);
}
}
- let instance = commonHelper.getRandomInstance(redirects.normal)
- let link = `${instance}${url.pathname}`;
+
+ let instancesList = [...wikilessRedirectsChecks, ...wikilessCustomRedirects];
+
+ if (instancesList.length === 0)
+ return null;
+
+ let randomInstance = commonHelper.getRandomInstance(instancesList)
+
+ let link = `${randomInstance}${url.pathname}`;
let urlSplit = url.host.split(".");
if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
if (urlSplit[0] == "m")
@@ -69,11 +95,16 @@ function isWikipedia(url) {
async function init() {
let result = await browser.storage.sync.get([
"disableWikipedia",
- "wikipediaRedirects"
+ "wikipediaRedirects",
+ "wikilessRedirectsChecks",
+ "wikilessCustomRedirects",
]);
disableWikipedia = result.disableWikipedia ?? false;
if (result.wikipediaRedirects)
redirects = result.wikipediaRedirects;
+
+ wikilessRedirectsChecks = result.wikilessRedirectsChecks ?? [...redirects.wikiless.normal];
+ wikilessCustomRedirects = result.wikilessCustomRedirects ?? [];
}
export default {
@@ -83,6 +114,12 @@ export default {
setDisableWikipedia,
getDisableWikipedia,
+ getWikilessRedirectsChecks,
+ setWikilessRedirectsChecks,
+
+ getWikilessCustomRedirects,
+ setWikilessCustomRedirects,
+
redirect,
isWikipedia,
init,