aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-15 18:44:28 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-15 18:44:28 +0300
commitab44fd04ffa1055bd17a3da02017e8de3da88af2 (patch)
tree31480d540bcedd00c74ede926449af3ed34856bb /src/assets
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-ab44fd04ffa1055bd17a3da02017e8de3da88af2.zip
Complete on supporting Unify #234
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/helpers/common.js84
-rw-r--r--src/assets/javascripts/helpers/general.js28
-rw-r--r--src/assets/javascripts/helpers/imgur.js64
-rw-r--r--src/assets/javascripts/helpers/instagram.js74
-rw-r--r--src/assets/javascripts/helpers/lbry.js1
-rw-r--r--src/assets/javascripts/helpers/medium.js27
-rw-r--r--src/assets/javascripts/helpers/peertube.js21
-rw-r--r--src/assets/javascripts/helpers/reddit.js230
-rw-r--r--src/assets/javascripts/helpers/search.js275
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js13
-rw-r--r--src/assets/javascripts/helpers/tiktok.js108
-rw-r--r--src/assets/javascripts/helpers/translate/lingva-preferences.js4
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js99
-rw-r--r--src/assets/javascripts/helpers/twitter.js191
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js91
-rw-r--r--src/assets/javascripts/helpers/youtube/get_piped_settings.js22
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious.js133
-rw-r--r--src/assets/javascripts/helpers/youtube/piped-preferences.js65
-rw-r--r--src/assets/javascripts/helpers/youtube/piped.js98
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js135
-rw-r--r--src/assets/javascripts/helpers/youtubeMusic.js2
21 files changed, 728 insertions, 1037 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index f0da54c9..6e1c71ff 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -40,16 +40,13 @@ async function wholeInit() {
}
async function updateInstances() {
- const apiEndpoint = 'https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json';
- let request = new XMLHttpRequest();
- request.open('GET', apiEndpoint, false);
- request.send(null);
-
- if (request.status === 200) {
+ let http = new XMLHttpRequest();
+ http.open('GET', 'https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json', false);
+ http.send(null);
+ if (http.status === 200) {
await wholeInit();
-
- const instances = JSON.parse(request.responseText);
+ const instances = JSON.parse(http.responseText);
brwoser.storage.local.get(
[
@@ -98,12 +95,7 @@ function protocolHost(url) {
return `${url.protocol}//${url.host}`;
}
-async function processDefaultCustomInstances(
- target,
- name,
- protocol,
- document,
-) {
+async function processDefaultCustomInstances(target, name, protocol, document) {
function camelCase(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
@@ -117,7 +109,6 @@ async function processDefaultCustomInstances(
await initCloudflareList();
-
let nameDefaultRedirects;
let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`;
@@ -250,21 +241,39 @@ function isRtl() {
return ["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage())
}
-async function ping(href) {
+function getIp(href) {
return new Promise(resolve => {
+ let host = new URL(href).hostname;
+ let http = new XMLHttpRequest();
+ http.open("GET", `https://dns.google/resolve?name=${host}`, /*async*/true);
+ http.onreadystatechange = () => {
+ if (http.readyState == 4 && http.status == 200) {
+ let r = JSON.parse(http.responseText);
+ resolve(r.Answer[0].data)
+ }
+ };
+ http.ontimeout = () => resolve()
+ http.onerror = () => resolve()
+ try {
+ http.send(null)
+ }
+ catch (exception) {
+ resolve()
+ }
+ })
+}
+
+async function ping(href) {
+ return new Promise(async resolve => {
let http = new XMLHttpRequest();
- http.open("GET", href + '?_=' + new Date().getTime(), /*async*/true);
+ http.open("GET", `${href}?_=${new Date().getTime()}`, /*async*/true);
http.timeout = 5000;
let started = new Date().getTime();
- http.onreadystatechange = function () {
+ http.onreadystatechange = () => {
if (http.readyState == 2) {
- if (http.status == 200) {
- let ended = new Date().getTime();
- let ms = ended - started;
- http.abort();
- resolve(ms);
- }
- else resolve()
+ let ended = new Date().getTime();
+ http.abort();
+ resolve(ended - started);
}
};
http.ontimeout = () => resolve(5000)
@@ -283,19 +292,33 @@ async function testLatency(element, instances) {
for (const href of instances) await ping(href).then(m => {
if (m) {
myList[href] = m;
- element.innerHTML = `${href}:&nbsp;${'<span style="color:' + (m <= 1000 ? "green" : m <= 2000 ? "orange" : "red") + ';">' + (m == 5000 ? '5000ms+' : m + 'ms') + '</span>'}`;
- console.log(`${href}: ${m}ms`)
+ let color = m <= 1000 ? "green" : m <= 2000 ? "orange" : "red";
+ let text = m == 5000 ? '5000ms+' : m + 'ms';
+ element.innerHTML = `${href}:&nbsp;'<span style="color:${color};">${text}</span>`;
}
})
resolve(myList);
})
}
-function copyCookie(targetUrl, url, name) {
+function copyCookie(frontend, targetUrl, url, name) {
browser.cookies.get(
{ url: protocolHost(targetUrl), name: name },
r => {
- if (r) browser.cookies.set({ url: url, name: name, value: r.value })
+ if (r) {
+ browser.cookies.set({ url: url, name: name, value: r.value })
+ browser.storage.local.set({ [`${frontend}_${name}`]: r.value })
+ }
+ }
+ )
+}
+
+function getCookiesFromStorage(frontend, to, name) {
+ let key = `${frontend}_${name}`;
+ browser.storage.local.get(
+ key,
+ r => {
+ if (r) browser.cookies.set({ url: to, name: name, value: r[key] })
}
)
}
@@ -307,5 +330,6 @@ export default {
processDefaultCustomInstances,
isRtl,
testLatency,
- copyCookie
+ copyCookie,
+ getCookiesFromStorage,
}
diff --git a/src/assets/javascripts/helpers/general.js b/src/assets/javascripts/helpers/general.js
index b6570629..fdc60643 100644
--- a/src/assets/javascripts/helpers/general.js
+++ b/src/assets/javascripts/helpers/general.js
@@ -1,14 +1,6 @@
"use strict";
window.browser = window.browser || window.chrome;
-let alwaysUsePreferred;
-const getAlwaysUsePreferred = () => alwaysUsePreferred;
-function setAlwaysUsePreferred(val) {
- alwaysUsePreferred = val;
- browser.storage.local.set({ alwaysUsePreferred })
- console.log("alwaysUsePreferred: ", alwaysUsePreferred)
-}
-
let theme;
const getTheme = () => theme;
function setTheme(val) {
@@ -17,14 +9,6 @@ function setTheme(val) {
console.log("theme: ", theme)
}
-let applyThemeToSites;
-const getApplyThemeToSites = () => applyThemeToSites;
-function setApplyThemeToSites(val) {
- applyThemeToSites = val;
- browser.storage.local.set({ applyThemeToSites })
- console.log("applyThemeToSites: ", applyThemeToSites)
-}
-
let exceptions = {
"url": [],
"regex": [],
@@ -59,18 +43,14 @@ async function init() {
resolve => browser.storage.local.get(
[
"exceptions",
- "alwaysUsePreferred",
"theme",
- "applyThemeToSites",
"popupFrontends",
"autoRedirect"
],
- r => {
+ r => {
if (r.exceptions) exceptions = r.exceptions;
- alwaysUsePreferred = r.alwaysUsePreferred ?? false;
theme = r.theme ?? "DEFAULT"
- applyThemeToSites = r.applyThemeToSites ?? false;
popupFrontends = r.popupFrontends ?? [
"youtube",
@@ -128,12 +108,6 @@ export default {
getAutoRedirect,
setAutoRedirect,
- getAlwaysUsePreferred,
- setAlwaysUsePreferred,
-
- getApplyThemeToSites,
- setApplyThemeToSites,
-
getPopupFrontends,
setPopupFrontends,
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index f581a75a..8f8c28e9 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -52,21 +52,8 @@ let
rimgoI2pCustomRedirects;
function redirect(url, type, initiator) {
- // https://imgur.com/gallery/s4WXQmn
- // https://imgur.com/a/H8M4rcp
- // https://imgur.com/gallery/gYiQLWy
- // https://imgur.com/gallery/cTRwaJU
- // https://i.imgur.com/CFSQArP.jpeg
-
if (disable) return;
- if (url.pathname == "/") false;
- if (
- initiator &&
- ([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.test(initiator.host))
- ) return;
- if (!targets.test(url.href)) return;
-
-
+ if (url.pathname == "/") return;
if (![
"main_frame",
"sub_frame",
@@ -74,10 +61,19 @@ function redirect(url, type, initiator) {
"other",
"image",
"media",
- ].includes(type)) return null;
-
- if (url.pathname.includes("delete/")) return null;
+ ].includes(type)) return;
+ if (
+ initiator &&
+ ([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.test(initiator.host))
+ ) return;
+ if (!targets.test(url.href)) return;
+ if (url.pathname.includes("delete/")) return;
+ // https://imgur.com/gallery/s4WXQmn
+ // https://imgur.com/a/H8M4rcp
+ // https://imgur.com/gallery/gYiQLWy
+ // https://imgur.com/gallery/cTRwaJU
+ // https://i.imgur.com/CFSQArP.jpeg
let instancesList;
if (protocol == 'normal') instancesList = [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects];
if (protocol == 'tor') instancesList = [...rimgoTorRedirectsChecks, ...rimgoTorCustomRedirects];
@@ -88,17 +84,29 @@ function redirect(url, type, initiator) {
return `${randomInstance}${url.pathname}${url.search}`;
}
-function reverse(url) {
- let protocolHost = commonHelper.protocolHost(url);
- if (
- ![...redirects.rimgo.normal,
- ...redirects.rimgo.tor,
- ...redirects.rimgo.i2p,
- ...rimgoNormalCustomRedirects,
- ...rimgoTorCustomRedirects,
- ...rimgoI2pCustomRedirects].includes(protocolHost)
- ) return;
- return `https://imgur.com${url.pathname}${url.search}`;
+async function reverse(url) {
+ browser.storage.local.get(
+ [
+ "imgurRedirects",
+ "rimgoNormalCustomRedirects",
+ "rimgoTorCustomRedirects",
+ "rimgoI2pCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (
+ ![
+ ...r.imgurRedirects.rimgo.normal,
+ ...r.imgurRedirects.rimgo.tor,
+ ...r.imgurRedirects.rimgo.i2p,
+ ...r.rimgoNormalCustomRedirects,
+ ...r.rimgoTorCustomRedirects,
+ ...r.rimgoI2pCustomRedirects
+ ].includes(protocolHost)
+ ) return;
+ return `https://imgur.com${url.pathname}${url.search}`;
+ }
+ )
}
function switchInstance(url) {
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index ca6097dd..effbe46c 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -84,21 +84,33 @@ function redirect(url, type, initiator) {
return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
}
-function reverse(url) {
- let protocolHost = commonHelper.protocolHost(url);
- if (
- ![...redirects.bibliogram.normal,
- ...redirects.bibliogram.tor,
- ...bibliogramNormalCustomRedirects,
- ...bibliogramTorCustomRedirects].includes(protocolHost)
- ) return;
- if (url.pathname.startsWith('/p'))
- return `https://instagram.com${url.pathname.replace('/p', '')}${url.search}`;
+async function reverse(url) {
+ browser.storage.local.get(
+ [
+ "instagramRedirects",
+ "bibliogramNormalCustomRedirects",
+ "bibliogramTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (
+ ![
+ ...r.instagramRedirects.bibliogram.normal,
+ ...r.instagramRedirects.bibliogram.tor,
+ ...r.bibliogramNormalCustomRedirects,
+ ...r.bibliogramTorCustomRedirects
+ ].includes(protocolHost)
+ ) return;
- if (url.pathname.startsWith('/u'))
- return `https://instagram.com${url.pathname.replace('/u', '')}${url.search}`;
+ if (url.pathname.startsWith('/p'))
+ return `https://instagram.com${url.pathname.replace('/p', '')}${url.search}`;
- return `https://instagram.com${url.pathname}${url.search}`;
+ if (url.pathname.startsWith('/u'))
+ return `https://instagram.com${url.pathname.replace('/u', '')}${url.search}`;
+
+ return `https://instagram.com${url.pathname}${url.search}`;
+ }
+ )
}
function switchInstance(url) {
@@ -139,7 +151,6 @@ function isBibliogram(url) {
let instancesCookies;
let theme;
-let applyThemeToSites;
function initBibliogramCookies(url) {
let protocolHost = commonHelper.protocolHost(url);
browser.cookies.get(
@@ -150,17 +161,15 @@ function initBibliogramCookies(url) {
let request = new XMLHttpRequest();
request.open("POST", `${protocolHost}/settings/return?referrer=%2F`);
- if (applyThemeToSites) {
- let themeValue;
- if (theme == 'light') themeValue = "classic";
- if (theme == 'dark') themeValue = "pussthecat.org-v2"
+ let themeValue;
+ if (theme == 'light') themeValue = "classic";
+ if (theme == 'dark') themeValue = "pussthecat.org-v2"
- if (themeValue) {
- let data = `csrf=x&theme=${themeValue}`;
- request.send(data);
- if (!instancesCookies.includes(protocolHost)) instancesCookies.push(protocolHost);
- browser.storage.local.set({ instancesCookies })
- }
+ if (themeValue) {
+ let data = `csrf=x&theme=${themeValue}`;
+ request.send(data);
+ if (!instancesCookies.includes(protocolHost)) instancesCookies.push(protocolHost);
+ browser.storage.local.set({ instancesCookies })
}
}
})
@@ -168,25 +177,22 @@ function initBibliogramCookies(url) {
}
-async function initDefaults() {
- return new Promise(async resolve => {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
+function initDefaults() {
+ return new Promise(resolve => {
+ fetch('/instances/data.json').then(response => response.text()).then(data => {
let dataJson = JSON.parse(data);
redirects.bibliogram = dataJson.bibliogram;
- browser.storage.local.get('cloudflareList', async r => {
+ browser.storage.local.get('cloudflareList', r => {
bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal];
for (const instance of r.cloudflareList) {
- let i;
-
- i = bibliogramNormalRedirectsChecks.indexOf(instance);
+ let i = bibliogramNormalRedirectsChecks.indexOf(instance);
if (i > -1) bibliogramNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableInstagram: false,
instagramRedirects: redirects,
theme: 'DEFAULT',
- applyThemeToSites: false,
instancesCookies: [],
@@ -212,7 +218,6 @@ async function init() {
"instagramRedirects",
"theme",
- "applyThemeToSites",
"instancesCookies",
@@ -228,7 +233,6 @@ async function init() {
if (r.instagramRedirects) redirects = r.instagramRedirects
theme = r.theme;
- applyThemeToSites = r.applyThemeToSites;
instancesCookies = r.instancesCookies;
diff --git a/src/assets/javascripts/helpers/lbry.js b/src/assets/javascripts/helpers/lbry.js
index b82ae9ad..6010574e 100644
--- a/src/assets/javascripts/helpers/lbry.js
+++ b/src/assets/javascripts/helpers/lbry.js
@@ -118,7 +118,6 @@ async function initDefaults() {
})
}
-
async function init() {
return new Promise(resolve => {
browser.storage.local.get(
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 99a14cca..5306f478 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -35,18 +35,9 @@ let redirects = {
}
};
const getRedirects = () => redirects;
-const getCustomRedirects = function () {
- return {
- "scribe": {
- "normal": [...scribeNormalRedirectsChecks, ...scribeNormalCustomRedirects],
- "tor": [...scribeTorRedirectsChecks, ...scribeTorCustomRedirects]
- },
- };
-};
function setRedirects(val) {
redirects.scribe = val;
browser.storage.local.set({ mediumRedirects: redirects })
- console.log("mediumRedirects: ", val)
for (const item of scribeNormalRedirectsChecks) if (!redirects.scribe.normal.includes(item)) {
var index = scribeNormalRedirectsChecks.indexOf(item);
if (index !== -1) scribeNormalRedirectsChecks.splice(index, 1);
@@ -78,12 +69,11 @@ function redirect(url, type, initiator) {
if (disable) return;
- if (type != "main_frame" && "sub_frame" && "xmlhttprequest" && "other") return null;
+ if (type != "main_frame" && "sub_frame" && "xmlhttprequest" && "other") return;
if (initiator && ([...redirects.scribe.normal, ...scribeNormalCustomRedirects].includes(initiator.origin))) return;
if (!targets.some(rx => rx.test(url.host))) return;
- console.log('url.pathname', url.pathname);
if (/^\/($|@[a-zA-Z.]{0,}(\/|)$)/.test(url.pathname)) return;
let instancesList;
@@ -112,7 +102,6 @@ function switchInstance(url) {
if (protocol == 'normal') instancesList = [...scribeNormalCustomRedirects, ...scribeNormalRedirectsChecks];
else if (protocol == 'tor') instancesList = [...scribeTorCustomRedirects, ...scribeTorRedirectsChecks];
- console.log("instancesList", instancesList);
let index = instancesList.indexOf(protocolHost);
if (index > -1) instancesList.splice(index, 1);
@@ -122,17 +111,17 @@ function switchInstance(url) {
return `${randomInstance}${url.pathname}${url.search}`;
}
-async function initDefaults() {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
+function initDefaults() {
+ fetch('/instances/data.json').then(response => response.text()).then(data => {
let dataJson = JSON.parse(data);
redirects.scribe = dataJson.scribe;
- browser.storage.local.get('cloudflareList', async r => {
+ browser.storage.local.get('cloudflareList', r => {
scribeNormalRedirectsChecks = [...redirects.scribe.normal];
for (const instance of r.cloudflareList) {
let i = scribeNormalRedirectsChecks.indexOf(instance);
if (i > -1) scribeNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableMedium: false,
mediumRedirects: redirects,
@@ -162,10 +151,7 @@ async function init() {
],
r => {
disable = r.disableMedium;
-
protocol = r.mediumProtocol;
-
-
redirects = r.mediumRedirects;
scribeNormalRedirectsChecks = r.scribeNormalRedirectsChecks;
@@ -181,10 +167,7 @@ async function init() {
}
export default {
- targets,
-
getRedirects,
- getCustomRedirects,
setRedirects,
redirect,
diff --git a/src/assets/javascripts/helpers/peertube.js b/src/assets/javascripts/helpers/peertube.js
index 14dda0b1..7fca2b61 100644
--- a/src/assets/javascripts/helpers/peertube.js
+++ b/src/assets/javascripts/helpers/peertube.js
@@ -73,11 +73,18 @@ function switchInstance(url) {
}
function redirect(url, type, initiator) {
-
- let protocolHost = commonHelper.protocolHost(url);
-
if (disable) return null;
- if (initiator && ([...redirects.simpleertube.normal, ...simpleertubeNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
+ if (
+ initiator &&
+ (
+ [
+ ...redirects.simpleertube.normal,
+ ...simpleertubeNormalCustomRedirects
+ ].includes(initiator.origin) ||
+ targets.includes(initiator.host)
+ )
+ ) return null;
+ let protocolHost = commonHelper.protocolHost(url);
if (!targets.includes(protocolHost)) return null;
if (type != "main_frame") return null;
@@ -104,9 +111,7 @@ async function initDefaults() {
}
await browser.storage.local.set({
peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
-
disablePeertubeTargets: true,
-
peertubeRedirects: redirects,
simpleertubeNormalRedirectsChecks: simpleertubeNormalRedirectsChecks,
@@ -132,14 +137,11 @@ async function init() {
"simpleertubeTorCustomRedirects",
"peerTubeTargets",
-
"peertubeTargetsProtocol"
],
r => {
disable = r.disablePeertubeTargets;
-
protocol = r.peertubeTargetsProtocol;
-
targets = r.peerTubeTargets;
simpleertubeNormalRedirectsChecks = r.simpleertubeNormalRedirectsChecks;
@@ -152,7 +154,6 @@ async function init() {
}
export default {
-
getRedirects,
setRedirects,
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 04ac2a4b..bbcaf872 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -17,18 +17,6 @@ let redirects = {
},
};
const getRedirects = () => redirects;
-const getCustomRedirects = function () {
- return {
- "libreddit": {
- "normal": [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects],
- "tor": [...libredditTorRedirectsChecks, ...libredditTorCustomRedirects]
- },
- "teddit": {
- "normal": [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects],
- "tor": [...tedditTorRedirectsChecks, ...tedditTorCustomRedirects]
- }
- };
-};
function setLibredditRedirects(val) {
redirects.libreddit = val;
@@ -80,63 +68,93 @@ let tedditTorCustomRedirects = [];
const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
-let disableReddit;
-const getDisableReddit = () => disableReddit;
-function setDisableReddit(val) {
- disableReddit = val;
- browser.storage.local.set({ disableReddit })
-}
+let
+ disableReddit,
+ frontend,
+ protocol;
-let frontend;
-let protocol;
-let bypassWatchOnReddit;
-
-function initLibredditCookies(targetUrl) {
- browser.storage.local.get(
- [
- "redditProtocol",
- "libredditNormalRedirectsChecks",
- "libredditNormalCustomRedirects",
- "libredditTorRedirectsChecks",
- "libredditTorCustomRedirects",
- ],
- r => {
- let checkedInstances;
- if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects];
- else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects];
+function initLibredditCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "redditProtocol",
+ "libredditNormalRedirectsChecks",
+ "libredditNormalCustomRedirects",
+ "libredditTorRedirectsChecks",
+ "libredditTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.libredditNormalRedirectsChecks,
+ ...r.libredditTorRedirectsChecks,
+ ...r.libredditNormalCustomRedirects,
+ ...r.libredditTorCustomRedirects,
+ ].includes(protocolHost)) resolve();
- for (const instance of checkedInstances) {
- commonHelper.copyCookie(targetUrl, instance, "theme");
- commonHelper.copyCookie(targetUrl, instance, "front_page");
- commonHelper.copyCookie(targetUrl, instance, "layout");
- commonHelper.copyCookie(targetUrl, instance, "wide");
- commonHelper.copyCookie(targetUrl, instance, "post_sort");
- commonHelper.copyCookie(targetUrl, instance, "comment_sort");
- commonHelper.copyCookie(targetUrl, instance, "show_nsfw");
- commonHelper.copyCookie(targetUrl, instance, "autoplay_videos");
- commonHelper.copyCookie(targetUrl, instance, "use_hls");
- commonHelper.copyCookie(targetUrl, instance, "hide_hls_notification");
+ let checkedInstances;
+ if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects];
+ else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects];
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('libreddit', from, to, "theme");
+ commonHelper.copyCookie('libreddit', from, to, "front_page");
+ commonHelper.copyCookie('libreddit', from, to, "layout");
+ commonHelper.copyCookie('libreddit', from, to, "wide");
+ commonHelper.copyCookie('libreddit', from, to, "post_sort");
+ commonHelper.copyCookie('libreddit', from, to, "comment_sort");
+ commonHelper.copyCookie('libreddit', from, to, "show_nsfw");
+ commonHelper.copyCookie('libreddit', from, to, "autoplay_videos");
+ commonHelper.copyCookie('libreddit', from, to, "use_hls");
+ commonHelper.copyCookie('libreddit', from, to, "hide_hls_notification");
+ }
+ resolve(true);
}
- }
- )
-}
+ )
+ })
-function initTedditCookies() {
- let checkedInstances = [
- ...tedditNormalRedirectsChecks,
- ...tedditNormalCustomRedirects,
- ...tedditTorRedirectsChecks,
- ...tedditTorCustomRedirects
- ]
- for (const instanceUrl of checkedInstances)
- browser.cookies.set({
- url: instanceUrl,
- name: "theme",
- value: theme == 'dark' ? 'dark' : 'white'
- })
}
-let alwaysUsePreferred;
+function initTedditCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "redditProtocol",
+ "tedditNormalRedirectsChecks",
+ "tedditNormalCustomRedirects",
+ "tedditTorRedirectsChecks",
+ "tedditTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.tedditNormalRedirectsChecks,
+ ...r.tedditTorRedirectsChecks,
+ ...r.tedditNormalCustomRedirects,
+ ...r.tedditTorCustomRedirects,
+ ].includes(protocolHost)) resolve();
+
+ let checkedInstances;
+ if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects]
+ else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('teddit', from, to, 'collapse_child_comments')
+ commonHelper.copyCookie('teddit', from, to, 'domain_instagram')
+ commonHelper.copyCookie('teddit', from, to, 'domain_twitter')
+ commonHelper.copyCookie('teddit', from, to, 'domain_youtube')
+ commonHelper.copyCookie('teddit', from, to, 'flairs')
+ commonHelper.copyCookie('teddit', from, to, 'highlight_controversial')
+ commonHelper.copyCookie('teddit', from, to, 'nsfw_enabled')
+ commonHelper.copyCookie('teddit', from, to, 'post_media_max_height')
+ commonHelper.copyCookie('teddit', from, to, 'show_upvoted_percentage')
+ commonHelper.copyCookie('teddit', from, to, 'show_upvotes')
+ commonHelper.copyCookie('teddit', from, to, 'theme')
+ commonHelper.copyCookie('teddit', from, to, 'videos_muted')
+ }
+ resolve(true);
+ }
+ )
+ })
+}
function redirect(url, type, initiator) {
// https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4
@@ -151,47 +169,9 @@ function redirect(url, type, initiator) {
// https://i.redd.it/bfkhs659tzk81.jpg
if (disableReddit) return null;
-
- let protocolHost = commonHelper.protocolHost(url);
-
- let isTeddit = [
- ...redirects.teddit.normal,
- ...redirects.teddit.tor
- ].includes(protocolHost);
-
- let isCheckedTeddit = [
- ...tedditNormalRedirectsChecks,
- ...tedditNormalCustomRedirects,
- ...tedditTorRedirectsChecks,
- ...tedditTorCustomRedirects,
- ].includes(protocolHost);
-
- let isLibreddit = [
- ...redirects.libreddit.normal,
- ...redirects.libreddit.tor
- ].includes(protocolHost);
-
- let isCheckedLibreddit = [
- ...libredditNormalRedirectsChecks,
- ...libredditNormalCustomRedirects,
- ...libredditTorRedirectsChecks,
- ...libredditTorCustomRedirects,
- ].includes(protocolHost)
-
- if (
- alwaysUsePreferred && frontend == 'teddit' &&
- (isTeddit || isLibreddit) && !isCheckedTeddit
- ) return switchInstance(url);
-
- if (
- alwaysUsePreferred && frontend == 'libreddit' &&
- (isTeddit || isLibreddit) && !isCheckedLibreddit
- ) return switchInstance(url);
-
if (!targets.some(rx => rx.test(url.href))) return null;
if (
- bypassWatchOnReddit &&
initiator &&
[...redirects.libreddit.normal,
...redirects.libreddit.tor,
@@ -320,10 +300,7 @@ async function switchInstance(url) {
...r.tedditNormalCustomRedirects,
...r.tedditTorCustomRedirects,
]
-
if (!redditList.includes(protocolHost)) return null;
-
- console.log('redditFrontend', r.redditFrontend)
let instancesList;
if (r.redditFrontend == 'libreddit') {
if (r.redditProtocol == 'normal') instancesList = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects];
@@ -346,7 +323,6 @@ async function switchInstance(url) {
}
)
})
-
}
async function initDefaults() {
@@ -370,10 +346,6 @@ async function initDefaults() {
disableReddit: false,
redditProtocol: 'normal',
redditFrontend: 'libreddit',
-
- bypassWatchOnReddit: true,
- alwaysUsePreferred: false,
-
redditRedirects: redirects,
libredditNormalRedirectsChecks: libredditNormalRedirectsChecks,
@@ -387,18 +359,6 @@ async function initDefaults() {
tedditTorRedirectsChecks: [...redirects.teddit.tor],
tedditTorCustomRedirects: [],
-
- enableLibredditCustomSettings: false,
-
- redditTheme: 'system',
- redditFrontPage: 'default',
- redditLayout: 'card',
- redditWide: false,
- redditPostSort: 'hot',
- redditCommentSort: 'confidence',
- redditShowNsfw: false,
- redditUseHls: false,
- redditHideHlsNotification: false,
});
});
});
@@ -411,6 +371,7 @@ async function init() {
"disableReddit",
"redditFrontend",
"redditRedirects",
+ "redditProtocol",
"libredditNormalRedirectsChecks",
"libredditNormalCustomRedirects",
@@ -421,32 +382,10 @@ async function init() {
"tedditNormalCustomRedirects",
"tedditTorRedirectsChecks",
"tedditTorCustomRedirects",
-
- "redditProtocol",
- "bypassWatchOnReddit",
-
- "alwaysUsePreferred",
-
- "enableLibredditCustomSettings",
-
- "redditTheme",
- "redditFrontPage",
- "redditLayout",
- "redditWide",
- "redditPostSort",
- "redditCommentSort",
- "redditShowNsfw",
- "redditAutoplayVideos",
- "redditUseHls",
- "redditHideHlsNotification",
], r => {
disableReddit = r.disableReddit;
protocol = r.redditProtocol;
frontend = r.redditFrontend;
-
- bypassWatchOnReddit = r.bypassWatchOnReddit;
- alwaysUsePreferred = r.alwaysUsePreferred;
-
redirects = r.redditRedirects;
libredditNormalRedirectsChecks = r.libredditNormalRedirectsChecks;
@@ -468,15 +407,10 @@ async function init() {
}
export default {
- targets,
getRedirects,
- getCustomRedirects,
setTedditRedirects,
setLibredditRedirects,
- getDisableReddit,
- setDisableReddit,
-
initLibredditCookies,
initTedditCookies,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index e6d230fe..730f3938 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -122,138 +122,120 @@ let
whoogleTorCustomRedirects,
whoogleI2pCustomRedirects;
-let disable; // disableSearch
-let frontend; // searchFrontend
-let protocol; // searchProtocol
+let disable, // disableSearch
+ frontend, // searchFrontend
+ protocol; // searchProtocol
-let theme;
-let applyThemeToSites;
-function initSearxCookies() {
- let themeValue;
- if (theme == 'light') themeValue = 'logicodev';
- if (theme == 'dark') themeValue = 'logicodev-dark';
- if (applyThemeToSites && themeValue) {
- let checkedInstances;
- if (protocol == 'normal') checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...searxTorRedirectsChecks, ...searxTorCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...searxI2pRedirectsChecks, ...searxI2pCustomRedirects];
+function initSearxCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "searchProtocol",
+ "searxNormalRedirectsChecks",
+ "searxNormalCustomRedirects",
+ "searxTorRedirectsChecks",
+ "searxTorCustomRedirects",
+ "searxI2pRedirectsChecks",
+ "searxI2pCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.searxNormalRedirectsChecks,
+ ...r.searxNormalCustomRedirects,
+ ...r.searxTorRedirectsChecks,
+ ...r.searxTorCustomRedirects,
+ ...r.searxI2pRedirectsChecks,
+ ...r.searxI2pCustomRedirects,
+ ].includes(protocolHost)) resolve();
- for (const instanceUrl of checkedInstances) {
- browser.cookies.set({ url: instanceUrl, name: "oscar-style", value: themeValue })
- browser.cookies.set({ url: instanceUrl, name: "theme", value: 'oscar' })
- }
- }
+ let checkedInstances;
+ if (protocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...r.searxI2pRedirectsChecks, ...r.searxI2pCustomRedirects];
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('searx', from, to, 'advanced_search');
+ commonHelper.copyCookie('searx', from, to, 'autocomplete');
+ commonHelper.copyCookie('searx', from, to, 'categories');
+ commonHelper.copyCookie('searx', from, to, 'disabled_engines');
+ commonHelper.copyCookie('searx', from, to, 'disabled_plugins');
+ commonHelper.copyCookie('searx', from, to, 'doi_resolver');
+ commonHelper.copyCookie('searx', from, to, 'enabled_engines');
+ commonHelper.copyCookie('searx', from, to, 'enabled_plugins');
+ commonHelper.copyCookie('searx', from, to, 'image_proxy');
+ commonHelper.copyCookie('searx', from, to, 'language');
+ commonHelper.copyCookie('searx', from, to, 'locale');
+ commonHelper.copyCookie('searx', from, to, 'method');
+ commonHelper.copyCookie('searx', from, to, 'oscar-style');
+ commonHelper.copyCookie('searx', from, to, 'results_on_new_tab');
+ commonHelper.copyCookie('searx', from, to, 'safesearch');
+ commonHelper.copyCookie('searx', from, to, 'theme');
+ commonHelper.copyCookie('searx', from, to, 'tokens');
+ }
+ resolve(true);
+ }
+ )
+ })
}
-function initSearxngCookies() {
- browser.storage.local.get(
- [
- "searchProtocol",
- "searchFrontend",
- "searxngCustomSettings",
-
- "searxngNormalRedirectsChecks",
- "searxngNormalCustomRedirects",
- "searxngTorRedirectsChecks",
- "searxngTorCustomRedirects",
- "searxngI2pRedirectsChecks",
- "searxngI2pCustomRedirects",
-
- "searxng_category_general",
- "searxng_category_images",
- "searxng_category_videos",
- "searxng_category_news",
- "searxng_category_map",
- "searxng_category_music",
- "searxng_category_it",
- "searxng_category_science",
- "searxng_category_files",
- "searxng_category_social_media",
- "searxng_language",
- "searxng_autocomplete",
- "searxng_safesearch",
- "searxng_hostname_replace",
- "searxng_oa_doi_rewrite",
- "searxng_doi_resolver",
- "searxng_tokens",
- "searxng_locale",
- "searxng_theme",
- "searxng_simple_style",
- "searxng_results_on_new_tab",
- "searxng_infinite_scroll",
- "searxng_search_on_category_select",
- "searxng_vim_hotkeys",
- "searxng_method",
- "searxng_image_proxy",
- "searxng_query_in_title",
- "searxng_tracker_url_remover",
- ],
- r => {
- if (!r.searxngCustomSettings || r.searchFrontend != 'searxng') return;
- console.log('init SearXNG Cookies');
- let checkedInstances;
- if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects];
- else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects];
- else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxngI2pRedirectsChecks, ...r.searxngI2pCustomRedirects];
-
- let categoryList = [];
- if (r.searxng_category_general) categoryList.push('general')
- if (r.searxng_category_images) categoryList.push('images')
- if (r.searxng_category_videos) categoryList.push('videos')
- if (r.searxng_category_news) categoryList.push('news')
- if (r.searxng_category_map) categoryList.push('map')
- if (r.searxng_category_music) categoryList.push('music')
- if (r.searxng_category_it) categoryList.push('it')
- if (r.searxng_category_science) categoryList.push('science')
- if (r.searxng_category_files) categoryList.push('files')
- if (r.searxng_category_social_media) categoryList.push('social media')
- let categoryString = '"' + categoryList.join("\\054") + '"' // ""general\054images\054videos""
-
- let enabledPluginsList = [];
- if (r.searxng_hostname_replace) enabledPluginsList.push('searx.plugins.hostname_replace')
- if (r.searxng_oa_doi_rewrite) enabledPluginsList.push('searx.plugins.oa_doi_rewrite')
- if (r.searxng_vim_hotkeys) enabledPluginsList.push('searx.plugins.vim_hotkeys')
-
- let enabledPluginsString = '"' + enabledPluginsList.join("\\054") + '"' // ""searx.plugins.hostname_replace\054searx.plugins.oa_doi_rewrite""
-
-
- let disabledPluginsList = [];
- if (!r.searxng_search_on_category_select) disabledPluginsList.push('searx.plugins.search_on_category_select')
- if (!r.searxng_tracker_url_remover) disabledPluginsList.push('searx.plugins.tracker_url_remover')
- let disabledPluginsString = '"' + disabledPluginsList.join("\\054") + '"' // ""searx.plugins.hostname_replace\054searx.plugins.oa_doi_rewrite""
-
- for (const instanceUrl of checkedInstances) {
- browser.cookies.set({ url: instanceUrl, name: "categories", value: categoryString });
-
- browser.cookies.set({ url: instanceUrl, name: "language", value: r.searxng_language });
- browser.cookies.set({ url: instanceUrl, name: "autocomplete", value: r.searxng_autocomplete });
- browser.cookies.set({ url: instanceUrl, name: "safesearch", value: r.searxng_safesearch });
+function initSearxngCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "searchProtocol",
+ "searxngNormalRedirectsChecks",
+ "searxngNormalCustomRedirects",
+ "searxngTorRedirectsChecks",
+ "searxngTorCustomRedirects",
+ "searxngI2pRedirectsChecks",
+ "searxngI2pCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.searxngNormalRedirectsChecks,
+ ...r.searxngNormalCustomRedirects,
+ ...r.searxngTorRedirectsChecks,
+ ...r.searxngTorCustomRedirects,
+ ...r.searxngI2pRedirectsChecks,
+ ...r.searxngI2pCustomRedirects,
+ ].includes(protocolHost)) resolve();
- browser.cookies.set({ url: instanceUrl, name: "enabled_plugins", value: enabledPluginsString });
- browser.cookies.set({ url: instanceUrl, name: "disabled_plugins", value: disabledPluginsString });
-
- browser.cookies.set({ url: instanceUrl, name: "doi_resolver", value: r.searxng_doi_resolver });
- browser.cookies.set({ url: instanceUrl, name: "tokens", value: r.searxng_tokens });
- browser.cookies.set({ url: instanceUrl, name: "locale", value: r.searxng_locale });
- browser.cookies.set({ url: instanceUrl, name: "theme", value: r.searxng_theme });
- browser.cookies.set({ url: instanceUrl, name: "simple_style", value: r.searxng_simple_style });
- browser.cookies.set({ url: instanceUrl, name: "results_on_new_tab", value: r.searxng_results_on_new_tab });
- browser.cookies.set({ url: instanceUrl, name: "infinite_scroll", value: r.searxng_infinite_scroll });
- browser.cookies.set({ url: instanceUrl, name: "method", value: r.searxng_method });
- browser.cookies.set({ url: instanceUrl, name: "image_proxy", value: r.searxng_image_proxy });
- browser.cookies.set({ url: instanceUrl, name: "query_in_title", value: r.searxng_query_in_title });
+ let checkedInstances;
+ if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects];
+ else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects];
+ else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxngI2pRedirectsChecks, ...r.searxngI2pCustomRedirects];
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('searxng', from, to, 'autocomplete');
+ commonHelper.copyCookie('searxng', from, to, 'categories');
+ commonHelper.copyCookie('searxng', from, to, 'disabled_engines');
+ commonHelper.copyCookie('searxng', from, to, 'disabled_plugins');
+ commonHelper.copyCookie('searxng', from, to, 'doi_resolver');
+ commonHelper.copyCookie('searxng', from, to, 'enabled_plugins');
+ commonHelper.copyCookie('searxng', from, to, 'enabled_engines');
+ commonHelper.copyCookie('searxng', from, to, 'image_proxy');
+ commonHelper.copyCookie('searxng', from, to, 'infinite_scroll');
+ commonHelper.copyCookie('searxng', from, to, 'language');
+ commonHelper.copyCookie('searxng', from, to, 'locale');
+ commonHelper.copyCookie('searxng', from, to, 'maintab');
+ commonHelper.copyCookie('searxng', from, to, 'method');
+ commonHelper.copyCookie('searxng', from, to, 'query_in_title');
+ commonHelper.copyCookie('searxng', from, to, 'results_on_new_tab');
+ commonHelper.copyCookie('searxng', from, to, 'safesearch');
+ commonHelper.copyCookie('searxng', from, to, 'simple_style');
+ commonHelper.copyCookie('searxng', from, to, 'theme');
+ commonHelper.copyCookie('searxng', from, to, 'tokens');
+ }
+ resolve(true);
}
- }
- )
-
-
+ )
+ })
}
function redirect(url) {
if (disable) return;
if (!targets.some(rx => rx.test(url.href))) return;
if (url.searchParams.has('tbm')) return;
-
if (url.hostname.includes('google') && !url.searchParams.has('q') && url.pathname != '/') return;
let randomInstance;
let path;
@@ -353,7 +335,6 @@ function switchInstance(url) {
else if (protocol == 'i2p') instancesList = [...whoogleI2pRedirectsChecks, ...whoogleI2pCustomRedirects];
}
- console.log("instancesList", instancesList);
let index = instancesList.indexOf(protocolHost);
if (index > -1) instancesList.splice(index, 1);
@@ -391,6 +372,7 @@ async function initDefaults() {
searchFrontend: 'searxng',
searchRedirects: redirects,
searxngCustomSettings: false,
+ searchProtocol: 'normal',
whoogleNormalRedirectsChecks: whoogleNormalRedirectsChecks,
whoogleNormalCustomRedirects: [],
@@ -418,46 +400,6 @@ async function initDefaults() {
searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
searxngI2pCustomRedirects: [],
-
- theme: 'DEFAULT',
- applyThemeToSites: false,
-
- searchProtocol: 'normal',
-
- searxng_category_general: true,
- searxng_category_images: false,
- searxng_category_videos: false,
- searxng_category_news: false,
- searxng_category_map: false,
- searxng_category_music: false,
- searxng_category_it: false,
- searxng_category_science: false,
- searxng_category_files: false,
- searxng_category_social_media: false,
-
- searxng_language: 'en',
- searxng_autocomplete: 'google',
- searxng_safesearch: '0',
-
- searxng_hostname_replace: false,
- searxng_oa_doi_rewrite: false,
-
- searxng_doi_resolver: 'oadoi.org',
- searxng_tokens: '',
-
- searxng_locale: 'en',
- searxng_theme: 'simple',
- searxng_simple_style: 'auto',
- searxng_results_on_new_tab: '0',
- searxng_infinite_scroll: '0',
-
- searxng_search_on_category_select: true,
- searxng_vim_hotkeys: false,
-
- searxng_method: 'POST',
- searxng_image_proxy: '1',
- searxng_query_in_title: '',
- searxng_tracker_url_remover: false,
})
})
})
@@ -469,6 +411,7 @@ async function init() {
"disableSearch",
"searchFrontend",
"searchRedirects",
+ "searchProtocol",
"whoogleNormalRedirectsChecks",
"whoogleNormalCustomRedirects",
@@ -496,20 +439,11 @@ async function init() {
"searxngI2pRedirectsChecks",
"searxngI2pCustomRedirects",
-
- "theme",
- "applyThemeToSites",
-
- "searchProtocol",
],
r => {
disable = r.disableSearch;
protocol = r.searchProtocol;
frontend = r.searchFrontend;
-
- theme = r.theme;
- applyThemeToSites = r.applyThemeToSites;
-
redirects = r.searchRedirects;
whoogleNormalRedirectsChecks = r.whoogleNormalRedirectsChecks;
@@ -543,7 +477,6 @@ async function init() {
}
export default {
-
setSearxRedirects,
setSearxngRedirects,
setWhoogleRedirects,
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
index f131f5c3..7a5db96e 100644
--- a/src/assets/javascripts/helpers/sendTargets.js
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -72,12 +72,15 @@ function switchInstance(url) {
}
function redirect(url, type, initiator) {
-
if (disable) return null;
- if (initiator && ([...redirects.send.normal, ...sendNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
- if (!targets.some(rx => rx.test(url.href))) return null;
-
if (type != "main_frame") return null;
+ if (initiator && (
+ [...redirects.send.normal,
+ ...sendNormalCustomRedirects
+ ].includes(initiator.origin) ||
+ targets.includes(initiator.host)
+ )) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
let instancesList;
if (protocol == 'normal') instancesList = [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects];
@@ -147,9 +150,9 @@ export default {
getRedirects,
setRedirects,
+ redirect,
switchInstance,
- redirect,
initDefaults,
init,
};
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index 4945f9e3..07820c26 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -40,43 +40,51 @@ let proxiTokTorCustomRedirects = [];
let disable; // disableTiktok
let protocol;
-let enableCustom;
-let theme;
-let api_legacy;
-
-function initProxiTokCookies() {
- console.log('initProxiTokCookies')
- if (enableCustom) {
- let checkedInstances;
- if (protocol == 'normal') checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
- else if (protocol == 'tor') checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]
+function initProxiTokCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "tiktokProtocol",
+ "proxiTokNormalRedirectsChecks",
+ "proxiTokNormalCustomRedirects",
+ "proxiTokTorRedirectsChecks",
+ "proxiTokTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.proxiTokNormalRedirectsChecks,
+ ...r.proxiTokNormalCustomRedirects,
+ ...r.proxiTokTorRedirectsChecks,
+ ...r.proxiTokTorCustomRedirects,
+ ].includes(protocolHost)) resolve();
- for (const instance of checkedInstances) {
- browser.cookies.set({ url: instance, name: "theme", value: theme })
- browser.cookies.set({ url: instance, name: "api-legacy", value: api_legacy ? 'on' : 'off' })
- }
- }
+ let checkedInstances;
+ if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
+ else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('proxitok', from, to, 'theme');
+ commonHelper.copyCookie('proxitok', from, to, 'api-legacy');
+ }
+ resolve(true);
+ }
+ )
+ })
}
function redirect(url, type, initiator) {
if (disable) return;
- if (initiator &&
- (
- [
- ...redirects.proxiTok.normal,
- ...proxiTokNormalCustomRedirects
- ].includes(initiator.origin) ||
- targets.includes(initiator.host)
- )
+ if (type != "main_frame") return null;
+ if (initiator && (
+ [...redirects.proxiTok.normal, ...proxiTokNormalCustomRedirects].includes(initiator.origin) ||
+ targets.includes(initiator.host)
+ )
) return;
if (!targets.some(rx => rx.test(url.href))) return;
// https://www.tiktok.com/@keysikaspol/video/7061265241887345946
// https://www.tiktok.com/@keysikaspol
-
- if (type != "main_frame") return null;
-
let instancesList;
if (protocol == 'normal') instancesList = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects];
if (protocol == 'tor') instancesList = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects];
@@ -86,16 +94,27 @@ function redirect(url, type, initiator) {
return `${randomInstance}${url.pathname}`;
}
-function reverse(url) {
- let protocolHost = commonHelper.protocolHost(url);
- if (
- ![...redirects.proxiTok.normal,
- ...redirects.proxiTok.tor,
- ...proxiTokNormalCustomRedirects,
- ...proxiTokTorCustomRedirects].includes(protocolHost)
- ) return;
+async function reverse(url) {
+ browser.storage.local.get(
+ [
+ "tiktokRedirects",
+ "proxiTokNormalCustomRedirects",
+ "proxiTokTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (
+ ![
+ ...r.tiktokRedirects.proxiTok.normal,
+ ...r.tiktokRedirects.proxiTok.tor,
+ ...r.proxiTokNormalCustomRedirects,
+ ...r.proxiTokTorCustomRedirects
+ ].includes(protocolHost)
+ ) return;
- return `https://tiktok.com${url.pathname}${url.search}`;
+ return `https://tiktok.com${url.pathname}${url.search}`;
+ }
+ )
}
async function initDefaults() {
@@ -114,12 +133,6 @@ async function initDefaults() {
proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
proxiTokTorCustomRedirects: [],
-
- enableTiktokCustomSettings: false,
-
- proxiTokTheme: 'default',
- proxiTokApiLegacy: 'off',
-
});
resolve();
});
@@ -138,11 +151,6 @@ async function init() {
"proxiTokTorRedirectsChecks",
"proxiTokTorCustomRedirects",
-
- "enableTiktokCustomSettings",
-
- "proxiTokTheme",
- "proxiTokApiLegacy",
],
r => {
disable = r.disableTiktok;
@@ -154,25 +162,19 @@ async function init() {
proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks;
proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects;
-
- enableCustom = r.enableTiktokCustomSettings;
-
- theme = r.proxiTokTheme;
- api_legacy = r.proxiTokApiLegacy;
}
)
}
export default {
-
getRedirects,
setRedirects,
+ redirect,
reverse,
initProxiTokCookies,
- redirect,
initDefaults,
init,
};
diff --git a/src/assets/javascripts/helpers/translate/lingva-preferences.js b/src/assets/javascripts/helpers/translate/lingva-preferences.js
index a9652903..eeee2415 100644
--- a/src/assets/javascripts/helpers/translate/lingva-preferences.js
+++ b/src/assets/javascripts/helpers/translate/lingva-preferences.js
@@ -3,12 +3,10 @@ window.browser = window.browser || window.chrome;
browser.storage.local.get(
[
"theme",
- "applyThemeToSites",
],
r => {
- let applyThemeToSites = r.applyThemeToSites;
let theme = r.theme;
- if (applyThemeToSites && theme != "DEFAULT") localStorage.setItem("chakra-ui-color-mode", r.theme);
+ if (theme != "DEFAULT") localStorage.setItem("chakra-ui-color-mode", r.theme);
}
) \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 7ce67433..3efaf544 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -38,11 +38,6 @@ function setSimplyTranslateRedirects(val) {
browser.storage.local.set({ simplyTranslateTorRedirectsChecks })
}
-let simplyTranslateNormalRedirectsChecks;
-let simplyTranslateTorRedirectsChecks;
-let simplyTranslateNormalCustomRedirects = [];
-let simplyTranslateTorCustomRedirects = [];
-
function setLingvaRedirects(val) {
redirects.lingva = val;
browser.storage.local.set({ translateRedirects: redirects })
@@ -62,24 +57,26 @@ function setLingvaRedirects(val) {
browser.storage.local.set({ lingvaTorRedirectsChecks })
}
-let lingvaNormalRedirectsChecks;
-let lingvaTorRedirectsChecks;
-let lingvaNormalCustomRedirects = [];
-let lingvaTorCustomRedirects = [];
+let
+ simplyTranslateNormalRedirectsChecks,
+ simplyTranslateTorRedirectsChecks,
+ simplyTranslateNormalCustomRedirects,
+ simplyTranslateTorCustomRedirects,
+ lingvaNormalRedirectsChecks,
+ lingvaTorRedirectsChecks,
+ lingvaNormalCustomRedirects,
+ lingvaTorCustomRedirects;
let
disable, // translateDisable
frontend, // translateFrontend
- protocol, // translateProtocol
- from, // translateFrom
- to, // translateTo
- simplyTranslateEngine;
+ protocol; // translateProtocol
function isTranslateRedirects(url, type, frontend) {
let protocolHost = commonHelper.protocolHost(url);
- if (type !== "main_frame") return false;
+ if (type !== "main_frame") return;
if (frontend == 'simplyTranslate')
return [
@@ -124,40 +121,33 @@ function redirect(url) {
if (disable) return;
if (!targets.some(rx => rx.test(url.href))) return;
- let params_arr = url.search.split('&');
- params_arr[0] = params_arr[0].substring(1);
- let myMap = {};
- for (let i = 0; i < params_arr.length; i++) {
- let pair = params_arr[i].split('=');
- myMap[pair[0]] = pair[1];
- }
if (frontend == 'simplyTranslate') {
let instancesList;
if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects];
if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects];
- if (instancesList.length === 0) return null;
+ if (instancesList.length === 0) return;
let randomInstance = commonHelper.getRandomInstance(instancesList)
- if (myMap.sl && myMap.tl && myMap.text)
- return `${randomInstance}/${url.search}`;
- else {
- if (from != "DEFAULT") url.searchParams.append("sl", from);
- if (to != "DEFAULT") url.searchParams.append("tl", to);
- if (simplyTranslateEngine != "DEFAULT") url.searchParams.append("engine", simplyTranslateEngine);
- return `${randomInstance}/${url.search}`
- }
+ return `${randomInstance}/${url.search}`;
}
else if (frontend == 'lingva') {
+ let params_arr = url.search.split('&');
+ params_arr[0] = params_arr[0].substring(1);
+ let myMap = {};
+ for (let i = 0; i < params_arr.length; i++) {
+ let pair = params_arr[i].split('=');
+ myMap[pair[0]] = pair[1];
+ }
let instancesList;
if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects];
if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects];
- if (instancesList.length === 0) return null;
+ if (instancesList.length === 0) return;
let randomInstance = commonHelper.getRandomInstance(instancesList)
if (myMap.sl && myMap.tl && myMap.text)
return `${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`;
- else
- return randomInstance;
+
+ return randomInstance;
}
}
@@ -190,10 +180,8 @@ function switchInstance(url) {
else if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects];
}
- console.log("instancesList", instancesList);
let index = instancesList.indexOf(protocolHost);
if (index > -1) instancesList.splice(index, 1);
-
if (instancesList.length === 0) return null;
let randomInstance = commonHelper.getRandomInstance(instancesList);
@@ -210,7 +198,7 @@ async function initDefaults() {
lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
for (const instance of r.cloudflareList) {
let i;
-
+
i = simplyTranslateNormalRedirectsChecks.indexOf(instance);
if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1);
@@ -232,10 +220,6 @@ async function initDefaults() {
lingvaNormalCustomRedirects: [],
lingvaTorRedirectsChecks: [...redirects.lingva.tor],
lingvaTorCustomRedirects: [],
-
- translateFrom: "auto",
- translateTo: 'en',
- simplyTranslateEngine: 'google',
})
})
})
@@ -258,33 +242,24 @@ async function init() {
"lingvaNormalCustomRedirects",
"lingvaTorRedirectsChecks",
"lingvaTorCustomRedirects",
-
- "translateFrom",
- "translateTo",
- "simplyTranslateEngine",
],
- result => {
- disable = result.translateDisable;
- frontend = result.translateFrontend;
- protocol = result.translateProtocol;
-
- from = result.translateFrom;
- to = result.translateTo;
- simplyTranslateEngine = result.simplyTranslateEngine;
-
- redirects = result.translateRedirects;
+ r => {
+ disable = r.translateDisable;
+ frontend = r.translateFrontend;
+ protocol = r.translateProtocol;
+ redirects = r.translateRedirects;
- simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks;
- simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects;
+ simplyTranslateNormalRedirectsChecks = r.simplyTranslateNormalRedirectsChecks;
+ simplyTranslateNormalCustomRedirects = r.simplyTranslateNormalCustomRedirects;
- simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks;
- simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects;
+ simplyTranslateTorRedirectsChecks = r.simplyTranslateTorRedirectsChecks;
+ simplyTranslateTorCustomRedirects = r.simplyTranslateTorCustomRedirects;
- lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks;
- lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects;
+ lingvaNormalRedirectsChecks = r.lingvaNormalRedirectsChecks;
+ lingvaNormalCustomRedirects = r.lingvaNormalCustomRedirects;
- lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks;
- lingvaTorCustomRedirects = result.lingvaTorCustomRedirects;
+ lingvaTorRedirectsChecks = r.lingvaTorRedirectsChecks;
+ lingvaTorCustomRedirects = r.lingvaTorCustomRedirects;
});
}
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 2a213a80..2af6a28d 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -42,56 +42,14 @@ let nitterTorRedirectsChecks;
let nitterTorCustomRedirects = [];
let disable; // disableTwitter
-let enableCustomSettings; // enableTwitterCustomSettings
-
let protocol; // twitterProtocol
-let bypassWatchOnTwitter; // bypassWatchOnTwitter
-let alwaysUsePreferred;
-
-let
- theme,
- infiniteScroll,
- stickyProfile,
- bidiSupport,
- hideTweetStats,
- hideBanner,
- hidePins,
- hideReplies,
- squareAvatars,
- mp4Playback,
- hlsPlayback,
- proxyVideos,
- muteVideos,
- autoplayGifs;
-
function redirect(url, initiator) {
- let protocolHost = commonHelper.protocolHost(url);
- let isNitter = [
- ...redirects.nitter.normal,
- ...redirects.nitter.tor
- ].includes(protocolHost);
-
- let isCheckedNitter = [
- ...nitterNormalRedirectsChecks,
- ...nitterNormalCustomRedirects,
- ...nitterTorRedirectsChecks,
- ...nitterTorCustomRedirects
- ].includes(protocolHost);
-
- if (alwaysUsePreferred && isNitter && !isCheckedNitter) return switchInstance(url);
-
- if (disable) return null;
-
- if (!targets.some(rx => rx.test(url.href))) return null;
-
- if (url.pathname.split("/").includes("home")) {
- console.log("twitter homepage");
- return null;
- }
+ if (disable) return;
+ if (!targets.some(rx => rx.test(url.href))) return;
+ if (url.pathname.split("/").includes("home")) return;
if (
- bypassWatchOnTwitter &&
initiator &&
[...redirects.nitter.normal,
...redirects.nitter.tor,
@@ -177,10 +135,9 @@ function removeXFrameOptions(e) {
}
function isNitter(url, type) {
- let protocolHost = commonHelper.protocolHost(url);
-
if (type !== "main_frame" && type !== "sub_frame") return false;
+ let protocolHost = commonHelper.protocolHost(url);
return [
...redirects.nitter.normal,
...redirects.nitter.tor,
@@ -189,73 +146,70 @@ function isNitter(url, type) {
].includes(protocolHost);
}
-function initNitterCookies() {
- if (enableCustomSettings) {
- let checkedInstances;
- if (protocol == 'normal') checkedInstances = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects]
- else if (protocol == 'tor') checkedInstances = [...nitterTorRedirectsChecks, ...nitterTorCustomRedirects]
+async function initNitterCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "twitterProtocol",
+ "nitterNormalRedirectsChecks",
+ "nitterNormalCustomRedirects",
+ "nitterTorRedirectsChecks",
+ "nitterTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.nitterNormalRedirectsChecks,
+ ...r.nitterTorRedirectsChecks,
+ ...r.nitterNormalCustomRedirects,
+ ...r.nitterTorCustomRedirects,
+ ].includes(protocolHost)) resolve();
- for (const instanceUrl of checkedInstances) {
- browser.cookies.set({ url: instanceUrl, name: "theme", value: theme })
- browser.cookies.set({ url: instanceUrl, name: "infiniteScroll", value: infiniteScroll ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "stickyProfile", value: stickyProfile ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "bidiSupport", value: bidiSupport ? 'on' : '', })
- browser.cookies.set({ url: instanceUrl, name: "hideTweetStats", value: hideTweetStats ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "hideBanner", value: hideBanner ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "hidePins", value: hidePins ? 'on' : '', })
- browser.cookies.set({ url: instanceUrl, name: "hideReplies", value: hideReplies ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "squareAvatars", value: squareAvatars ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "mp4Playback", value: mp4Playback ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "hlsPlayback", value: hlsPlayback ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "proxyVideos", value: proxyVideos ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "muteVideos", value: muteVideos ? 'on' : '' })
- browser.cookies.set({ url: instanceUrl, name: "autoplayGifs", value: autoplayGifs ? 'on' : '' })
- }
- }
-}
+ let checkedInstances;
+ if (r.twitterProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects]
+ else if (r.twitterProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('nitter', from, to, 'theme');
+ commonHelper.copyCookie('nitter', from, to, 'infiniteScroll');
+ commonHelper.copyCookie('nitter', from, to, 'stickyProfile');
+ commonHelper.copyCookie('nitter', from, to, 'bidiSupport');
+ commonHelper.copyCookie('nitter', from, to, 'hideTweetStats');
+ commonHelper.copyCookie('nitter', from, to, 'hideBanner');
+ commonHelper.copyCookie('nitter', from, to, 'hidePins');
+ commonHelper.copyCookie('nitter', from, to, 'hideReplies');
+ commonHelper.copyCookie('nitter', from, to, 'squareAvatars');
+ commonHelper.copyCookie('nitter', from, to, 'mp4Playback');
+ commonHelper.copyCookie('nitter', from, to, 'hlsPlayback');
+ commonHelper.copyCookie('nitter', from, to, 'proxyVideos');
+ commonHelper.copyCookie('nitter', from, to, 'muteVideos');
+ commonHelper.copyCookie('nitter', from, to, 'autoplayGifs');
+ }
+ resolve(true);
+ })
+ })
+}
-async function initDefaults() {
- await fetch('/instances/data.json').then(response => response.text()).then(async data => {
+function initDefaults() {
+ fetch('/instances/data.json').then(response => response.text()).then(data => {
let dataJson = JSON.parse(data);
redirects.nitter = dataJson.nitter;
- browser.storage.local.get('cloudflareList', async r => {
+ browser.storage.local.get('cloudflareList', r => {
nitterNormalRedirectsChecks = [...redirects.nitter.normal];
for (const instance of r.cloudflareList) {
let i = nitterNormalRedirectsChecks.indexOf(instance);
if (i > -1) nitterNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableTwitter: false,
-
- enableTwitterCustomSettings: false,
-
twitterRedirects: redirects,
- bypassWatchOnTwitter: true,
+ twitterProtocol: "normal",
nitterNormalRedirectsChecks: nitterNormalRedirectsChecks,
nitterNormalCustomRedirects: [],
nitterTorRedirectsChecks: [...redirects.nitter.tor],
nitterTorCustomRedirects: [],
-
- twitterProtocol: "normal",
- alwaysUsePreferred: false,
-
- nitterTheme: 'Auto',
- nitterInfiniteScroll: false,
- nitterStickyProfile: true,
- nitterBidiSupport: false,
- nitterHideTweetStats: false,
- nitterHideBanner: false,
- nitterHidePins: false,
- nitterHideReplies: false,
- nitterSquareAvatars: false,
- nitterMp4Playback: true,
- nitterHlsPlayback: false,
- nitterProxyVideos: true,
- nitterMuteVideos: false,
- nitterAutoplayGifs: true,
})
})
})
@@ -265,46 +219,18 @@ async function init() {
browser.storage.local.get(
[
"disableTwitter",
-
- "enableTwitterCustomSettings",
-
"twitterRedirects",
- "bypassWatchOnTwitter",
+ "twitterProtocol",
"nitterNormalRedirectsChecks",
"nitterNormalCustomRedirects",
"nitterTorRedirectsChecks",
"nitterTorCustomRedirects",
-
- "twitterProtocol",
- "alwaysUsePreferred",
-
- "nitterTheme",
- "nitterInfiniteScroll",
- "nitterStickyProfile",
- "nitterBidiSupport",
- "nitterHideTweetStats",
- "nitterHideBanner",
- "nitterHidePins",
- "nitterHideReplies",
- "nitterSquareAvatars",
- "nitterMp4Playback",
- "nitterHlsPlayback",
- "nitterProxyVideos",
- "nitterMuteVideos",
- "nitterAutoplayGifs",
],
r => {
disable = r.disableTwitter;
- enableCustomSettings = r.enableTwitterCustomSettings;
-
protocol = r.twitterProtocol;
-
- bypassWatchOnTwitter = r.bypassWatchOnTwitter;
-
- alwaysUsePreferred = r.alwaysUsePreferred;
-
redirects = r.twitterRedirects;
nitterNormalRedirectsChecks = r.nitterNormalRedirectsChecks;
@@ -312,21 +238,6 @@ async function init() {
nitterTorRedirectsChecks = r.nitterTorRedirectsChecks;
nitterTorCustomRedirects = r.nitterTorCustomRedirects;
-
- theme = r.nitterTheme;
- infiniteScroll = r.nitterInfiniteScroll;
- stickyProfile = r.nitterStickyProfile;
- bidiSupport = r.nitterBidiSupport;
- hideTweetStats = r.nitterHideTweetStats;
- hideBanner = r.nitterHideBanner;
- hidePins = r.nitterHidePins;
- hideReplies = r.nitterHideReplies;
- squareAvatars = r.nitterSquareAvatars;
- mp4Playback = r.nitterMp4Playback;
- hlsPlayback = r.nitterHlsPlayback;
- proxyVideos = r.nitterProxyVideos;
- muteVideos = r.nitterMuteVideos;
- autoplayGifs = r.nitterAutoplayGifs;
}
);
}
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index b11eb1d2..17c1ece1 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -12,7 +12,6 @@ let redirects = {
}
};
const getRedirects = () => redirects;
-
function setRedirects(val) {
redirects.wikiless = val;
browser.storage.local.set({ wikipediaRedirects: redirects })
@@ -39,34 +38,52 @@ function setRedirects(val) {
browser.storage.local.set({ wikilessI2pRedirectsChecks })
}
-let disable; // disableWikipedia
-let protocol; // wikipediaProtocol
-
-let wikilessNormalRedirectsChecks;
-let wikilessTorRedirectsChecks;
-let wikilessI2pRedirectsChecks;
-let wikilessNormalCustomRedirects = [];
-let wikilessTorCustomRedirects = [];
-let wikilessI2pCustomRedirects = [];
-
+let
+ disable, // disableWikipedia
+ protocol; // wikipediaProtocol
-let theme;
-let applyThemeToSites;
+let
+ wikilessNormalRedirectsChecks,
+ wikilessTorRedirectsChecks,
+ wikilessI2pRedirectsChecks,
+ wikilessNormalCustomRedirects,
+ wikilessTorCustomRedirects,
+ wikilessI2pCustomRedirects;
function initWikilessCookies() {
- let themeValue;
- if (theme == 'light') themeValue = 'white';
- if (theme == 'dark') themeValue = 'dark';
- if (applyThemeToSites && themeValue) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "wikipediaProtocol",
+ "wikilessNormalRedirectsChecks",
+ "wikilessNormalCustomRedirects",
+ "wikilessTorRedirectsChecks",
+ "wikilessTorCustomRedirects",
+ "wikilessI2pRedirectsChecks",
+ "wikilessI2pCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.wikilessNormalRedirectsChecks,
+ ...r.wikilessNormalCustomRedirects,
+ ...r.wikilessTorRedirectsChecks,
+ ...r.wikilessTorCustomRedirects,
+ ...r.wikilessI2pRedirectsChecks,
+ ...r.wikilessI2pCustomRedirects,
+ ].includes(protocolHost)) resolve();
- let checkedInstances;
- if (protocol == 'normal') checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]
- else if (protocol == 'tor') checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]
- else if (protocol == 'i2p') checkedInstances = [...wikilessI2pRedirectsChecks, ...wikilessI2pCustomRedirects]
+ let checkedInstances;
+ if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects]
+ else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
+ else if (r.wikipediaProtocol == 'i2p') checkedInstances = [...r.wikilessI2pRedirectsChecks, ...r.wikilessI2pCustomRedirects]
- for (const instanceUrl of checkedInstances)
- browser.cookies.set({ url: instanceUrl, name: "theme", value: themeValue })
- }
+ for (const to of checkedInstances)
+ commonHelper.copyCookie('wikiless', from, to, 'theme');
+ resolve(true);
+ }
+ )
+ })
}
function redirect(url) {
@@ -104,7 +121,6 @@ function redirect(url) {
link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1];
return link;
-
}
function switchInstance(url) {
@@ -126,7 +142,6 @@ function switchInstance(url) {
else if (protocol == 'tor') instancesList = [...wikilessTorCustomRedirects, ...wikilessTorRedirectsChecks];
else if (protocol == 'i2p') instancesList = [...wikilessI2pCustomRedirects, ...wikilessI2pRedirectsChecks];
- console.log("instancesList", instancesList);
let index = instancesList.indexOf(protocolHost);
if (index > -1) instancesList.splice(index, 1);
@@ -136,7 +151,6 @@ function switchInstance(url) {
return `${randomInstance}${url.pathname}${url.search}`;
}
-
async function initDefaults() {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
@@ -144,24 +158,19 @@ async function initDefaults() {
browser.storage.local.get('cloudflareList', async r => {
wikilessNormalRedirectsChecks = [...redirects.wikiless.normal];
for (const instance of r.cloudflareList) {
- let i;
-
- i = wikilessNormalRedirectsChecks.indexOf(instance);
+ let i = wikilessNormalRedirectsChecks.indexOf(instance);
if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
disableWikipedia: true,
wikipediaRedirects: redirects,
+ wikipediaProtocol: "normal",
wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks,
wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
wikilessNormalCustomRedirects: [],
wikilessTorCustomRedirects: [],
wikilessI2pCustomRedirects: [],
- wikipediaProtocol: "normal",
-
- theme: 'DEFAULT',
- applyThemeToSites: false,
})
})
})
@@ -172,20 +181,17 @@ async function init() {
[
"disableWikipedia",
"wikipediaRedirects",
+ "wikipediaProtocol",
+
"wikilessNormalRedirectsChecks",
"wikilessTorRedirectsChecks",
"wikilessI2pRedirectsChecks",
"wikilessNormalCustomRedirects",
"wikilessTorCustomRedirects",
"wikilessI2pCustomRedirects",
- "wikipediaProtocol",
-
- "theme",
- "applyThemeToSites",
-
- ], r => {
+ ],
+ r => {
disable = r.disableWikipedia;
-
protocol = r.wikipediaProtocol;
redirects = r.wikipediaRedirects;
@@ -197,9 +203,6 @@ async function init() {
wikilessI2pRedirectsChecks = r.wikilessI2pRedirectsChecks;
wikilessI2pCustomRedirects = r.wikilessI2pCustomRedirects;
-
- theme = r.theme;
- applyThemeToSites = r.applyThemeToSites;
}
);
}
diff --git a/src/assets/javascripts/helpers/youtube/get_piped_settings.js b/src/assets/javascripts/helpers/youtube/get_piped_settings.js
new file mode 100644
index 00000000..12e92baa
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/get_piped_settings.js
@@ -0,0 +1,22 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.set(
+ {
+ 'piped_bufferGoal': localStorage.getItem("bufferGoal"),
+ 'piped_comments': localStorage.getItem("comments"),
+ 'piped_disableLBRY': localStorage.getItem("disableLBRY"),
+ 'piped_enabledCodecs': localStorage.getItem("enabledCodecs"),
+ 'piped_homepage': localStorage.getItem("homepage"),
+ 'piped_listen': localStorage.getItem("listen"),
+ 'piped_minimizeDescription': localStorage.getItem("minimizeDescription"),
+ 'piped_playerAutoPlay': localStorage.getItem("playerAutoPlay"),
+ 'piped_proxyLBRY': localStorage.getItem("proxyLBRY"),
+ 'piped_quality': localStorage.getItem("quality"),
+ 'piped_region': localStorage.getItem("region"),
+ 'piped_selectedSkip': localStorage.getItem("selectedSkip"),
+ 'piped_sponsorblock': localStorage.getItem("sponsorblock"),
+ 'piped_theme': localStorage.getItem("theme"),
+ 'piped_volume': localStorage.getItem("volume"),
+ 'piped_watchHistory': localStorage.getItem("watchHistory"),
+ }
+)
diff --git a/src/assets/javascripts/helpers/youtube/invidious.js b/src/assets/javascripts/helpers/youtube/invidious.js
deleted file mode 100644
index a8e215a2..00000000
--- a/src/assets/javascripts/helpers/youtube/invidious.js
+++ /dev/null
@@ -1,133 +0,0 @@
-"use strict";
-
-window.browser = window.browser || window.chrome;
-
-async function initDefaults() {
- await browser.storage.local.set({
- youtubeListen: false,
- youtubeVolume: 100,
- youtubeAutoplay: false,
- invidiousAlwaysProxy: false,
- invidiousQuality: 'hd720',
- invidiousPlayerStyle: 'invidious',
- invidiousVideoLoop: false,
- invidiousContinueAutoplay: true,
- invidiousContinue: false,
- invidiousSpeed: '1.0',
- invidiousQualityDash: 'auto',
- invidiousComments: ['youtube', ''],
- invidiousCaptions: ['', '', ''],
- invidiousRelatedVideos: true,
- invidiousAnnotations: false,
- invidiousExtendDesc: false,
- invidiousVrMode: true,
- invidiousSavePlayerPos: false,
- invidiousRegion: 'US',
- invidiousDarkMode: '',
- invidiousThinMode: false,
- invidiousDefaultHome: 'Popular',
- invidiousFeedMenuList: ['Popular', 'Trending']
- })
-}
-
-async function initInvidiousCookies() {
- console.log('initInvidiousCookies() starting')
- await browser.storage.local.get(
- [
- "disableYoutube",
- "youtubeFrontend",
- "youtubeProtocol",
-
- "enableYoutubeCustomSettings",
-
- "invidiousNormalRedirectsChecks",
- "invidiousNormalCustomRedirects",
- "invidiousTorRedirectsChecks",
- "invidiousTorCustomRedirects",
-
- "youtubeListen",
- "youtubeVolume",
- "youtubeAutoplay",
- "invidiousQuality",
- "invidiousAlwaysProxy",
- "invidiousQuality",
- "invidiousPlayerStyle",
- "invidiousVideoLoop",
- "invidiousContinueAutoplay",
- "invidiousContinue",
- "invidiousSpeed",
- "invidiousQualityDash",
- "invidiousComments",
- "invidiousCaptions",
- "invidiousRelatedVideos",
- "invidiousAnnotations",
- "invidiousExtendDesc",
- "invidiousVrMode",
- "invidiousSavePlayerPos",
- "invidiousRegion",
- "invidiousDarkMode",
- "invidiousThinMode",
- "invidiousDefaultHome",
- "invidiousFeedMenuList",
- ],
- r => {
- if (!r.disableYoutube && r.youtubeFrontend == 'invidious' && r.enableYoutubeCustomSettings) {
- let checkedInstances;
- if (r.youtubeProtocol == 'normal')
- checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
- else if (r.youtubeProtocol == 'tor')
- checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
-
- for (const instanceUrl of checkedInstances)
- browser.cookies.get(
- { url: instanceUrl, name: "PREFS" },
- cookie => {
- let prefs = {};
- if (cookie) {
- prefs = JSON.parse(decodeURIComponent(cookie.value));
- browser.cookies.remove({ url: instanceUrl, name: "PREFS" });
- }
-
- prefs.local = r.invidiousAlwaysProxy;
- prefs.video_loop = r.invidiousVideoLoop;
- prefs.continue_autoplay = r.invidiousContinueAutoplay;
- prefs.continue = r.invidiousContinue;
- prefs.listen = r.youtubeListen;
- prefs.speed = parseFloat(r.invidiousSpeed);
- prefs.quality = r.invidiousQuality;
- prefs.quality_dash = r.invidiousQualityDash;
-
- prefs.comments = r.invidiousComments;
- prefs.captions = r.invidiousCaptions;
-
- prefs.related_videos = r.invidiousRelatedVideos;
- prefs.annotations = r.invidiousAnnotations
- prefs.extend_desc = r.invidiousExtendDesc;
- prefs.vr_mode = r.invidiousVrMode;
- prefs.save_player_pos = r.invidiousSavePlayerPos;
-
- prefs.volume = parseInt(r.youtubeVolume);
- prefs.player_style = r.invidiousPlayerStyle;
- prefs.autoplay = r.youtubeAutoplay;
-
- prefs.region = r.invidiousRegion;
- prefs.dark_mode = r.invidiousDarkMode;
- prefs.thin_mode = r.invidiousThinMode;
- prefs.default_home = r.invidiousDefaultHome;
- prefs.feed_menu = r.invidiousFeedMenuList;
-
- browser.cookies.set({
- url: instanceUrl, name: "PREFS",
- value: encodeURIComponent(JSON.stringify(prefs))
- })
- }
- )
- }
- }
- )
-}
-
-export default {
- initDefaults,
- initInvidiousCookies,
-} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/piped-preferences.js b/src/assets/javascripts/helpers/youtube/piped-preferences.js
index c6a5707a..8a1f2d0d 100644
--- a/src/assets/javascripts/helpers/youtube/piped-preferences.js
+++ b/src/assets/javascripts/helpers/youtube/piped-preferences.js
@@ -2,40 +2,39 @@ window.browser = window.browser || window.chrome;
browser.storage.local.get(
[
- "youtubeVolume",
- "youtubeAutoplay",
- "youtubeListen",
-
- "pipedBufferGoal",
- "pipedComments",
- "pipedDisableLBRY",
- "pipedEnabledCodecs",
- "pipedHomepage",
- "pipedMinimizeDescription",
- "pipedProxyLBRY",
- "pipedQuality",
- "pipedRegion",
- "pipedSelectedSkip",
- "pipedSponsorblock",
- "pipedDdlTheme",
- "pipedWatchHistory",
+ "piped_bufferGoal",
+ "piped_comments",
+ "piped_disableLBRY",
+ "piped_enabledCodecs",
+ "piped_homepage",
+ "piped_listen",
+ "piped_minimizeDescription",
+ "piped_playerAutoPlay",
+ "piped_proxyLBRY",
+ "piped_quality",
+ "piped_region",
+ "piped_selectedSkip",
+ "piped_sponsorblock",
+ "piped_theme",
+ "piped_volume",
+ "piped_watchHistory",
],
r => {
- localStorage.setItem("bufferGoal", r.pipedBufferGoal.toString());
- localStorage.setItem("comments", r.pipedComments);
- localStorage.setItem("disableLBRY", r.pipedDisableLBRY);
- localStorage.setItem("enabledCodecs", r.pipedEnabledCodecs);
- localStorage.setItem("homepage", r.pipedHomepage);
- localStorage.setItem("listen", r.youtubeListen);
- localStorage.setItem("minimizeDescription", r.pipedMinimizeDescription);
- localStorage.setItem("playerAutoPlay", r.youtubeAutoplay);
- localStorage.setItem("proxyLBRY", r.pipedProxyLBRY);
- localStorage.setItem("quality", r.pipedQuality);
- localStorage.setItem("region", r.pipedRegion);
- localStorage.setItem("selectedSkip", r.pipedSelectedSkip);
- localStorage.setItem("sponsorblock", r.pipedSponsorblock);
- localStorage.setItem("theme", r.pipedDdlTheme);
- localStorage.setItem("volume", r.youtubeVolume / 100);
- localStorage.setItem("watchHistory", r.pipedWatchHistory);
+ localStorage.setItem("bufferGoal", r.piped_bufferGoal);
+ localStorage.setItem("comments", r.piped_comments);
+ localStorage.setItem("disableLBRY", r.piped_disableLBRY);
+ localStorage.setItem("enabledCodecs", r.piped_enabledCodecs);
+ localStorage.setItem("homepage", r.piped_homepage);
+ localStorage.setItem("listen", r.piped_listen);
+ localStorage.setItem("minimizeDescription", r.piped_minimizeDescription);
+ localStorage.setItem("playerAutoPlay", r.piped_playerAutoPlay);
+ localStorage.setItem("proxyLBRY", r.piped_proxyLBRY);
+ localStorage.setItem("quality", r.piped_quality);
+ localStorage.setItem("region", r.piped_region);
+ localStorage.setItem("selectedSkip", r.piped_selectedSkip);
+ localStorage.setItem("sponsorblock", r.piped_sponsorblock);
+ localStorage.setItem("theme", r.piped_theme);
+ localStorage.setItem("volume", r.piped_volume);
+ localStorage.setItem("watchHistory", r.piped_watchHistory);
}
) \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/piped.js b/src/assets/javascripts/helpers/youtube/piped.js
index 10bec749..e1f7b0df 100644
--- a/src/assets/javascripts/helpers/youtube/piped.js
+++ b/src/assets/javascripts/helpers/youtube/piped.js
@@ -1,27 +1,76 @@
+"use strict";
+window.browser = window.browser || window.chrome;
+
+import commonHelper from '../common.js'
+
async function initDefaults() {
- await browser.storage.local.set({
- youtubeVolume: 100,
- youtubeAutoplay: false,
- youtubeListen: false,
+ await browser.storage.local.set({
+ youtubeVolume: 100,
+ youtubeAutoplay: false,
+ youtubeListen: false,
- pipedBufferGoal: 300,
- pipedComments: true,
- pipedDisableLBRY: false,
- pipedEnabledCodecs: ["av1", "vp9", "avc"],
- pipedHomepage: "trending",
- pipedMinimizeDescription: false,
- pipedProxyLBRY: false,
- pipedQuality: 0,
- pipedRegion: "US",
- pipedSelectedSkip: ["sponsor", "interaction", "selfpromo", "music_offtopic"],
- pipedSponsorblock: true,
- pipedDdlTheme: 'auto',
- pipedWatchHistory: false,
- })
+ pipedBufferGoal: 300,
+ pipedComments: true,
+ pipedDisableLBRY: false,
+ pipedEnabledCodecs: ["av1", "vp9", "avc"],
+ pipedHomepage: "trending",
+ pipedMinimizeDescription: false,
+ pipedProxyLBRY: false,
+ pipedQuality: 0,
+ pipedRegion: "US",
+ pipedSelectedSkip: ["sponsor", "interaction", "selfpromo", "music_offtopic"],
+ pipedSponsorblock: true,
+ pipedDdlTheme: 'auto',
+ pipedWatchHistory: false,
+ })
}
-function initPipedLocalStorage(tabId) {
- if (!disable && frontend == 'piped' && enableCustomSettings)
+async function copyPipedLocalStorage(url, tabId) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "pipedNormalRedirectsChecks",
+ "pipedNormalCustomRedirects",
+ "pipedTorRedirectsChecks",
+ "pipedTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.pipedNormalCustomRedirects,
+ ...r.pipedNormalRedirectsChecks,
+ ...r.pipedTorRedirectsChecks,
+ ...r.pipedTorCustomRedirects,
+ ].includes(protocolHost)) resolve();
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/get_piped_settings.js",
+ runAt: "document_start"
+ }
+ );
+ resolve(true);
+ })
+ })
+}
+
+async function initPipedLocalStorage(url, tabId) {
+ browser.storage.local.get(
+ [
+ "youtubeProtocol",
+ "pipedNormalRedirectsChecks",
+ "pipedNormalCustomRedirects",
+ "pipedTorRedirectsChecks",
+ "pipedTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.pipedNormalRedirectsChecks,
+ ...r.pipedTorRedirectsChecks,
+ ...r.pipedNormalCustomRedirects,
+ ...r.pipedTorCustomRedirects,
+ ].includes(protocolHost)) return;
browser.tabs.executeScript(
tabId,
{
@@ -29,9 +78,12 @@ function initPipedLocalStorage(tabId) {
runAt: "document_start"
}
);
- }
+ return true;
+ })
+}
export default {
- initDefaults,
- initPipedLocalStorage
+ initDefaults,
+ initPipedLocalStorage,
+ copyPipedLocalStorage,
} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 7c4ad8c8..cf6f9074 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -3,7 +3,6 @@
window.browser = window.browser || window.chrome;
import commonHelper from '../common.js'
-import invidious from './invidious.js'
import piped from './piped.js';
import pipedMaterial from './pipedMaterial.js';
@@ -62,63 +61,27 @@ let
protocol,
OnlyEmbeddedVideo,
frontend,
- youtubeEmbedFrontend,
- bypassWatchOnYoutube,
- alwaysUsePreferred;
+ youtubeEmbedFrontend;
function redirect(url, details, initiator) {
if (disable) return null;
let protocolHost = commonHelper.protocolHost(url);
- let isInvidious = [
- ...redirects.invidious.normal,
- ...redirects.invidious.tor
- ].includes(protocolHost);
-
- let isCheckedInvidious = [
- ...invidiousNormalRedirectsChecks,
- ...invidiousNormalCustomRedirects,
- ...invidiousTorRedirectsChecks,
- ...invidiousTorCustomRedirects,
- ].includes(protocolHost);
-
- let isPiped = [
- ...redirects.piped.normal,
- ...redirects.piped.tor
- ].includes(protocolHost);
-
- let isCheckedPiped = [
- ...pipedNormalRedirectsChecks,
- ...pipedNormalCustomRedirects,
- ...pipedTorRedirectsChecks,
- ...pipedTorCustomRedirects,
- ].includes(protocolHost)
-
- if (
- alwaysUsePreferred && frontend == 'invidious' &&
- (isInvidious || isPiped) && !isCheckedInvidious
- ) return switchInstance(url);
-
- if (
- alwaysUsePreferred && frontend == 'piped' &&
- (isInvidious || isPiped) && !isCheckedPiped
- ) return switchInstance(url);
-
if (!targets.some(rx => rx.test(url.href))) return null;
if (
- bypassWatchOnYoutube &&
initiator && (
- [...redirects.invidious.normal,
- ...invidiousNormalCustomRedirects,
- ...redirects.invidious.tor,
- ...invidiousTorCustomRedirects,
+ [
+ ...redirects.invidious.normal,
+ ...invidiousNormalCustomRedirects,
+ ...redirects.invidious.tor,
+ ...invidiousTorCustomRedirects,
- ...redirects.piped.normal,
- ...redirects.piped.tor,
- ...pipedNormalCustomRedirects,
- ...pipedTorCustomRedirects
+ ...redirects.piped.normal,
+ ...redirects.piped.tor,
+ ...pipedNormalCustomRedirects,
+ ...pipedTorCustomRedirects
].includes(initiator.origin)
)
) return 'BYPASSTAB';
@@ -192,19 +155,32 @@ function redirect(url, details, initiator) {
}
function reverse(url) {
- let protocolHost = commonHelper.protocolHost(url);
- if (![
- ...redirects.invidious.normal,
- ...redirects.invidious.tor,
- ...invidiousNormalCustomRedirects,
- ...invidiousTorCustomRedirects,
- ...redirects.piped.normal,
- ...redirects.piped.tor,
- ...pipedNormalCustomRedirects,
- ...pipedTorCustomRedirects,
- ].includes(protocolHost)) return;
+ browser.storage.local.get(
+ [
+ "youtubeRedirects",
+ "invidiousNormalCustomRedirects",
+ "invidiousTorCustomRedirects",
+ "pipedNormalCustomRedirects",
+ "pipedTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.youtubeRedirects.invidious.normal,
+ ...r.youtubeRedirects.invidious.tor,
+
+ ...r.youtubeRedirects.piped.normal,
+ ...r.youtubeRedirects.piped.tor,
+
+ ...r.invidiousNormalCustomRedirects,
+ ...r.invidiousTorCustomRedirects,
- return `https://youtube.com${url.pathname}${url.search}`;
+ ...r.pipedNormalCustomRedirects,
+ ...r.pipedTorCustomRedirects,
+ ].includes(protocolHost)) return;
+
+ return `https://youtube.com${url.pathname}${url.search}`;
+ })
}
function switchInstance(url) {
@@ -351,13 +327,10 @@ async function initDefaults() {
pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
pipedMaterialTorCustomRedirects: [],
- alwaysUsePreferred: false,
youtubeEmbedFrontend: 'invidious',
youtubeProtocol: 'normal',
- bypassWatchOnYoutube: true,
})
- await invidious.initDefaults();
await piped.initDefaults();
await pipedMaterial.initDefaults();
resolve();
@@ -394,10 +367,8 @@ async function init() {
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
- "alwaysUsePreferred",
"youtubeEmbedFrontend",
"youtubeProtocol",
- "bypassWatchOnYoutube",
],
r => {
redirects = r.youtubeRedirects;
@@ -426,18 +397,46 @@ async function init() {
youtubeEmbedFrontend = r.youtubeEmbedFrontend;
OnlyEmbeddedVideo = r.OnlyEmbeddedVideo;
- alwaysUsePreferred = r.alwaysUsePreferred;
- bypassWatchOnYoutube = r.bypassWatchOnYoutube;
resolve();
});
})
}
+async function initInvidiousCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "youtubeProtocol",
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.invidiousNormalRedirectsChecks,
+ ...r.invidiousTorRedirectsChecks,
+ ...r.invidiousNormalCustomRedirects,
+ ...r.invidiousTorCustomRedirects,
+ ].includes(protocolHost)) resolve();
+ let checkedInstances;
+ if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
+ else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
+ for (const to of checkedInstances)
+ commonHelper.copyCookie('invidious', from, to, 'PREFS');
+ resolve(true);
+ }
+ )
+ }
+ )
+}
+
let
initPipedLocalStorage = piped.initPipedLocalStorage,
initPipedMaterialLocalStorage = pipedMaterial.initPipedMaterialLocalStorage,
- initInvidiousCookies = invidious.initInvidiousCookies;
+ copyPipedLocalStorage = piped.copyPipedLocalStorage;
export default {
initPipedLocalStorage,
@@ -452,6 +451,8 @@ export default {
isPipedorInvidious,
+ copyPipedLocalStorage,
+
initDefaults,
init,
diff --git a/src/assets/javascripts/helpers/youtubeMusic.js b/src/assets/javascripts/helpers/youtubeMusic.js
index 0b06bfa3..98549147 100644
--- a/src/assets/javascripts/helpers/youtubeMusic.js
+++ b/src/assets/javascripts/helpers/youtubeMusic.js
@@ -28,7 +28,6 @@ function isYoutubeMusic(url, initiator) {
}
function redirect(url, type) {
-
// Video
// https://music.youtube.com/watch?v=_PkGiKBW-DA&list=RDAMVM_PkGiKBW-DA
// https://beatbump.ml/listen?id=_PkGiKBW-DA&list=RDAMVM_PkGiKBW-DA
@@ -69,7 +68,6 @@ function redirect(url, type) {
async function initDefaults() {
await browser.storage.local.set({
disableYoutubeMusic: true,
-
youtubeMusicRedirects: redirects,
beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],