aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-19 19:21:39 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-19 19:21:39 +0300
commit4498e790f67bf44bcf3ff61bd59cc91062532a39 (patch)
tree9a2178c49af80800723c8ebac2fef9f9b67b097e
parentFixed Import Tool not working #242 (diff)
downloadlibredirect-4498e790f67bf44bcf3ff61bd59cc91062532a39.zip
Supported all frontend preferences #234
-rw-r--r--src/_locales/en/messages.json5
-rw-r--r--src/assets/javascripts/helpers/common.js2
-rw-r--r--src/assets/javascripts/helpers/instagram.js89
-rw-r--r--src/assets/javascripts/helpers/reddit.js88
-rw-r--r--src/assets/javascripts/helpers/search.js88
-rw-r--r--src/assets/javascripts/helpers/tiktok.js24
-rw-r--r--src/assets/javascripts/helpers/translate/get_lingva_preferences.js10
-rw-r--r--src/assets/javascripts/helpers/translate/lingva-preferences.js12
-rw-r--r--src/assets/javascripts/helpers/translate/set_lingva_preferences.js16
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js133
-rw-r--r--src/assets/javascripts/helpers/twitter.js50
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js30
-rw-r--r--src/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js7
-rw-r--r--src/assets/javascripts/helpers/youtube/get_piped_preferences.js (renamed from src/assets/javascripts/helpers/youtube/get_piped_settings.js)0
-rw-r--r--src/assets/javascripts/helpers/youtube/piped-preferences.js40
-rw-r--r--src/assets/javascripts/helpers/youtube/piped.js89
-rw-r--r--src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js37
-rw-r--r--src/assets/javascripts/helpers/youtube/pipedMaterial.js31
-rw-r--r--src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js8
-rw-r--r--src/assets/javascripts/helpers/youtube/set_piped_preferences.js40
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js163
-rw-r--r--src/pages/background/background.js94
-rw-r--r--src/pages/options/youtube/youtube.js2
-rw-r--r--src/pages/popup/popup.html5
-rw-r--r--src/pages/popup/popup.js17
-rw-r--r--src/pages/popup/popup.pug6
26 files changed, 697 insertions, 389 deletions
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index 3507eb3a..23a36eef 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -129,11 +129,6 @@
"description": "used in general.html"
},
- "applyTheme": {
- "message": "Apply theme to sites",
- "description": "used in general.html"
- },
-
"alwaysPref": {
"message": "Always use Preferred Instances",
"description": "used in general.html"
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 5adee5c8..5982fa03 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -331,7 +331,7 @@ function getCookiesFromStorage(frontend, to, name) {
browser.storage.local.get(
key,
r => {
- if (r) browser.cookies.set({ url: to, name: name, value: r[key] })
+ if (r[key] !== undefined) browser.cookies.set({ url: to, name: name, value: r[key] })
}
)
}
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index effbe46c..3d4af089 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -29,24 +29,6 @@ let bibliogramTorRedirectsChecks;
let bibliogramNormalCustomRedirects = [];
let bibliogramTorCustomRedirects = [];
-const reservedPaths = [
- "u",
- "p",
- "privacy",
-];
-
-const bypassPaths = [
- /about/,
- /explore/,
- /support/,
- /press/,
- /api/,
- /privacy/,
- /safety/,
- /admin/,
- /\/(accounts\/|embeds?.js)/
-];
-
let disable; //disableInstagram
let protocol; //instagramProtocol
@@ -68,6 +50,18 @@ function redirect(url, type, initiator) {
"media",
].includes(type)) return null;
+ const bypassPaths = [
+ /about/,
+ /explore/,
+ /support/,
+ /press/,
+ /api/,
+ /privacy/,
+ /safety/,
+ /admin/,
+ /\/(accounts\/|embeds?.js)/
+ ];
+
if (bypassPaths.some(rx => rx.test(url.pathname))) return;
let instancesList;
@@ -76,6 +70,12 @@ function redirect(url, type, initiator) {
if (instancesList.length === 0) return null;
let randomInstance = commonHelper.getRandomInstance(instancesList)
+ const reservedPaths = [
+ "u",
+ "p",
+ "privacy",
+ ];
+
if (url.pathname === "/" || reservedPaths.includes(url.pathname.split("/")[1]))
return `${randomInstance}${url.pathname}${url.search}`;
if (url.pathname.startsWith("/reel") || url.pathname.startsWith("/tv"))
@@ -139,44 +139,6 @@ function switchInstance(url) {
return `${randomInstance}${url.pathname}${url.search}`;
}
-function isBibliogram(url) {
- let protocolHost = commonHelper.protocolHost(url);
- return [
- ...redirects.bibliogram.normal,
- ...redirects.bibliogram.tor,
- ...bibliogramNormalCustomRedirects,
- ...bibliogramTorCustomRedirects,
- ].includes(protocolHost);
-}
-
-let instancesCookies;
-let theme;
-function initBibliogramCookies(url) {
- let protocolHost = commonHelper.protocolHost(url);
- browser.cookies.get(
- { url: protocolHost, name: "settings" },
- cookie => {
- if (!cookie || !instancesCookies.includes(protocolHost)) {
- console.log(`initing cookie for ${protocolHost}`);
- let request = new XMLHttpRequest();
- request.open("POST", `${protocolHost}/settings/return?referrer=%2F`);
-
- 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 })
- }
- }
- })
-
-}
-
-
function initDefaults() {
return new Promise(resolve => {
fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -192,10 +154,6 @@ function initDefaults() {
disableInstagram: false,
instagramRedirects: redirects,
- theme: 'DEFAULT',
-
- instancesCookies: [],
-
bibliogramNormalRedirectsChecks: bibliogramNormalRedirectsChecks,
bibliogramTorRedirectsChecks: [],
@@ -217,10 +175,6 @@ async function init() {
"disableInstagram",
"instagramRedirects",
- "theme",
-
- "instancesCookies",
-
"bibliogramNormalRedirectsChecks",
"bibliogramTorRedirectsChecks",
@@ -232,10 +186,6 @@ async function init() {
disable = r.disableInstagram;
if (r.instagramRedirects) redirects = r.instagramRedirects
- theme = r.theme;
-
- instancesCookies = r.instancesCookies;
-
bibliogramNormalRedirectsChecks = r.bibliogramNormalRedirectsChecks;
bibliogramNormalCustomRedirects = r.bibliogramNormalCustomRedirects;
@@ -256,9 +206,6 @@ export default {
reverse,
- isBibliogram,
- initBibliogramCookies,
-
redirect,
init,
initDefaults,
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index bbcaf872..def751a1 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -114,6 +114,38 @@ function initLibredditCookies(from) {
}
+function setLibredditCookies() {
+ browser.storage.local.get(
+ [
+ "redditProtocol",
+ "disableReddit",
+ "redditFrontend",
+ "libredditNormalRedirectsChecks",
+ "libredditNormalCustomRedirects",
+ "libredditTorRedirectsChecks",
+ "libredditTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableReddit || r.redditFrontend != 'libreddit' || r.redditProtocol === undefined) return;
+ 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.getCookiesFromStorage('libreddit', to, "theme");
+ commonHelper.getCookiesFromStorage('libreddit', to, "front_page");
+ commonHelper.getCookiesFromStorage('libreddit', to, "layout");
+ commonHelper.getCookiesFromStorage('libreddit', to, "wide");
+ commonHelper.getCookiesFromStorage('libreddit', to, "post_sort");
+ commonHelper.getCookiesFromStorage('libreddit', to, "comment_sort");
+ commonHelper.getCookiesFromStorage('libreddit', to, "show_nsfw");
+ commonHelper.getCookiesFromStorage('libreddit', to, "autoplay_videos");
+ commonHelper.getCookiesFromStorage('libreddit', to, "use_hls");
+ commonHelper.getCookiesFromStorage('libreddit', to, "hide_hls_notification");
+ }
+ }
+ )
+}
+
function initTedditCookies(from) {
return new Promise(resolve => {
browser.storage.local.get(
@@ -156,6 +188,40 @@ function initTedditCookies(from) {
})
}
+function setTedditCookies() {
+ browser.storage.local.get(
+ [
+ "redditProtocol",
+ "disableReddit",
+ "redditFrontend",
+ "tedditNormalRedirectsChecks",
+ "tedditNormalCustomRedirects",
+ "tedditTorRedirectsChecks",
+ "tedditTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableReddit || r.redditFrontend != 'teddit' || r.redditProtocol === undefined) return;
+ 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.getCookiesFromStorage('teddit', to, 'collapse_child_comments')
+ commonHelper.getCookiesFromStorage('teddit', to, 'domain_instagram')
+ commonHelper.getCookiesFromStorage('teddit', to, 'domain_twitter')
+ commonHelper.getCookiesFromStorage('teddit', to, 'domain_youtube')
+ commonHelper.getCookiesFromStorage('teddit', to, 'flairs')
+ commonHelper.getCookiesFromStorage('teddit', to, 'highlight_controversial')
+ commonHelper.getCookiesFromStorage('teddit', to, 'nsfw_enabled')
+ commonHelper.getCookiesFromStorage('teddit', to, 'post_media_max_height')
+ commonHelper.getCookiesFromStorage('teddit', to, 'show_upvoted_percentage')
+ commonHelper.getCookiesFromStorage('teddit', to, 'show_upvotes')
+ commonHelper.getCookiesFromStorage('teddit', to, 'theme')
+ commonHelper.getCookiesFromStorage('teddit', to, 'videos_muted')
+ }
+ }
+ )
+}
+
function redirect(url, type, initiator) {
// https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4
// https://libreddit.exonip.de/img/4v3t1vgvrzk81.png
@@ -200,12 +266,12 @@ function redirect(url, type, initiator) {
if (frontend == 'teddit') {
if (tedditInstancesList.length === 0) return null;
let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList);
- return `${tedditRandomInstance}/pics/w:null_${url.pathname.substring(1)}${url.search}`;
+ return `${tedditRandomInstance}/pics/w:null_${url.pathname.substring(1)}${url.reddit}`;
}
if (frontend == 'libreddit') {
if (libredditInstancesList.length === 0) return null;
let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList);
- return `${libredditRandomInstance}/img${url.pathname}${url.search}`;
+ return `${libredditRandomInstance}/img${url.pathname}${url.reddit}`;
}
}
else if (url.host === "redd.it") {
@@ -213,13 +279,13 @@ function redirect(url, type, initiator) {
if (libredditInstancesList.length === 0) return null;
let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList);
// https://redd.it/foo => https://libredd.it/comments/foo
- return `${libredditRandomInstance}/comments${url.pathname}${url.search}`;
+ return `${libredditRandomInstance}/comments${url.pathname}${url.reddit}`;
}
if (frontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) {
if (tedditInstancesList.length === 0) return null;
let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList);
// https://redd.it/foo => https://teddit.net/comments/foo
- return `${tedditRandomInstance}/comments${url.pathname}${url.search}`;
+ return `${tedditRandomInstance}/comments${url.pathname}${url.reddit}`;
}
}
else if (url.host === 'preview.redd.it') {
@@ -229,19 +295,19 @@ function redirect(url, type, initiator) {
if (frontend == 'libreddit') {
if (libredditInstancesList.length === 0) return null;
let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList);
- return `${libredditRandomInstance}/preview/pre${url.pathname}${url.search}`;
+ return `${libredditRandomInstance}/preview/pre${url.pathname}${url.reddit}`;
}
}
if (frontend == 'libreddit') {
if (libredditInstancesList.length === 0) return null;
let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList);
- return `${libredditRandomInstance}${url.pathname}${url.search}`;
+ return `${libredditRandomInstance}${url.pathname}${url.reddit}`;
}
if (frontend == 'teddit') {
if (tedditInstancesList.length === 0) return null;
let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList);
- return `${tedditRandomInstance}${url.pathname}${url.search}`;
+ return `${tedditRandomInstance}${url.pathname}${url.reddit}`;
}
}
@@ -254,7 +320,7 @@ function reverse(url) {
...nitterTorCustomRedirects].includes(protocolHost)
) return;
if (url.pathname.includes('/pics/w:null_'))
- return `https://reddit.com${url.pathname}${url.search}`;
+ return `https://reddit.com${url.pathname}${url.reddit}`;
}
async function switchInstance(url) {
@@ -319,7 +385,7 @@ async function switchInstance(url) {
let randomInstance = commonHelper.getRandomInstance(instancesList);
- resolve(`${randomInstance}${url.pathname}${url.search}`)
+ resolve(`${randomInstance}${url.pathname}${url.reddit}`)
}
)
})
@@ -412,9 +478,9 @@ export default {
setLibredditRedirects,
initLibredditCookies,
+ setLibredditCookies,
initTedditCookies,
-
- initLibredditCookies,
+ setTedditCookies,
redirect,
init,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 730f3938..4e8441c6 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -147,7 +147,8 @@ function initSearxCookies(from) {
...r.searxTorCustomRedirects,
...r.searxI2pRedirectsChecks,
...r.searxI2pCustomRedirects,
- ].includes(protocolHost)) resolve();
+ ].includes(protocolHost)) return;
+
let checkedInstances;
if (protocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects];
@@ -178,6 +179,45 @@ function initSearxCookies(from) {
})
}
+function setSearxCookies() {
+ browser.storage.local.get(
+ [
+ "disableSearch",
+ "searchProtocol",
+ "searchFrontend",
+ "searxNormalRedirectsChecks",
+ "searxNormalCustomRedirects",
+ "searxTorRedirectsChecks",
+ "searxTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableSearch || r.searchFrontend != 'searx', r.searchProtocol === undefined) return;
+ let checkedInstances;
+ if (r.searchProtocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects]
+ else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.getCookiesFromStorage('searx', to, 'advanced_search');
+ commonHelper.getCookiesFromStorage('searx', to, 'autocomplete');
+ commonHelper.getCookiesFromStorage('searx', to, 'categories');
+ commonHelper.getCookiesFromStorage('searx', to, 'disabled_engines');
+ commonHelper.getCookiesFromStorage('searx', to, 'disabled_plugins');
+ commonHelper.getCookiesFromStorage('searx', to, 'doi_resolver');
+ commonHelper.getCookiesFromStorage('searx', to, 'enabled_engines');
+ commonHelper.getCookiesFromStorage('searx', to, 'enabled_plugins');
+ commonHelper.getCookiesFromStorage('searx', to, 'image_proxy');
+ commonHelper.getCookiesFromStorage('searx', to, 'language');
+ commonHelper.getCookiesFromStorage('searx', to, 'locale');
+ commonHelper.getCookiesFromStorage('searx', to, 'method');
+ commonHelper.getCookiesFromStorage('searx', to, 'oscar-style');
+ commonHelper.getCookiesFromStorage('searx', to, 'results_on_new_tab');
+ commonHelper.getCookiesFromStorage('searx', to, 'safesearch');
+ commonHelper.getCookiesFromStorage('searx', to, 'theme');
+ commonHelper.getCookiesFromStorage('searx', to, 'tokens');
+ }
+ }
+ )
+}
+
function initSearxngCookies(from) {
return new Promise(resolve => {
browser.storage.local.get(
@@ -199,7 +239,7 @@ function initSearxngCookies(from) {
...r.searxngTorCustomRedirects,
...r.searxngI2pRedirectsChecks,
...r.searxngI2pCustomRedirects,
- ].includes(protocolHost)) resolve();
+ ].includes(protocolHost)) return;
let checkedInstances;
if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects];
@@ -232,6 +272,47 @@ function initSearxngCookies(from) {
})
}
+function setSearxngCookies() {
+ browser.storage.local.get(
+ [
+ "searchProtocol",
+ "disableSearch",
+ "searchFrontend",
+ "searxngNormalRedirectsChecks",
+ "searxngNormalCustomRedirects",
+ "searxngTorRedirectsChecks",
+ "searxngTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableSearch || r.searchFrontend != 'searxng', r.searchProtocol === undefined) return;
+ let checkedInstances;
+ if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects]
+ else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.getCookiesFromStorage('searxng', to, 'autocomplete');
+ commonHelper.getCookiesFromStorage('searxng', to, 'categories');
+ commonHelper.getCookiesFromStorage('searxng', to, 'disabled_engines');
+ commonHelper.getCookiesFromStorage('searxng', to, 'disabled_plugins');
+ commonHelper.getCookiesFromStorage('searxng', to, 'doi_resolver');
+ commonHelper.getCookiesFromStorage('searxng', to, 'enabled_plugins');
+ commonHelper.getCookiesFromStorage('searxng', to, 'enabled_engines');
+ commonHelper.getCookiesFromStorage('searxng', to, 'image_proxy');
+ commonHelper.getCookiesFromStorage('searxng', to, 'infinite_scroll');
+ commonHelper.getCookiesFromStorage('searxng', to, 'language');
+ commonHelper.getCookiesFromStorage('searxng', to, 'locale');
+ commonHelper.getCookiesFromStorage('searxng', to, 'maintab');
+ commonHelper.getCookiesFromStorage('searxng', to, 'method');
+ commonHelper.getCookiesFromStorage('searxng', to, 'query_in_title');
+ commonHelper.getCookiesFromStorage('searxng', to, 'results_on_new_tab');
+ commonHelper.getCookiesFromStorage('searxng', to, 'safesearch');
+ commonHelper.getCookiesFromStorage('searxng', to, 'simple_style');
+ commonHelper.getCookiesFromStorage('searxng', to, 'theme');
+ commonHelper.getCookiesFromStorage('searxng', to, 'tokens');
+ }
+ }
+ )
+}
+
function redirect(url) {
if (disable) return;
if (!targets.some(rx => rx.test(url.href))) return;
@@ -482,7 +563,10 @@ export default {
setWhoogleRedirects,
initSearxCookies,
+ setSearxCookies,
+
initSearxngCookies,
+ setSearxngCookies,
redirect,
initDefaults,
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index 07820c26..501390dc 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -73,6 +73,29 @@ function initProxiTokCookies(from) {
})
}
+function setProxiTokCookies() {
+ browser.storage.local.get(
+ [
+ "tiktokProtocol",
+ "disableTiktok",
+ "proxiTokNormalRedirectsChecks",
+ "proxiTokNormalCustomRedirects",
+ "proxiTokTorRedirectsChecks",
+ "proxiTokTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableTiktok || r.tiktokProtocol === undefined) return;
+ let checkedInstances;
+ if (r.youtubeProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
+ else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.getCookiesFromStorage('proxitok', from, to, 'theme');
+ commonHelper.getCookiesFromStorage('proxitok', from, to, 'api-legacy');
+ }
+ }
+ )
+}
+
function redirect(url, type, initiator) {
if (disable) return;
if (type != "main_frame") return null;
@@ -174,6 +197,7 @@ export default {
reverse,
initProxiTokCookies,
+ setProxiTokCookies,
initDefaults,
init,
diff --git a/src/assets/javascripts/helpers/translate/get_lingva_preferences.js b/src/assets/javascripts/helpers/translate/get_lingva_preferences.js
new file mode 100644
index 00000000..f04ea3dc
--- /dev/null
+++ b/src/assets/javascripts/helpers/translate/get_lingva_preferences.js
@@ -0,0 +1,10 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.set(
+ {
+ ['lingva_lingva_chakra-ui-color-mode']: localStorage.getItem('chakra-ui-color-mode'),
+ lingva_lingva_isauto: localStorage.getItem('isauto'),
+ lingva_lingva_source: localStorage.getItem('source'),
+ lingva_lingva_target: localStorage.getItem('target'),
+ }
+)
diff --git a/src/assets/javascripts/helpers/translate/lingva-preferences.js b/src/assets/javascripts/helpers/translate/lingva-preferences.js
deleted file mode 100644
index eeee2415..00000000
--- a/src/assets/javascripts/helpers/translate/lingva-preferences.js
+++ /dev/null
@@ -1,12 +0,0 @@
-window.browser = window.browser || window.chrome;
-
-browser.storage.local.get(
- [
- "theme",
- ],
- r => {
- let theme = 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/set_lingva_preferences.js b/src/assets/javascripts/helpers/translate/set_lingva_preferences.js
new file mode 100644
index 00000000..7380fa37
--- /dev/null
+++ b/src/assets/javascripts/helpers/translate/set_lingva_preferences.js
@@ -0,0 +1,16 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.get(
+ [
+ "lingva_chakra-ui-color-mode",
+ "lingva_isauto",
+ "lingva_source",
+ "lingva_target",
+ ],
+ r => {
+ if (r['lingva_chakra-ui-color-mode'] !== undefined) localStorage.setItem('chakra-ui-color-mode', r['lingva_chakra-ui-color-mode']);
+ if (r.lingva_isauto !== undefined) localStorage.setItem('isauto', r.lingva_isauto);
+ if (r.lingva_source !== undefined) localStorage.setItem('source', r.lingva_source);
+ if (r.lingva_target !== undefined) localStorage.setItem('target', r.lingva_target);
+ }
+)
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 3efaf544..3ca4dd9b 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -67,7 +67,6 @@ let
lingvaNormalCustomRedirects,
lingvaTorCustomRedirects;
-
let
disable, // translateDisable
frontend, // translateFrontend
@@ -107,14 +106,129 @@ function isTranslateRedirects(url, type, frontend) {
].includes(protocolHost);
}
-function initLingvaLocalStorage(tabId) {
- browser.tabs.executeScript(
- tabId,
- {
- file: "/assets/javascripts/helpers/translate/lingva-preferences.js",
- runAt: "document_start"
+function initLingvaLocalStorage(url, tabId) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "lingvaNormalRedirectsChecks",
+ "lingvaNormalCustomRedirects",
+ "lingvaTorRedirectsChecks",
+ "lingvaTorCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.lingvaNormalRedirectsChecks,
+ ...r.lingvaTorRedirectsChecks,
+ ...r.lingvaNormalCustomRedirects,
+ ...r.lingvaTorCustomRedirects,
+ ].includes(protocolHost)) return;
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
+ runAt: "document_start"
+ }
+ );
+ resolve(true);
+ }
+ )
+ })
+}
+
+async function setLingvaLocalStorage(url, tabId) {
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "youtubeFrontend",
+ "lingvaNormalRedirectsChecks",
+ "lingvaNormalCustomRedirects",
+ "lingvaTorRedirectsChecks",
+ "lingvaTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableYoutube || r.youtubeFrontend != 'lingva') return;
+ let protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.lingvaNormalRedirectsChecks,
+ ...r.lingvaTorRedirectsChecks,
+ ...r.lingvaNormalCustomRedirects,
+ ...r.lingvaTorCustomRedirects,
+ ].includes(protocolHost)) return;
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/set_lingva_preferences.js",
+ runAt: "document_start"
+ }
+ );
+ return true;
+ })
+}
+
+function initSimplyTranslateCookies(from) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "translateProtocol",
+ "simplyTranslateNormalRedirectsChecks",
+ "simplyTranslateNormalCustomRedirects",
+ "simplyTranslateTorRedirectsChecks",
+ "simplyTranslateTorCustomRedirects",
+ "simplyTranslateI2pRedirectsChecks",
+ "simplyTranslateI2pCustomRedirects",
+ ],
+ r => {
+ let protocolHost = commonHelper.protocolHost(from);
+ if (![
+ ...r.simplyTranslateNormalRedirectsChecks,
+ ...r.simplyTranslateNormalCustomRedirects,
+ ...r.simplyTranslateTorRedirectsChecks,
+ ...r.simplyTranslateTorCustomRedirects,
+ ...r.simplyTranslateI2pRedirectsChecks,
+ ...r.simplyTranslateI2pCustomRedirects,
+ ].includes(protocolHost)) resolve();
+
+ let checkedInstances;
+ if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
+ else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
+ else if (r.translateProtocol == 'i2p') checkedInstances = [...r.simplyTranslateI2pRedirectsChecks, ...r.simplyTranslateI2pCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.copyCookie('simplyTranslate', from, to, 'from_lang');
+ commonHelper.copyCookie('simplyTranslate', from, to, 'to_lang');
+ commonHelper.copyCookie('simplyTranslate', from, to, 'tts_enabled');
+ commonHelper.copyCookie('simplyTranslate', from, to, 'use_text_fields');
+ }
+ resolve(true);
+ }
+ )
+ })
+}
+
+function setSimplyTranslateCookies() {
+ browser.storage.local.get(
+ [
+ "translateProtocol",
+ "translateDisable",
+ "translateFrontend",
+ "simplyTranslateNormalRedirectsChecks",
+ "simplyTranslateNormalCustomRedirects",
+ "simplyTranslateTorRedirectsChecks",
+ "simplyTranslateTorCustomRedirects",
+ ],
+ r => {
+ if (r.translateDisable || r.translateFrontend != 'simplyTranslate' || r.translateProtocol === undefined) return;
+ let checkedInstances;
+ if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
+ else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.getCookiesFromStorage('simplyTranslate', to, 'from_lang');
+ commonHelper.getCookiesFromStorage('simplyTranslate', to, 'to_lang');
+ commonHelper.getCookiesFromStorage('simplyTranslate', to, 'tts_enabled');
+ commonHelper.getCookiesFromStorage('simplyTranslate', to, 'use_text_fields');
+ }
}
- );
+ )
}
function redirect(url) {
@@ -267,7 +381,10 @@ export default {
getRedirects,
isTranslateRedirects,
+ initSimplyTranslateCookies,
+ setSimplyTranslateCookies,
initLingvaLocalStorage,
+ setLingvaLocalStorage,
setSimplyTranslateRedirects,
setLingvaRedirects,
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 2af6a28d..b2469d7c 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -134,18 +134,6 @@ function removeXFrameOptions(e) {
if (isChanged) return { responseHeaders: e.responseHeaders };
}
-function isNitter(url, type) {
- if (type !== "main_frame" && type !== "sub_frame") return false;
-
- let protocolHost = commonHelper.protocolHost(url);
- return [
- ...redirects.nitter.normal,
- ...redirects.nitter.tor,
- ...nitterNormalCustomRedirects,
- ...nitterTorCustomRedirects,
- ].includes(protocolHost);
-}
-
async function initNitterCookies(from) {
return new Promise(resolve => {
browser.storage.local.get(
@@ -190,6 +178,42 @@ async function initNitterCookies(from) {
})
}
+function setNitterCookies() {
+ browser.storage.local.get(
+ [
+ "twitterProtocol",
+ "disableTwitter",
+ "youtubeFrontend",
+ "nitterNormalRedirectsChecks",
+ "nitterNormalCustomRedirects",
+ "nitterTorRedirectsChecks",
+ "nitterTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableYoutube || r.youtubeFrontend != 'nitter' || r.twitterProtocol === undefined) return;
+ let checkedInstances;
+ if (r.youtubeProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects]
+ else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.getCookiesFromStorage('nitter', to, 'theme');
+ commonHelper.getCookiesFromStorage('nitter', to, 'infiniteScroll');
+ commonHelper.getCookiesFromStorage('nitter', to, 'stickyProfile');
+ commonHelper.getCookiesFromStorage('nitter', to, 'bidiSupport');
+ commonHelper.getCookiesFromStorage('nitter', to, 'hideTweetStats');
+ commonHelper.getCookiesFromStorage('nitter', to, 'hideBanner');
+ commonHelper.getCookiesFromStorage('nitter', to, 'hidePins');
+ commonHelper.getCookiesFromStorage('nitter', to, 'hideReplies');
+ commonHelper.getCookiesFromStorage('nitter', to, 'squareAvatars');
+ commonHelper.getCookiesFromStorage('nitter', to, 'mp4Playback');
+ commonHelper.getCookiesFromStorage('nitter', to, 'hlsPlayback');
+ commonHelper.getCookiesFromStorage('nitter', to, 'proxyVideos');
+ commonHelper.getCookiesFromStorage('nitter', to, 'muteVideos');
+ commonHelper.getCookiesFromStorage('nitter', to, 'autoplayGifs');
+ }
+ }
+ )
+}
+
function initDefaults() {
fetch('/instances/data.json').then(response => response.text()).then(data => {
let dataJson = JSON.parse(data);
@@ -248,8 +272,8 @@ export default {
reverse,
removeXFrameOptions,
- isNitter,
initNitterCookies,
+ setNitterCookies,
redirect,
initDefaults,
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 17c1ece1..a8acb097 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -50,7 +50,7 @@ let
wikilessTorCustomRedirects,
wikilessI2pCustomRedirects;
-function initWikilessCookies() {
+function initWikilessCookies(from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@@ -78,14 +78,39 @@ function initWikilessCookies() {
else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
else if (r.wikipediaProtocol == 'i2p') checkedInstances = [...r.wikilessI2pRedirectsChecks, ...r.wikilessI2pCustomRedirects]
- for (const to of checkedInstances)
+ for (const to of checkedInstances) {
commonHelper.copyCookie('wikiless', from, to, 'theme');
+ commonHelper.copyCookie('wikiless', from, to, 'default_lang');
+ }
resolve(true);
}
)
})
}
+function setWikilessCookies() {
+ browser.storage.local.get(
+ [
+ "disableWikipedia",
+ "wikipediaProtocol",
+ "wikilessNormalRedirectsChecks",
+ "wikilessNormalCustomRedirects",
+ "wikilessTorRedirectsChecks",
+ "wikilessTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableWikipedia || r.wikipediaProtocol === undefined) return;
+ let checkedInstances;
+ if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects]
+ else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
+ for (const to of checkedInstances) {
+ commonHelper.getCookiesFromStorage('wikiless', to, 'theme');
+ commonHelper.getCookiesFromStorage('wikiless', to, 'default_lang');
+ }
+ }
+ )
+}
+
function redirect(url) {
if (disable) return;
if (!targets.test(url.href)) return;
@@ -212,6 +237,7 @@ export default {
setRedirects,
initWikilessCookies,
+ setWikilessCookies,
redirect,
initDefaults,
diff --git a/src/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js b/src/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js
new file mode 100644
index 00000000..9d052f62
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js
@@ -0,0 +1,7 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.set(
+ {
+ 'pipedMaterial_PREFERENCES': localStorage.getItem("PREFERENCES")
+ }
+) \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/get_piped_settings.js b/src/assets/javascripts/helpers/youtube/get_piped_preferences.js
index 12e92baa..12e92baa 100644
--- a/src/assets/javascripts/helpers/youtube/get_piped_settings.js
+++ b/src/assets/javascripts/helpers/youtube/get_piped_preferences.js
diff --git a/src/assets/javascripts/helpers/youtube/piped-preferences.js b/src/assets/javascripts/helpers/youtube/piped-preferences.js
deleted file mode 100644
index 8a1f2d0d..00000000
--- a/src/assets/javascripts/helpers/youtube/piped-preferences.js
+++ /dev/null
@@ -1,40 +0,0 @@
-window.browser = window.browser || window.chrome;
-
-browser.storage.local.get(
- [
- "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.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
deleted file mode 100644
index e1f7b0df..00000000
--- a/src/assets/javascripts/helpers/youtube/piped.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"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,
-
- 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,
- })
-}
-
-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,
- {
- file: "/assets/javascripts/helpers/youtube/piped-preferences.js",
- runAt: "document_start"
- }
- );
- return true;
- })
-}
-
-export default {
- initDefaults,
- initPipedLocalStorage,
- copyPipedLocalStorage,
-} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
deleted file mode 100644
index c669c47e..00000000
--- a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
+++ /dev/null
@@ -1,37 +0,0 @@
-window.browser = window.browser || window.chrome;
-
-browser.storage.local.get(
- [
- "theme",
- "youtubeAutoplay",
- "youtubeVolume",
- "youtubeListen",
-
- "pipedDisableLBRY",
- "pipedProxyLBRY",
- "pipedSelectedSkip",
- "pipedSponsorblock",
-
- "pipedMaterialSkipToLastPoint",
- ],
- r => {
- let prefs = {};
- if (localStorage.getItem("PREFERENCES"))
- prefs = JSON.parse(localStorage.getItem("PREFERENCES"));
-
- if (r.theme == 'dark') prefs.darkMode = true;
- if (r.theme == 'light') prefs.darkMode = false;
-
- prefs.volume = r.youtubeVolume / 100;
- prefs.playerAutoplay = r.youtubeAutoplay;
-
- prefs.listen = r.youtubeListen;
- prefs.disableLBRY = r.pipedDisableLBRY;
- prefs.proxyLBRY = r.pipedProxyLBRY;
- prefs.sponsorblock = r.pipedSponsorblock;
- prefs.skipToLastPoint = r.pipedMaterialSkipToLastPoint;
- prefs.selectedSkip = r.pipedSelectedSkip;
-
- localStorage.setItem("PREFERENCES", JSON.stringify(prefs));
- }
-) \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial.js b/src/assets/javascripts/helpers/youtube/pipedMaterial.js
deleted file mode 100644
index 5e5a577d..00000000
--- a/src/assets/javascripts/helpers/youtube/pipedMaterial.js
+++ /dev/null
@@ -1,31 +0,0 @@
-async function initDefaults() {
- await browser.storage.local.set({
- theme: "dark",
- youtubeAutoplay: false,
- youtubeVolume: 100,
- youtubeListen: false,
-
- pipedDisableLBRY: false,
- pipedProxyLBRY: false,
- pipedSelectedSkip: [],
- pipedSponsorblock: true,
-
- pipedMaterialSkipToLastPoint: true,
- })
-}
-
-function initPipedMaterialLocalStorage(tabId) {
- if (!disable && frontend == 'pipedMaterial' && enableCustomSettings)
- browser.tabs.executeScript(
- tabId,
- {
- file: "/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js",
- runAt: "document_start"
- }
- );
-}
-
-export default {
- initDefaults,
- initPipedMaterialLocalStorage,
-} \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js b/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js
new file mode 100644
index 00000000..7e12fe26
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js
@@ -0,0 +1,8 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.get(
+ "pipedMaterial_PREFERENCES",
+ r => {
+ if (r.pipedMaterial_PREFERENCES !== undefined) localStorage.setItem("PREFERENCES", r.pipedMaterial_PREFERENCES)
+ }
+) \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/set_piped_preferences.js b/src/assets/javascripts/helpers/youtube/set_piped_preferences.js
new file mode 100644
index 00000000..ffb3e218
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/set_piped_preferences.js
@@ -0,0 +1,40 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.get(
+ [
+ "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 => {
+ if (r.piped_bufferGoal !== undefined) localStorage.setItem("bufferGoal", r.piped_bufferGoal);
+ if (r.piped_comments !== undefined) localStorage.setItem("comments", r.piped_comments);
+ if (r.piped_disableLBRY !== undefined) localStorage.setItem("disableLBRY", r.piped_disableLBRY);
+ if (r.piped_enabledCodecs !== undefined) localStorage.setItem("enabledCodecs", r.piped_enabledCodecs);
+ if (r.piped_homepage !== undefined) localStorage.setItem("homepage", r.piped_homepage);
+ if (r.piped_listen !== undefined) localStorage.setItem("listen", r.piped_listen);
+ if (r.piped_minimizeDescription !== undefined) localStorage.setItem("minimizeDescription", r.piped_minimizeDescription);
+ if (r.piped_playerAutoPlay !== undefined) localStorage.setItem("playerAutoPlay", r.piped_playerAutoPlay);
+ if (r.piped_proxyLBRY !== undefined) localStorage.setItem("proxyLBRY", r.piped_proxyLBRY);
+ if (r.piped_quality !== undefined) localStorage.setItem("quality", r.piped_quality);
+ if (r.piped_region !== undefined) localStorage.setItem("region", r.piped_region);
+ if (r.piped_selectedSkip !== undefined) localStorage.setItem("selectedSkip", r.piped_selectedSkip);
+ if (r.piped_sponsorblock !== undefined) localStorage.setItem("sponsorblock", r.piped_sponsorblock);
+ if (r.piped_theme !== undefined) localStorage.setItem("theme", r.piped_theme);
+ if (r.piped_volume !== undefined) localStorage.setItem("volume", r.piped_volume);
+ if (r.piped_watchHistory !== undefined) localStorage.setItem("watchHistory", r.piped_watchHistory);
+ }
+) \ 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 96f9959b..31cc444e 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -3,8 +3,6 @@
window.browser = window.browser || window.chrome;
import commonHelper from '../common.js'
-import piped from './piped.js';
-import pipedMaterial from './pipedMaterial.js';
const targets = [
/^https?:\/{2}(www\.|music\.|m\.|)youtube\.com(\/.*|$)/,
@@ -330,9 +328,6 @@ async function initDefaults() {
youtubeEmbedFrontend: 'invidious',
youtubeProtocol: 'normal',
})
-
- await piped.initDefaults();
- await pipedMaterial.initDefaults();
resolve();
})
})
@@ -420,7 +415,7 @@ async function initInvidiousCookies(from) {
...r.invidiousTorRedirectsChecks,
...r.invidiousNormalCustomRedirects,
...r.invidiousTorCustomRedirects,
- ].includes(protocolHost)) resolve();
+ ].includes(protocolHost)) return;
let checkedInstances;
if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
@@ -429,7 +424,150 @@ async function initInvidiousCookies(from) {
resolve(true);
}
)
- }
+ })
+}
+
+function setInvidiousCookies() {
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "youtubeProtocol",
+ "youtubeFrontend",
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableYoutube || r.youtubeFrontend != 'invidious' || r.youtubeProtocol === undefined) return;
+ 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.getCookiesFromStorage('invidious', to, 'PREFS');
+ }
+ )
+}
+
+async function initPipedLocalStorage(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 setPipedLocalStorage(url, tabId) {
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "youtubeFrontend",
+ "pipedNormalRedirectsChecks",
+ "pipedNormalCustomRedirects",
+ "pipedTorRedirectsChecks",
+ "pipedTorCustomRedirects",
+ ],
+ r => {
+ if (!r.disableYoutube && r.youtubeFrontend == 'pipedMaterial') return;
+ let protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.pipedNormalRedirectsChecks,
+ ...r.pipedTorRedirectsChecks,
+ ...r.pipedNormalCustomRedirects,
+ ...r.pipedTorCustomRedirects,
+ ].includes(protocolHost)) return;
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js",
+ runAt: "document_start"
+ }
+ );
+ return true;
+ }
+ )
+}
+
+async function initPipedMaterialLocalStorage(tabId) {
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "pipedMaterialNormalRedirectsChecks",
+ "pipedMaterialNormalCustomRedirects",
+ "pipedMaterialTorRedirectsChecks",
+ "pipedMaterialTorCustomRedirects",
+ ],
+ r => {
+ const protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.pipedMaterialNormalCustomRedirects,
+ ...r.pipedMaterialNormalRedirectsChecks,
+ ...r.pipedMaterialTorRedirectsChecks,
+ ...r.pipedMaterialTorCustomRedirects,
+ ].includes(protocolHost)) return;
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
+ runAt: "document_start"
+ }
+ );
+ resolve(true);
+ }
+ )
+ })
+}
+
+async function setPipedMaterialLocalStorage(url, tabId) {
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "youtubeFrontend",
+ "pipedMaterialNormalRedirectsChecks",
+ "pipedMaterialTorRedirectsChecks",
+ "pipedMaterialNormalCustomRedirects",
+ "pipedMaterialTorCustomRedirects",
+ ],
+ r => {
+ if (r.disableYoutube || r.youtubeFrontend != 'pipedMaterial') return;
+ const protocolHost = commonHelper.protocolHost(url);
+ if (![
+ ...r.pipedMaterialNormalRedirectsChecks,
+ ...r.pipedMaterialTorRedirectsChecks,
+ ...r.pipedMaterialNormalCustomRedirects,
+ ...r.pipedMaterialTorCustomRedirects,
+ ].includes(protocolHost)) return;
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js",
+ runAt: "document_start"
+ }
+ );
+ return true;
+ }
)
}
@@ -456,15 +594,12 @@ function removeXFrameOptions(e) {
if (isChanged) return { responseHeaders: e.responseHeaders };
}
-let
- initPipedLocalStorage = piped.initPipedLocalStorage,
- initPipedMaterialLocalStorage = pipedMaterial.initPipedMaterialLocalStorage,
- copyPipedLocalStorage = piped.copyPipedLocalStorage;
-
export default {
- initPipedLocalStorage,
initPipedMaterialLocalStorage,
+ setPipedLocalStorage,
+ setPipedMaterialLocalStorage,
initInvidiousCookies,
+ setInvidiousCookies,
getRedirects,
redirect,
@@ -474,7 +609,7 @@ export default {
isPipedorInvidious,
- copyPipedLocalStorage,
+ initPipedLocalStorage,
initDefaults,
init,
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 06957367..d112e000 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -1,6 +1,8 @@
"use strict";
+import generalHelper from "../../assets/javascripts/helpers/general.js";
import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js";
+import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js";
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
@@ -15,33 +17,42 @@ import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
import lbryHelper from "../../assets/javascripts/helpers/lbry.js";
-import generalHelper from "../../assets/javascripts/helpers/general.js";
-import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js";
-
window.browser = window.browser || window.chrome;
-browser.runtime.onInstalled.addListener(async details => {
- if (details.reason == 'install') {
- fetch('/instances/blocklist.json').then(response => response.text()).then(async data => {
- await browser.storage.local.set({ cloudflareList: JSON.parse(data) })
- youtubeHelper.initDefaults();
- youtubeMusicHelper.initDefaults();
- twitterHelper.initDefaults();
- instagramHelper.initDefaults();
- mapsHelper.initDefaults();
- searchHelper.initDefaults();
- translateHelper.initDefaults();
- mediumHelper.initDefaults();
- redditHelper.initDefaults();
- wikipediaHelper.initDefaults();
- imgurHelper.initDefaults();
- tiktokHelper.initDefaults();
- sendTargetsHelper.initDefaults();
- peertubeHelper.initDefaults();
- lbryHelper.initDefaults();
- })
+youtubeHelper.setInvidiousCookies();
+translateHelper.setSimplyTranslateCookies();
+twitterHelper.setNitterCookies();
+wikipediaHelper.setWikilessCookies();
+searchHelper.setSearxCookies();
+searchHelper.setSearxngCookies();
+redditHelper.setLibredditCookies();
+redditHelper.setTedditCookies();
+tiktokHelper.setProxiTokCookies();
+
+browser.runtime.onInstalled.addListener(
+ async details => {
+ if (details.reason == 'install') {
+ fetch('/instances/blocklist.json').then(response => response.text()).then(async data => {
+ await browser.storage.local.set({ cloudflareList: JSON.parse(data) })
+ youtubeHelper.initDefaults();
+ youtubeMusicHelper.initDefaults();
+ twitterHelper.initDefaults();
+ instagramHelper.initDefaults();
+ mapsHelper.initDefaults();
+ searchHelper.initDefaults();
+ translateHelper.initDefaults();
+ mediumHelper.initDefaults();
+ redditHelper.initDefaults();
+ wikipediaHelper.initDefaults();
+ imgurHelper.initDefaults();
+ tiktokHelper.initDefaults();
+ sendTargetsHelper.initDefaults();
+ peertubeHelper.initDefaults();
+ lbryHelper.initDefaults();
+ })
+ }
}
-})
+)
async function wholeInit() {
await youtubeHelper.init();
@@ -71,11 +82,10 @@ browser.tabs.onCreated.addListener(
});
incognitoInit = true;
}
- });
-
+ }
+);
let BYPASSTABs = [];
-
browser.webRequest.onBeforeRequest.addListener(
async details => {
const url = new URL(details.url);
@@ -213,11 +223,9 @@ browser.tabs.onUpdated.addListener(
let url;
try { url = new URL(changeInfo.url); }
catch (_) { return }
- let result = await youtubeHelper.initPipedLocalStorage(url, tabId);
- // if (youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId);
- // if (translateHelper.isTranslateRedirects(url, 'main_frame', 'lingva')) translateHelper.initLingvaLocalStorage(tabId);
- // if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url);
- // if (changeInfo.url && youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId);
+ let result = await youtubeHelper.setPipedLocalStorage(url, tabId);
+ if (!result) result = await youtubeHelper.setPipedMaterialLocalStorage(url, tabId);
+ if (!result) result = await translateHelper.initLingvaLocalStorage(url, tabId);
}
);
@@ -265,14 +273,16 @@ browser.contextMenus.create({
contexts: ["browser_action"]
});
-browser.contextMenus.onClicked.addListener((info, tab) => {
- if (info.menuItemId == 'switchInstance') {
- let url;
- try { url = new URL(tab.url); }
- catch (_) { return }
- let newUrl = changeWholeInstance(url);
- if (newUrl) browser.tabs.update({ url: newUrl });
+browser.contextMenus.onClicked.addListener(
+ (info, tab) => {
+ if (info.menuItemId == 'switchInstance') {
+ let url;
+ try { url = new URL(tab.url); }
+ catch (_) { return }
+ let newUrl = changeWholeInstance(url);
+ if (newUrl) browser.tabs.update({ url: newUrl });
+ }
+ else if (info.menuItemId == 'settings')
+ browser.runtime.openOptionsPage()
}
- else if (info.menuItemId == 'settings')
- browser.runtime.openOptionsPage()
-});
+);
diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js
index 07d9ba1d..ce42abdc 100644
--- a/src/pages/options/youtube/youtube.js
+++ b/src/pages/options/youtube/youtube.js
@@ -146,7 +146,7 @@ invidiousForm.addEventListener('submit', async event => {
// pipedForm.addEventListener('submit', async event => {
// event.preventDefault();
// const url = new URL(pipedCookies.value);
-// youtubeHelper.initPipedLocalStorage(url);
+// youtubeHelper.applyPipedLocalStorage(url);
// });
commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 0cd1a4f7..b4086ffd 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -56,14 +56,14 @@
<h4>LBRY</h4></a>
<input id="disable-lbry" type="checkbox">
</div>
- <div class="some-block" id="search"><a class="title" href="https://search.com">
+ <div class="some-block" id="search"><a class="title" href="https://libredirect.invalid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<h4>Search</h4></a>
<input id="disable-search" type="checkbox">
</div>
- <div class="some-block" id="translate"><a class="title" href="https://translate.com">
+ <div class="some-block" id="translate"><a class="title" href="https://translate.google.com">
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
<path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
</svg>
@@ -107,6 +107,5 @@
<h4>Unify Settings</h4></a></div>
<script type="module" src="../options/init.js"></script>
<script type="module" src="./popup.js"></script>
- <script src="../../assets/javascripts/localise.js"></script>
</body>
</html> \ No newline at end of file
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 61e0ee1b..c6399aeb 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -110,14 +110,23 @@ function unify() {
let url = new URL(currTab.url);
let result = await youtubeHelper.initInvidiousCookies(url);
- if (!result) result = await youtubeHelper.copyPipedLocalStorage(url, currTab.id);
+ if (!result) result = await youtubeHelper.initPipedLocalStorage(url, currTab.id);
+ if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(url, currTab.id);
+
if (!result) result = await twitterHelper.initNitterCookies(url);
+
if (!result) result = await redditHelper.initLibredditCookies(url);
if (!result) result = await redditHelper.initTedditCookies(url);
- if (!result) result = await redditHelper.initSearxCookies(url);
- if (!result) result = await redditHelper.initSearxngCookies(url);
+
+ if (!result) result = await searchHelper.initSearxCookies(url);
+ if (!result) result = await searchHelper.initSearxngCookies(url);
+
if (!result) result = await tiktokHelper.initProxiTokCookies(url);
- if (!result) result = await tiktokHelper.initWikilessCookies(url);
+
+ if (!result) result = await wikipediaHelper.initWikilessCookies(url);
+
+ if (!result) result = await translateHelper.initSimplyTranslateCookies(url);
+ if (!result) result = await translateHelper.initLingvaLocalStorage(url);
if (result) {
const textElement = unifyElement.getElementsByTagName('h4')[0]
diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug
index f2cc4635..31354a4b 100644
--- a/src/pages/popup/popup.pug
+++ b/src/pages/popup/popup.pug
@@ -75,13 +75,13 @@ html(lang="en")
input#disable-lbry(type="checkbox")
#search.some-block
- a.title(href="https://search.com")
+ a.title(href="https://libredirect.invalid")
+search
h4 Search
input#disable-search(type="checkbox")
#translate.some-block
- a.title(href="https://translate.com")
+ a.title(href="https://translate.google.com")
+translate
h4 Translate
input#disable-simplyTranslate(type="checkbox")
@@ -120,4 +120,4 @@ html(lang="en")
script(type="module" src="../options/init.js")
script(type="module" src="./popup.js")
- script(src="../../assets/javascripts/localise.js") \ No newline at end of file
+ //- script(src="../../assets/javascripts/localise.js") \ No newline at end of file