aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js2
-rw-r--r--src/assets/javascripts/helpers/reddit.js87
-rw-r--r--src/assets/javascripts/helpers/search.js78
-rw-r--r--src/assets/javascripts/helpers/translate/lingva-preferences.js18
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js (renamed from src/assets/javascripts/helpers/translate.js)59
-rw-r--r--src/assets/javascripts/helpers/twitter.js6
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js44
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious-preferences.js27
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js2
9 files changed, 242 insertions, 81 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index f51bab36..961f5bd6 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -5,7 +5,7 @@ import instagramHelper from "./instagram.js";
import mediumHelper from "./medium.js";
import redditHelper from "./reddit.js";
import searchHelper from "./search.js";
-import translateHelper from "./translate.js";
+import translateHelper from "./translate/translate.js";
import wikipediaHelper from "./wikipedia.js";
function getRandomInstance(instances) {
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 926d79e2..eff5c0e6 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -187,8 +187,49 @@ function setBypassWatchOnReddit(val) {
console.log("bypassWatchOnReddit: ", bypassWatchOnReddit)
}
-let alwaysUsePreferred;
+let theme;
+let applyThemeToSites;
+function initLibredditCookies() {
+ if (applyThemeToSites && theme != 'DEFAULT') {
+ let allInstances = [...redirects.libreddit.normal, ...redirects.libreddit.tor, ...libredditNormalCustomRedirects, ...libredditTorCustomRedirects]
+ let checkedInstances = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects, ...libredditTorRedirectsChecks, ...libredditTorCustomRedirects]
+ for (const instanceUrl of allInstances)
+ if (!checkedInstances.includes(instanceUrl))
+ browser.cookies.remove({
+ url: instanceUrl,
+ name: "theme",
+ })
+ for (const instanceUrl of checkedInstances)
+ browser.cookies.set({
+ url: instanceUrl,
+ name: "theme",
+ value: theme
+ })
+ }
+}
+function initTedditCookies() {
+ let themeValue;
+ if (theme == 'light') themeValue = 'white';
+ if (theme == 'dark') themeValue = 'dark';
+ if (applyThemeToSites && themeValue) {
+ let allInstances = [...redirects.teddit.normal, ...redirects.teddit.tor, ...tedditNormalCustomRedirects, ...tedditTorCustomRedirects]
+ let checkedInstances = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects, ...tedditTorRedirectsChecks, ...tedditTorCustomRedirects]
+ for (const instanceUrl of allInstances)
+ if (!checkedInstances.includes(instanceUrl))
+ browser.cookies.remove({
+ url: instanceUrl,
+ name: "theme",
+ })
+ for (const instanceUrl of checkedInstances)
+ browser.cookies.set({
+ url: instanceUrl,
+ name: "theme",
+ value: themeValue
+ })
+ }
+}
+let alwaysUsePreferred;
// https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4
// https://libreddit.exonip.de/img/4v3t1vgvrzk81.png
@@ -201,6 +242,7 @@ let alwaysUsePreferred;
// https://v.redd.it/z08avb339n801/DASH_1_2_M
// https://i.redd.it/bfkhs659tzk81.jpg
+
function redirect(url, type, initiator) {
if (disableReddit) return null;
@@ -381,35 +423,44 @@ async function init() {
"tedditTorRedirectsChecks",
"tedditTorCustomRedirects",
+ "theme",
+ "applyThemeToSites",
+
"redditProtocol",
"bypassWatchOnReddit",
"alwaysUsePreferred",
- ], (result) => {
- disableReddit = result.disableReddit ?? false;
- protocol = result.redditProtocol ?? 'normal';
- frontend = result.redditFrontend ?? 'libreddit';
+ ], r => {
+ disableReddit = r.disableReddit ?? false;
+ protocol = r.redditProtocol ?? 'normal';
+ frontend = r.redditFrontend ?? 'libreddit';
- bypassWatchOnReddit = result.bypassWatchOnReddit ?? true;
+ bypassWatchOnReddit = r.bypassWatchOnReddit ?? true;
- alwaysUsePreferred = result.alwaysUsePreferred ?? false;
+ alwaysUsePreferred = r.alwaysUsePreferred ?? false;
redirects.teddit = dataJson.teddit;
- if (result.redditRedirects) redirects = result.redditRedirects;
+ if (r.redditRedirects) redirects = r.redditRedirects;
+
+ if (r.redditRedirects) redirects = r.redditRedirects;
- if (result.redditRedirects) redirects = result.redditRedirects;
+ theme = r.theme ?? 'DEFAULT';
+ applyThemeToSites = r.applyThemeToSites ?? false;
- libredditNormalRedirectsChecks = result.libredditNormalRedirectsChecks ?? [...redirects.libreddit.normal];
- libredditNormalCustomRedirects = result.libredditNormalCustomRedirects ?? [];
+ libredditNormalRedirectsChecks = r.libredditNormalRedirectsChecks ?? [...redirects.libreddit.normal];
+ libredditNormalCustomRedirects = r.libredditNormalCustomRedirects ?? [];
- libredditTorRedirectsChecks = result.libredditTorRedirectsChecks ?? [...redirects.libreddit.tor];
- libredditTorCustomRedirects = result.libredditTorCustomRedirects ?? [];
+ libredditTorRedirectsChecks = r.libredditTorRedirectsChecks ?? [...redirects.libreddit.tor];
+ libredditTorCustomRedirects = r.libredditTorCustomRedirects ?? [];
- tedditNormalRedirectsChecks = result.tedditNormalRedirectsChecks ?? [...redirects.teddit.normal];
- tedditNormalCustomRedirects = result.tedditNormalCustomRedirects ?? [];
+ tedditNormalRedirectsChecks = r.tedditNormalRedirectsChecks ?? [...redirects.teddit.normal];
+ tedditNormalCustomRedirects = r.tedditNormalCustomRedirects ?? [];
- tedditTorRedirectsChecks = result.tedditTorRedirectsChecks ?? [...redirects.teddit.tor];
- tedditTorCustomRedirects = result.tedditTorCustomRedirects ?? [];
+ tedditTorRedirectsChecks = r.tedditTorRedirectsChecks ?? [...redirects.teddit.tor];
+ tedditTorCustomRedirects = r.tedditTorCustomRedirects ?? [];
+
+ initLibredditCookies();
+ initTedditCookies();
resolve();
}
@@ -457,6 +508,8 @@ export default {
getTedditTorCustomRedirects,
setTedditTorCustomRedirects,
+ initLibredditCookies,
+
redirect,
init,
changeInstance,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index b90c201c..998589a6 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -3,7 +3,7 @@ window.browser = window.browser || window.chrome;
import commonHelper from './common.js'
const targets = [
- /^https?:\/\/(www\.|search\.|)google\.com(\...|)(\/search\?q=..*|\/$)/,
+ /^https?:\/\/(www\.|search\.|)google\.com(\...|)/,
/^https?:\/\/libredirect\.onion/
// /^https?:\/\/yandex\.com(\...|)(\/search\/..*|\/$)/,
];
@@ -158,6 +158,41 @@ function setProtocol(val) {
console.log("searchProtocol: ", val)
}
+let theme;
+let applyThemeToSites;
+function initSearxCookies() {
+ let themeValue;
+ if (theme == 'light') themeValue = 'logicodev';
+ if (theme == 'dark') themeValue = 'logicodev-dark';
+ if (applyThemeToSites && themeValue) {
+ let allInstances = [...redirects.searx.normal, ...redirects.searx.tor, ...searxNormalCustomRedirects, ...searxTorCustomRedirects]
+ let checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects, ...searxTorRedirectsChecks, ...searxTorCustomRedirects]
+ for (const instanceUrl of allInstances)
+ if (!checkedInstances.includes(instanceUrl)) {
+ browser.cookies.remove({
+ url: instanceUrl,
+ name: "oscar-style",
+ })
+ browser.cookies.remove({
+ url: instanceUrl,
+ name: "oscar",
+ })
+ }
+ for (const instanceUrl of checkedInstances) {
+ browser.cookies.set({
+ url: instanceUrl,
+ name: "oscar-style",
+ value: themeValue
+ })
+ browser.cookies.set({
+ url: instanceUrl,
+ name: "theme",
+ value: 'oscar'
+ })
+ }
+ }
+}
+
function redirect(url) {
if (disable) return;
if (!targets.some((rx) => rx.test(url.href))) return;
@@ -184,13 +219,12 @@ function redirect(url) {
randomInstance = redirects.startpage.normal;
path = "/do/search";
}
+ if (url.pathname == '/') path = '/';
let searchQuery = "";
- url.search.slice(1).split("&").forEach((input) => {
- if (input.startsWith("q=")) searchQuery = input;
- });
+ if (url.searchParams.has('q')) searchQuery = `?q=${url.searchParams.get('q')}`;
- return `${randomInstance}${path}?${searchQuery}`;
+ return `${randomInstance}${path}${searchQuery}`;
}
function changeInstance(url) {
@@ -254,30 +288,38 @@ async function init() {
"searxTorRedirectsChecks",
"searxTorCustomRedirects",
+ "theme",
+ "applyThemeToSites",
+
"searchProtocol",
],
- (result) => {
- disable = result.disableSearch ?? false;
+ r => {
+ disable = r.disableSearch ?? false;
- protocol = result.searchProtocol ?? 'normal';
+ protocol = r.searchProtocol ?? 'normal';
- frontend = result.searchFrontend ?? 'searx';
+ frontend = r.searchFrontend ?? 'searx';
+
+ theme = r.theme ?? 'DEFAULT';
+ applyThemeToSites = r.applyThemeToSites ?? false;
redirects.searx = dataJson.searx;
redirects.whoogle = dataJson.whoogle;
- if (result.searchRedirects) redirects = result.searchRedirects;
+ if (r.searchRedirects) redirects = r.searchRedirects;
+
+ whoogleNormalRedirectsChecks = r.whoogleNormalRedirectsChecks ?? [...redirects.whoogle.normal];
+ whoogleNormalCustomRedirects = r.whoogleNormalCustomRedirects ?? [];
- whoogleNormalRedirectsChecks = result.whoogleNormalRedirectsChecks ?? [...redirects.whoogle.normal];
- whoogleNormalCustomRedirects = result.whoogleNormalCustomRedirects ?? [];
+ whoogleTorRedirectsChecks = r.whoogleTorRedirectsChecks ?? [...redirects.whoogle.tor];
+ whoogleTorCustomRedirects = r.whoogleTorCustomRedirects ?? [];
- whoogleTorRedirectsChecks = result.whoogleTorRedirectsChecks ?? [...redirects.whoogle.tor];
- whoogleTorCustomRedirects = result.whoogleTorCustomRedirects ?? [];
+ searxNormalRedirectsChecks = r.searxNormalRedirectsChecks ?? [...redirects.searx.normal];
+ searxNormalCustomRedirects = r.searxNormalCustomRedirects ?? [];
- searxNormalRedirectsChecks = result.searxNormalRedirectsChecks ?? [...redirects.searx.normal];
- searxNormalCustomRedirects = result.searxNormalCustomRedirects ?? [];
+ searxTorRedirectsChecks = r.searxTorRedirectsChecks ?? [...redirects.searx.tor];
+ searxTorCustomRedirects = r.searxTorCustomRedirects ?? [];
- searxTorRedirectsChecks = result.searxTorRedirectsChecks ?? [...redirects.searx.tor];
- searxTorCustomRedirects = result.searxTorCustomRedirects ?? [];
+ initSearxCookies()
resolve();
}
diff --git a/src/assets/javascripts/helpers/translate/lingva-preferences.js b/src/assets/javascripts/helpers/translate/lingva-preferences.js
new file mode 100644
index 00000000..1cf08f65
--- /dev/null
+++ b/src/assets/javascripts/helpers/translate/lingva-preferences.js
@@ -0,0 +1,18 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.get(
+ [
+ "theme",
+ "applyThemeToSites",
+ ],
+ r => {
+ let applyThemeToSites = r.applyThemeToSites ?? false;
+ let theme = r.theme ?? "DEFAULT";
+
+ if (applyThemeToSites && theme != "DEFAULT") localStorage.setItem("chakra-ui-color-mode", r.theme);
+ }
+)
+
+window.onunload = () => {
+ localStorage.removeItem("chakra-ui-color-mode");
+};
diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index de70657f..f47ee82b 100644
--- a/src/assets/javascripts/helpers/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -1,6 +1,6 @@
window.browser = window.browser || window.chrome;
-import commonHelper from './common.js'
+import commonHelper from '../common.js'
const targets = [
"translate.google.com",
@@ -184,12 +184,56 @@ function setSimplyTranslateEngine(val) {
console.log("simplyTranslateEngine: ", val)
}
-function isTranslate(url, initiator) {
- if (disable) return false;
- return targets.includes(url.host)
+
+function isTranslateRedirects(url, type, frontend) {
+ let protocolHost = `${url.protocol}//${url.host}`;
+
+ if (type !== "main_frame") return false;
+
+ if (frontend == 'simplyTranslate')
+ return [
+ ...redirects.simplyTranslate.normal,
+ ...redirects.simplyTranslate.tor,
+ ...simplyTranslateNormalCustomRedirects,
+ ...simplyTranslateTorCustomRedirects,
+ ].includes(protocolHost);
+
+ if (frontend == 'lingva')
+ return [
+ ...redirects.lingva.normal,
+ ...redirects.lingva.tor,
+ ...lingvaNormalCustomRedirects,
+ ...lingvaTorCustomRedirects,
+ ].includes(protocolHost);
+
+ return [
+ ...redirects.simplyTranslate.normal,
+ ...redirects.simplyTranslate.tor,
+ ...simplyTranslateNormalCustomRedirects,
+ ...simplyTranslateTorCustomRedirects,
+
+ ...redirects.lingva.normal,
+ ...redirects.lingva.tor,
+ ...lingvaNormalCustomRedirects,
+ ...lingvaTorCustomRedirects,
+ ].includes(protocolHost);
+}
+
+function initLingvaLocalStorage(tabId) {
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/translate/lingva-preferences.js",
+ runAt: "document_start"
+ }
+ );
}
function redirect(url) {
+
+ if (disable) return;
+ if (!targets.includes(url.host)) return
+
let params_arr = url.search.split('&');
params_arr[0] = params_arr[0].substring(1);
let myMap = {};
@@ -212,8 +256,6 @@ function redirect(url) {
if (simplyTranslateEngine != "DEFAULT") url.searchParams.append("engine", simplyTranslateEngine);
return `${randomInstance}/${url.search}`
}
-
-
}
else if (frontend == 'lingva') {
let instancesList;
@@ -330,8 +372,6 @@ export default {
setSimplyTranslateRedirects,
setLingvaRedirects,
- isTranslate,
-
getDisable,
setDisable,
@@ -369,6 +409,9 @@ export default {
getLingvaTorCustomRedirects,
setLingvaTorCustomRedirects,
+ isTranslateRedirects,
+ initLingvaLocalStorage,
+
redirect,
init,
changeInstance,
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index ba301ad4..64868bbf 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -203,11 +203,11 @@ function initNitterCookies() {
let themeValue;
if (theme == 'light') themeValue = 'Twitter';
if (theme == 'dark') themeValue = 'Twitter Dark';
- if (applyThemeToSites && themeValue != 'DEFAULT') {
+ if (applyThemeToSites && themeValue) {
let allInstances = [...redirects.nitter.normal, ...redirects.nitter.tor, ...nitterNormalCustomRedirects, ...nitterTorCustomRedirects]
let checkedInstances = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects, ...nitterTorRedirectsChecks, ...nitterTorCustomRedirects]
- for (const item of allInstances)
- if (!checkedInstances.includes(item))
+ for (const instanceUrl of allInstances)
+ if (!checkedInstances.includes(instanceUrl))
browser.cookies.remove({
url: instanceUrl,
name: "theme",
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 12171625..fbe65748 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -95,12 +95,36 @@ function setWikilessTorCustomRedirects(val) {
console.log("wikilessTorCustomRedirects: ", val)
}
-function isWikipedia(url, initiator) {
- if (disable) return false;
- return targets.test(url.href);
+let theme;
+let applyThemeToSites;
+function initWikilessCookies() {
+ console.log("applyThemeToSites", applyThemeToSites)
+ let themeValue;
+ if (theme == 'light') themeValue = 'white';
+ if (theme == 'dark') themeValue = 'dark';
+ console.log("themeValue", themeValue)
+ if (applyThemeToSites && themeValue) {
+ let allInstances = [...redirects.wikiless.normal, ...redirects.wikiless.tor, ...wikilessNormalCustomRedirects, ...wikilessTorCustomRedirects]
+ let checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects, ...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]
+ for (const instanceUrl of allInstances)
+ if (!checkedInstances.includes(instanceUrl))
+ browser.cookies.remove({
+ url: instanceUrl,
+ name: "theme",
+ })
+ for (const instanceUrl of checkedInstances)
+ browser.cookies.set({
+ url: instanceUrl,
+ name: "theme",
+ value: themeValue
+ })
+ }
}
function redirect(url) {
+ if (disable) return;
+ if (!targets.test(url.href)) return;
+
let GETArguments = [];
if (url.search.length > 0) {
let search = url.search.substring(1); //get rid of '?'
@@ -172,7 +196,11 @@ async function init() {
"wikilessTorRedirectsChecks",
"wikilessNormalCustomRedirects",
"wikilessTorCustomRedirects",
- "wikipediaProtocol"
+ "wikipediaProtocol",
+
+ "theme",
+ "applyThemeToSites",
+
], r => { // r = result
disable = r.disableWikipedia ?? false;
@@ -187,6 +215,11 @@ async function init() {
wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks ?? [...redirects.wikiless.tor];
wikilessTorCustomRedirects = r.wikilessTorCustomRedirects ?? [];
+ theme = r.theme ?? 'DEFAULT';
+ applyThemeToSites = r.applyThemeToSites ?? false;
+
+ initWikilessCookies();
+
resolve();
}
);
@@ -215,8 +248,9 @@ export default {
getWikilessTorCustomRedirects,
setWikilessTorCustomRedirects,
+ initWikilessCookies,
+
redirect,
- isWikipedia,
init,
changeInstance,
};
diff --git a/src/assets/javascripts/helpers/youtube/invidious-preferences.js b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
deleted file mode 100644
index b25900b8..00000000
--- a/src/assets/javascripts/helpers/youtube/invidious-preferences.js
+++ /dev/null
@@ -1,27 +0,0 @@
-window.browser = window.browser || window.chrome;
-
-function getCookie() {
- for (const c of document.cookie.split(";")) {
- while (c.charAt(0) == " ") c = c.substring(1, c.length);
- if (c.indexOf("PREFS=") == 0)
- return JSON.parse(
- decodeURIComponent(c.substring("PREFS=".length, c.length))
- );
- }
- return {};
-}
-
-browser.storage.local.get(
- [
- "invidiousAlwaysProxy",
- "invidiousSubtitles",
- "invidiousPlayerStyle",
- "youtubeVolume",
- "youtubeAutoplay",
- "OnlyEmbeddedVideo",
- "theme",
- "invidiousVideoQuality",
- ],
- r => {
- }
-)
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 0ab77df6..760cb675 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -559,8 +559,6 @@ function initPipedMaterialLocalStorage(tabId) {
let applyThemeToSites;
function initInvidiousCookies() {
- console.log("initInvidiousCookies");
-
let prefs = {};
if (invidiousAlwaysProxy != "DEFAULT") prefs.local = invidiousAlwaysProxy == 'true';
if (invidiousVideoQuality != "DEFAULT") prefs.quality = invidiousVideoQuality;