Hiding popup buttons when not available

This commit is contained in:
ManeraKai 2022-05-21 11:28:15 +03:00
parent 51b0df71b9
commit 060629143a
No known key found for this signature in database
GPG Key ID: 5ABC31FFD562E337
11 changed files with 340 additions and 339 deletions

View File

@ -54,17 +54,14 @@ function setTedditRedirects(val) {
browser.storage.local.set({ tedditTorRedirectsChecks })
}
let libredditNormalRedirectsChecks;
let libredditTorRedirectsChecks;
let libredditNormalCustomRedirects = [];
let libredditTorCustomRedirects = [];
let
libredditNormalRedirectsChecks,
libredditTorRedirectsChecks,
let tedditNormalRedirectsChecks;
let tedditTorRedirectsChecks;
let tedditNormalCustomRedirects = [];
let tedditTorCustomRedirects = [];
tedditNormalRedirectsChecks,
tedditTorRedirectsChecks;
function initLibredditCookies(from) {
function initLibredditCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -81,22 +78,24 @@ function initLibredditCookies(from) {
...r.libredditTorRedirectsChecks,
...r.libredditNormalCustomRedirects,
...r.libredditTorCustomRedirects,
].includes(protocolHost)) resolve();
].includes(protocolHost)) { resolve(); 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) {
utils.copyCookie('libreddit', from, to, "theme");
utils.copyCookie('libreddit', from, to, "front_page");
utils.copyCookie('libreddit', from, to, "layout");
utils.copyCookie('libreddit', from, to, "wide");
utils.copyCookie('libreddit', from, to, "post_sort");
utils.copyCookie('libreddit', from, to, "comment_sort");
utils.copyCookie('libreddit', from, to, "show_nsfw");
utils.copyCookie('libreddit', from, to, "autoplay_videos");
utils.copyCookie('libreddit', from, to, "use_hls");
utils.copyCookie('libreddit', from, to, "hide_hls_notification");
if (!test) {
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) {
utils.copyCookie('libreddit', from, to, "theme");
utils.copyCookie('libreddit', from, to, "front_page");
utils.copyCookie('libreddit', from, to, "layout");
utils.copyCookie('libreddit', from, to, "wide");
utils.copyCookie('libreddit', from, to, "post_sort");
utils.copyCookie('libreddit', from, to, "comment_sort");
utils.copyCookie('libreddit', from, to, "show_nsfw");
utils.copyCookie('libreddit', from, to, "autoplay_videos");
utils.copyCookie('libreddit', from, to, "use_hls");
utils.copyCookie('libreddit', from, to, "hide_hls_notification");
}
}
resolve(true);
}
@ -137,7 +136,7 @@ function setLibredditCookies() {
)
}
function initTedditCookies(from) {
function initTedditCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -156,22 +155,24 @@ function initTedditCookies(from) {
...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) {
utils.copyCookie('teddit', from, to, 'collapse_child_comments')
utils.copyCookie('teddit', from, to, 'domain_instagram')
utils.copyCookie('teddit', from, to, 'domain_twitter')
utils.copyCookie('teddit', from, to, 'domain_youtube')
utils.copyCookie('teddit', from, to, 'flairs')
utils.copyCookie('teddit', from, to, 'highlight_controversial')
utils.copyCookie('teddit', from, to, 'nsfw_enabled')
utils.copyCookie('teddit', from, to, 'post_media_max_height')
utils.copyCookie('teddit', from, to, 'show_upvoted_percentage')
utils.copyCookie('teddit', from, to, 'show_upvotes')
utils.copyCookie('teddit', from, to, 'theme')
utils.copyCookie('teddit', from, to, 'videos_muted')
if (!test) {
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) {
utils.copyCookie('teddit', from, to, 'collapse_child_comments')
utils.copyCookie('teddit', from, to, 'domain_instagram')
utils.copyCookie('teddit', from, to, 'domain_twitter')
utils.copyCookie('teddit', from, to, 'domain_youtube')
utils.copyCookie('teddit', from, to, 'flairs')
utils.copyCookie('teddit', from, to, 'highlight_controversial')
utils.copyCookie('teddit', from, to, 'nsfw_enabled')
utils.copyCookie('teddit', from, to, 'post_media_max_height')
utils.copyCookie('teddit', from, to, 'show_upvoted_percentage')
utils.copyCookie('teddit', from, to, 'show_upvotes')
utils.copyCookie('teddit', from, to, 'theme')
utils.copyCookie('teddit', from, to, 'videos_muted')
}
}
resolve(true);
}

View File

@ -102,31 +102,15 @@ let
searxI2pRedirectsChecks,
searxTorRedirectsChecks,
searxNormalCustomRedirects,
searxTorCustomRedirects,
searxI2pCustomRedirects,
searxngNormalRedirectsChecks,
searxngI2pRedirectsChecks,
searxngTorRedirectsChecks,
searxngNormalCustomRedirects,
searxngTorCustomRedirects,
searxngI2pCustomRedirects,
whoogleNormalRedirectsChecks,
whoogleI2pRedirectsChecks,
whoogleTorRedirectsChecks,
whoogleTorRedirectsChecks;
whoogleNormalCustomRedirects,
whoogleTorCustomRedirects,
whoogleI2pCustomRedirects;
let disable, // disableSearch
frontend, // searchFrontend
protocol; // searchProtocol
function initSearxCookies(from) {
function initSearxCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -149,29 +133,30 @@ function initSearxCookies(from) {
...r.searxI2pCustomRedirects,
].includes(protocolHost)) return;
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) {
utils.copyCookie('searx', from, to, 'advanced_search');
utils.copyCookie('searx', from, to, 'autocomplete');
utils.copyCookie('searx', from, to, 'categories');
utils.copyCookie('searx', from, to, 'disabled_engines');
utils.copyCookie('searx', from, to, 'disabled_plugins');
utils.copyCookie('searx', from, to, 'doi_resolver');
utils.copyCookie('searx', from, to, 'enabled_engines');
utils.copyCookie('searx', from, to, 'enabled_plugins');
utils.copyCookie('searx', from, to, 'image_proxy');
utils.copyCookie('searx', from, to, 'language');
utils.copyCookie('searx', from, to, 'locale');
utils.copyCookie('searx', from, to, 'method');
utils.copyCookie('searx', from, to, 'oscar-style');
utils.copyCookie('searx', from, to, 'results_on_new_tab');
utils.copyCookie('searx', from, to, 'safesearch');
utils.copyCookie('searx', from, to, 'theme');
utils.copyCookie('searx', from, to, 'tokens');
if (!test) {
let checkedInstances;
if (r.searchProtocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects];
else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects];
else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxI2pRedirectsChecks, ...r.searxI2pCustomRedirects];
for (const to of checkedInstances) {
utils.copyCookie('searx', from, to, 'advanced_search');
utils.copyCookie('searx', from, to, 'autocomplete');
utils.copyCookie('searx', from, to, 'categories');
utils.copyCookie('searx', from, to, 'disabled_engines');
utils.copyCookie('searx', from, to, 'disabled_plugins');
utils.copyCookie('searx', from, to, 'doi_resolver');
utils.copyCookie('searx', from, to, 'enabled_engines');
utils.copyCookie('searx', from, to, 'enabled_plugins');
utils.copyCookie('searx', from, to, 'image_proxy');
utils.copyCookie('searx', from, to, 'language');
utils.copyCookie('searx', from, to, 'locale');
utils.copyCookie('searx', from, to, 'method');
utils.copyCookie('searx', from, to, 'oscar-style');
utils.copyCookie('searx', from, to, 'results_on_new_tab');
utils.copyCookie('searx', from, to, 'safesearch');
utils.copyCookie('searx', from, to, 'theme');
utils.copyCookie('searx', from, to, 'tokens');
}
}
resolve(true);
}
@ -218,7 +203,7 @@ function setSearxCookies() {
)
}
function initSearxngCookies(from) {
function initSearxngCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -241,30 +226,32 @@ function initSearxngCookies(from) {
...r.searxngI2pCustomRedirects,
].includes(protocolHost)) return;
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) {
utils.copyCookie('searxng', from, to, 'autocomplete');
utils.copyCookie('searxng', from, to, 'categories');
utils.copyCookie('searxng', from, to, 'disabled_engines');
utils.copyCookie('searxng', from, to, 'disabled_plugins');
utils.copyCookie('searxng', from, to, 'doi_resolver');
utils.copyCookie('searxng', from, to, 'enabled_plugins');
utils.copyCookie('searxng', from, to, 'enabled_engines');
utils.copyCookie('searxng', from, to, 'image_proxy');
utils.copyCookie('searxng', from, to, 'infinite_scroll');
utils.copyCookie('searxng', from, to, 'language');
utils.copyCookie('searxng', from, to, 'locale');
utils.copyCookie('searxng', from, to, 'maintab');
utils.copyCookie('searxng', from, to, 'method');
utils.copyCookie('searxng', from, to, 'query_in_title');
utils.copyCookie('searxng', from, to, 'results_on_new_tab');
utils.copyCookie('searxng', from, to, 'safesearch');
utils.copyCookie('searxng', from, to, 'simple_style');
utils.copyCookie('searxng', from, to, 'theme');
utils.copyCookie('searxng', from, to, 'tokens');
if (!test) {
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) {
utils.copyCookie('searxng', from, to, 'autocomplete');
utils.copyCookie('searxng', from, to, 'categories');
utils.copyCookie('searxng', from, to, 'disabled_engines');
utils.copyCookie('searxng', from, to, 'disabled_plugins');
utils.copyCookie('searxng', from, to, 'doi_resolver');
utils.copyCookie('searxng', from, to, 'enabled_plugins');
utils.copyCookie('searxng', from, to, 'enabled_engines');
utils.copyCookie('searxng', from, to, 'image_proxy');
utils.copyCookie('searxng', from, to, 'infinite_scroll');
utils.copyCookie('searxng', from, to, 'language');
utils.copyCookie('searxng', from, to, 'locale');
utils.copyCookie('searxng', from, to, 'maintab');
utils.copyCookie('searxng', from, to, 'method');
utils.copyCookie('searxng', from, to, 'query_in_title');
utils.copyCookie('searxng', from, to, 'results_on_new_tab');
utils.copyCookie('searxng', from, to, 'safesearch');
utils.copyCookie('searxng', from, to, 'simple_style');
utils.copyCookie('searxng', from, to, 'theme');
utils.copyCookie('searxng', from, to, 'tokens');
}
}
resolve(true);
}
@ -350,7 +337,7 @@ function redirect(url) {
"searxngI2pCustomRedirects",
],
r => {
if (disable) { resolve(); return; }
if (r.disableSearch) { resolve(); return; }
if (!targets.some(rx => rx.test(url.href))) { resolve(); return; }
if (url.searchParams.has('tbm')) { resolve(); return; }
if (url.hostname.includes('google') && !url.searchParams.has('q') && url.pathname != '/') { resolve(); return; }

View File

@ -39,7 +39,7 @@ let proxiTokTorCustomRedirects = [];
let disable; // disableTiktok
let protocol;
function initProxiTokCookies(from) {
function initProxiTokCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -57,13 +57,15 @@ function initProxiTokCookies(from) {
...r.proxiTokTorRedirectsChecks,
...r.proxiTokTorCustomRedirects,
].includes(protocolHost)) resolve();
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) {
utils.copyCookie('proxitok', from, to, 'theme');
utils.copyCookie('proxitok', from, to, 'api-legacy');
if (!test) {
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) {
utils.copyCookie('proxitok', from, to, 'theme');
utils.copyCookie('proxitok', from, to, 'api-legacy');
}
}
resolve(true);
}

View File

@ -17,6 +17,10 @@ let redirects = {
}
};
let
simplyTranslateNormalRedirectsChecks,
lingvaNormalRedirectsChecks;
function setRedirects(val) {
browser.storage.local.get('cloudflareList', async r => {
redirects = val;
@ -24,11 +28,11 @@ function setRedirects(val) {
lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
for (const instance of r.cloudflareList) {
let i;
i = simplyTranslateNormalRedirectsChecks.indexOf(instance);
if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1);
const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
i = lingvaNormalRedirectsChecks.indexOf(instance);
if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
const b = lingvaNormalRedirectsChecks.indexOf(instance);
if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1);
}
browser.storage.local.set({
translateRedirects: redirects,
@ -40,11 +44,7 @@ function setRedirects(val) {
})
}
let
simplyTranslateNormalRedirectsChecks,
lingvaNormalRedirectsChecks;
function initLingvaLocalStorage(url, tabId) {
function initLingvaLocalStorage(test, url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -61,13 +61,15 @@ function initLingvaLocalStorage(url, tabId) {
...r.lingvaNormalCustomRedirects,
...r.lingvaTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
runAt: "document_start"
}
);
if (!test)
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
runAt: "document_start"
}
);
resolve(true);
}
)
@ -106,7 +108,7 @@ function setLingvaLocalStorage(url, tabId) {
})
}
function initSimplyTranslateCookies(from) {
function initSimplyTranslateCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -128,16 +130,17 @@ function initSimplyTranslateCookies(from) {
...r.simplyTranslateI2pRedirectsChecks,
...r.simplyTranslateI2pCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
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) {
utils.copyCookie('simplyTranslate', from, to, 'from_lang');
utils.copyCookie('simplyTranslate', from, to, 'to_lang');
utils.copyCookie('simplyTranslate', from, to, 'tts_enabled');
utils.copyCookie('simplyTranslate', from, to, 'use_text_fields');
if (!test) {
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) {
utils.copyCookie('simplyTranslate', from, to, 'from_lang');
utils.copyCookie('simplyTranslate', from, to, 'to_lang');
utils.copyCookie('simplyTranslate', from, to, 'tts_enabled');
utils.copyCookie('simplyTranslate', from, to, 'use_text_fields');
}
}
resolve(true);
}
@ -157,7 +160,7 @@ function setSimplyTranslateCookies() {
"simplyTranslateTorCustomRedirects",
],
r => {
if (r.translateDisable || r.translateFrontend != 'simplyTranslate' || r.translateProtocol === undefined) return;
if (r.translateDisable || r.translateFrontend != 'simplyTranslate') return;
let checkedInstances;
if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
@ -201,26 +204,24 @@ function redirect(url) {
if (instancesList.length === 0) { resolve(); return; };
let randomInstance = utils.getRandomInstance(instancesList)
console.log(`${randomInstance}/${url.search}`);
resolve(`${randomInstance}/${url.search}`);
}
else if (r.translateFrontend == 'lingva') {
let params_arr = url.search.split('&');
params_arr[0] = params_arr[0].substring(1);
let myMap = {};
let params = {};
for (let i = 0; i < params_arr.length; i++) {
let pair = params_arr[i].split('=');
myMap[pair[0]] = pair[1];
params[pair[0]] = pair[1];
}
let instancesList;
if (r.translateProtocol == 'normal') instancesList = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
if (r.translateProtocol == 'tor') instancesList = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects];
if (instancesList.length === 0) { resolve(); return; }
let randomInstance = utils.getRandomInstance(instancesList)
if (myMap.sl && myMap.tl && myMap.text) {
resolve(`${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`); return;
let randomInstance = utils.getRandomInstance(instancesList)
if (params.sl && params.tl && params.text) {
resolve(`${randomInstance}/${params.sl}/${params.tl}/${params.text}`); return;
}
resolve(randomInstance);
}
@ -248,9 +249,8 @@ function switchInstance(url) {
"lingvaTorCustomRedirects",
],
r => {
let protocolHost = utils.protocolHost(url);
let translateList = [
const protocolHost = utils.protocolHost(url);
if (![
...r.translateRedirects.simplyTranslate.normal,
...r.translateRedirects.simplyTranslate.tor,
@ -262,12 +262,9 @@ function switchInstance(url) {
...r.lingvaNormalCustomRedirects,
...r.lingvaTorCustomRedirects,
]
if (!translateList.includes(protocolHost)) { resolve(); return; }
].includes(protocolHost)) { resolve(); return; }
let instancesList;
if (r.translateProtocol == 'normal') {
if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects];
else if (r.translateFrontend == 'lingva') [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
@ -282,45 +279,45 @@ function switchInstance(url) {
if (instancesList.length === 0) { resolve(); return; }
let randomInstance = utils.getRandomInstance(instancesList);
return `${randomInstance}${url.pathname}${url.search}`;
resolve(`${randomInstance}${url.pathname}${url.search}`);
})
})
}
function initDefaults() {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
fetch('/instances/data.json').then(response => response.text()).then(data => {
let dataJson = JSON.parse(data);
redirects.simplyTranslate = dataJson.simplyTranslate;
redirects.lingva = dataJson.lingva;
browser.storage.local.get('cloudflareList', async r => {
simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
for (const instance of r.cloudflareList) {
let i;
browser.storage.local.get(
'cloudflareList',
r => {
simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
for (const instance of r.cloudflareList) {
const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
i = simplyTranslateNormalRedirectsChecks.indexOf(instance);
if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1);
const b = lingvaNormalRedirectsChecks.indexOf(instance);
if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1);
}
browser.storage.local.set({
translateDisable: false,
translateFrontend: "simplyTranslate",
translateProtocol: 'normal',
translateRedirects: redirects,
i = lingvaNormalRedirectsChecks.indexOf(instance);
if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
}
await browser.storage.local.set({
translateDisable: false,
translateFrontend: "simplyTranslate",
translateProtocol: 'normal',
translateRedirects: redirects,
simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
simplyTranslateNormalCustomRedirects: [],
simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
simplyTranslateTorCustomRedirects: [],
simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
simplyTranslateNormalCustomRedirects: [],
simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
simplyTranslateTorCustomRedirects: [],
lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
lingvaNormalCustomRedirects: [],
lingvaTorRedirectsChecks: [...redirects.lingva.tor],
lingvaTorCustomRedirects: [],
lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
lingvaNormalCustomRedirects: [],
lingvaTorRedirectsChecks: [...redirects.lingva.tor],
lingvaTorCustomRedirects: [],
})
})
})
})
}

View File

@ -180,7 +180,7 @@ function removeXFrameOptions(e) {
})
}
function initNitterCookies(from) {
function initNitterCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -201,25 +201,26 @@ function initNitterCookies(from) {
].includes(protocolHost)
) { resolve(); return; }
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) {
utils.copyCookie('nitter', from, to, 'theme');
utils.copyCookie('nitter', from, to, 'infiniteScroll');
utils.copyCookie('nitter', from, to, 'stickyProfile');
utils.copyCookie('nitter', from, to, 'bidiSupport');
utils.copyCookie('nitter', from, to, 'hideTweetStats');
utils.copyCookie('nitter', from, to, 'hideBanner');
utils.copyCookie('nitter', from, to, 'hidePins');
utils.copyCookie('nitter', from, to, 'hideReplies');
utils.copyCookie('nitter', from, to, 'squareAvatars');
utils.copyCookie('nitter', from, to, 'mp4Playback');
utils.copyCookie('nitter', from, to, 'hlsPlayback');
utils.copyCookie('nitter', from, to, 'proxyVideos');
utils.copyCookie('nitter', from, to, 'muteVideos');
utils.copyCookie('nitter', from, to, 'autoplayGifs');
if (!test) {
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) {
utils.copyCookie('nitter', from, to, 'theme');
utils.copyCookie('nitter', from, to, 'infiniteScroll');
utils.copyCookie('nitter', from, to, 'stickyProfile');
utils.copyCookie('nitter', from, to, 'bidiSupport');
utils.copyCookie('nitter', from, to, 'hideTweetStats');
utils.copyCookie('nitter', from, to, 'hideBanner');
utils.copyCookie('nitter', from, to, 'hidePins');
utils.copyCookie('nitter', from, to, 'hideReplies');
utils.copyCookie('nitter', from, to, 'squareAvatars');
utils.copyCookie('nitter', from, to, 'mp4Playback');
utils.copyCookie('nitter', from, to, 'hlsPlayback');
utils.copyCookie('nitter', from, to, 'proxyVideos');
utils.copyCookie('nitter', from, to, 'muteVideos');
utils.copyCookie('nitter', from, to, 'autoplayGifs');
}
}
resolve(true);
})

View File

@ -370,7 +370,7 @@ function copyRaw(test, copyRawElement) {
})
}
function unify(unifyElement) {
function unify(test, unifyElement) {
return new Promise(resolve => {
browser.tabs.query(
{ active: true, currentWindow: true },
@ -378,35 +378,36 @@ function unify(unifyElement) {
let currTab = tabs[0]
if (currTab) {
let url;
try {
url = new URL(currTab.url);
} catch { resolve(); return; }
try { url = new URL(currTab.url); }
catch { resolve(); return; }
let result = await youtubeHelper.initInvidiousCookies(url);
if (!result) result = await youtubeHelper.initPipedLocalStorage(url, currTab.id);
if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(url, currTab.id);
let result = await youtubeHelper.initInvidiousCookies(test, url);
if (!result) result = await youtubeHelper.initPipedLocalStorage(test, url, currTab.id);
if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(test, url, currTab.id);
if (!result) result = await twitterHelper.initNitterCookies(url);
if (!result) result = await twitterHelper.initNitterCookies(test, url);
if (!result) result = await redditHelper.initLibredditCookies(url);
if (!result) result = await redditHelper.initTedditCookies(url);
if (!result) result = await redditHelper.initLibredditCookies(test, url);
if (!result) result = await redditHelper.initTedditCookies(test, url);
if (!result) result = await searchHelper.initSearxCookies(url);
if (!result) result = await searchHelper.initSearxngCookies(url);
if (!result) result = await searchHelper.initSearxCookies(test, url);
if (!result) result = await searchHelper.initSearxngCookies(test, url);
if (!result) result = await tiktokHelper.initProxiTokCookies(url);
if (!result) result = await tiktokHelper.initProxiTokCookies(test, url);
if (!result) result = await wikipediaHelper.initWikilessCookies(url);
if (!result) result = await wikipediaHelper.initWikilessCookies(test, url);
if (!result) result = await translateHelper.initSimplyTranslateCookies(url);
if (!result) result = await translateHelper.initLingvaLocalStorage(url);
if (!result) result = await translateHelper.initSimplyTranslateCookies(test, url);
if (!result) result = await translateHelper.initLingvaLocalStorage(test, url);
if (result) {
if (!test) {
const textElement = unifyElement.getElementsByTagName('h4')[0]
const oldHtml = textElement.innerHTML;
textElement.innerHTML = 'Unified';
setTimeout(() => textElement.innerHTML = oldHtml, 1000);
}
resolve(true);
const textElement = unifyElement.getElementsByTagName('h4')[0]
const oldHtml = textElement.innerHTML;
textElement.innerHTML = 'Unified';
setTimeout(() => textElement.innerHTML = oldHtml, 1000);
} else resolve()
}
}
@ -414,30 +415,36 @@ function unify(unifyElement) {
})
}
function switchInstance() {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
let currTab = tabs[0];
if (currTab) {
let url = new URL(currTab.url);
let newUrl;
newUrl = await youtubeHelper.switchInstance(url);
if (!newUrl) newUrl = await twitterHelper.switchInstance(url);
if (!newUrl) newUrl = await instagramHelper.switchInstance(url);
if (!newUrl) newUrl = await redditHelper.switchInstance(url);
if (!newUrl) newUrl = await searchHelper.switchInstance(url);
if (!newUrl) newUrl = await translateHelper.switchInstance(url);
if (!newUrl) newUrl = await mediumHelper.switchInstance(url);
if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url);
if (!newUrl) newUrl = await peertubeHelper.switchInstance(url);
if (!newUrl) newUrl = await lbryHelper.switchInstance(url);
if (!newUrl) newUrl = await imgurHelper.switchInstance(url);
if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url);
function switchInstance(test) {
return new Promise(resolve => {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
let currTab = tabs[0];
if (currTab) {
let url;
try { url = new URL(currTab.url); }
catch { resolve(); return };
let newUrl = await youtubeHelper.switchInstance(url);
if (!newUrl) newUrl = await twitterHelper.switchInstance(url);
if (!newUrl) newUrl = await instagramHelper.switchInstance(url);
if (!newUrl) newUrl = await redditHelper.switchInstance(url);
if (!newUrl) newUrl = await searchHelper.switchInstance(url);
if (!newUrl) newUrl = await translateHelper.switchInstance(url);
if (!newUrl) newUrl = await mediumHelper.switchInstance(url);
if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url);
if (!newUrl) newUrl = await peertubeHelper.switchInstance(url);
if (!newUrl) newUrl = await lbryHelper.switchInstance(url);
if (!newUrl) newUrl = await imgurHelper.switchInstance(url);
if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url);
if (newUrl) {
browser.tabs.update({ url: newUrl });
return true;
console.log('newUrl', newUrl);
console.log('test');
if (newUrl) {
if (!test)
browser.tabs.update({ url: newUrl });
resolve(true)
} else resolve()
}
}
})
})
return false;
}

View File

@ -37,19 +37,12 @@ function setRedirects(val) {
browser.storage.local.set({ wikilessI2pRedirectsChecks })
}
let
disable, // disableWikipedia
protocol; // wikipediaProtocol
let
wikilessNormalRedirectsChecks,
wikilessTorRedirectsChecks,
wikilessI2pRedirectsChecks,
wikilessNormalCustomRedirects,
wikilessTorCustomRedirects,
wikilessI2pCustomRedirects;
wikilessI2pRedirectsChecks;
function initWikilessCookies(from) {
function initWikilessCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -72,14 +65,16 @@ function initWikilessCookies(from) {
...r.wikilessI2pCustomRedirects,
].includes(protocolHost)) resolve();
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]
if (!test) {
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 to of checkedInstances) {
utils.copyCookie('wikiless', from, to, 'theme');
utils.copyCookie('wikiless', from, to, 'default_lang');
for (const to of checkedInstances) {
utils.copyCookie('wikiless', from, to, 'theme');
utils.copyCookie('wikiless', from, to, 'default_lang');
}
}
resolve(true);
}

View File

@ -33,24 +33,19 @@ let redirects = {
"tor": []
}
};
function setRedirects(val) {
browser.storage.local.get('cloudflareList', async r => {
browser.storage.local.get('cloudflareList', r => {
redirects.invidious = val.invidious;
redirects.piped = val.piped;
invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
pipedNormalRedirectsChecks = [...redirects.piped.normal];
for (const instance of r.cloudflareList) {
let i;
const a = invidiousNormalRedirectsChecks.indexOf(instance);
if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1);
i = invidiousNormalRedirectsChecks.indexOf(instance);
if (i > -1) invidiousNormalRedirectsChecks.splice(i, 1);
i = pipedNormalRedirectsChecks.indexOf(instance);
if (i > -1) pipedNormalRedirectsChecks.splice(i, 1);
const b = pipedNormalRedirectsChecks.indexOf(instance);
if (b > -1) pipedNormalRedirectsChecks.splice(b, 1);
}
browser.storage.local.set({
youtubeRedirects: redirects,
invidiousNormalRedirectsChecks,
@ -63,21 +58,13 @@ function setRedirects(val) {
let
invidiousNormalRedirectsChecks,
invidiousNormalCustomRedirects,
invidiousTorRedirectsChecks,
invidiousTorCustomRedirects;
let
pipedNormalRedirectsChecks,
pipedNormalCustomRedirects,
pipedTorRedirectsChecks,
pipedTorCustomRedirects;
let
pipedMaterialNormalRedirectsChecks,
pipedMaterialNormalCustomRedirects,
pipedMaterialTorRedirectsChecks,
pipedMaterialTorCustomRedirects;
pipedMaterialTorRedirectsChecks;
function redirect(url, details, initiator) {
return new Promise(resolve => {
@ -129,27 +116,38 @@ function redirect(url, details, initiator) {
)
) { resolve('BYPASSTAB'); return; }
const isInvidious = r.youtubeFrontend == 'invidious';
const isPiped = r.youtubeFrontend == 'piped';
const isPipedMaterial = r.youtubeFrontend == 'pipedMaterial'
const isFreetube = r.youtubeFrontend == 'freetube';
const isYatte = r.youtubeFrontend == 'yatte';
const isFrontendYoutube = r.youtubeEmbedFrontend == "youtube";
const isFrontendInvidious = r.youtubeEmbedFrontend == 'invidious';
const isFrontendPiped = r.youtubeEmbedFrontend == 'piped';
const isFrontendPipedMaterial = r.youtubeEmbedFrontend == 'pipedMaterial';
const isOnlyEmbeddedVideo = r.OnlyEmbeddedVideo == 'onlyNotEmbedded';
const isOnlyNotEmbedded = r.OnlyEmbeddedVideo == 'onlyNotEmbedded'
const is_main_frame = details.type === "main_frame";
const is_sub_frame = details.type === "sub_frame";
if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) { resolve(); return; } // Don't redirect YouTube Player API.
if (r.youtubeFrontend == 'yatte' && details.type === "main_frame")
if (r.youtubeFrontend == 'yatte' && is_main_frame)
resolve(url.href.replace(/^https?:\/{2}/, 'yattee://'));
else if (r.youtubeFrontend == 'freetube' && details.type === "main_frame")
else if (isFreetube && is_main_frame)
resolve(`freetube://https:${url.pathname}${url.search}`);
else if (r.youtubeFrontend == 'freetube' && details.type !== "main_frame" && r.youtubeEmbedFrontend == "youtube")
else if (isFreetube && params && isFrontendYoutube)
resolve();
else if (
r.youtubeFrontend == 'invidious' ||
((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'invidious' && details.type == "sub_frame")
) {
else if (isInvidious || ((isFreetube || isYatte) && isFrontendInvidious && is_sub_frame)) {
if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; }
if (
r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
!((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'invidious' && details.type === "sub_frame")
) { resolve(); return; }
if (isOnlyEmbeddedVideo && !is_sub_frame) { resolve(); return; }
if (isOnlyNotEmbedded && params && !((isFreetube || isYatte) && isFrontendInvidious && is_sub_frame)) { resolve(); return; }
let instancesList;
if (r.youtubeProtocol == 'normal') instancesList = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects];
@ -158,16 +156,12 @@ function redirect(url, details, initiator) {
let randomInstance = utils.getRandomInstance(instancesList);
resolve(`${randomInstance}${url.pathname}${url.search}`);
} else if (isPiped || ((isFreetube || isYatte) && isFrontendPiped && is_sub_frame)) {
} else if (
r.youtubeFrontend == 'piped' ||
((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'piped' && details.type === "sub_frame")
) {
if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; }
if (isOnlyEmbeddedVideo && !is_sub_frame) { resolve(); return; }
if (
r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
!((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'piped' && details.type == "sub_frame")
isOnlyNotEmbedded && params &&
!((isFreetube || isYatte) && isFrontendPiped && is_sub_frame)
) { resolve(); return; }
let instancesList;
@ -178,12 +172,11 @@ function redirect(url, details, initiator) {
resolve(`${randomInstance}${url.pathname}${url.search}`)
}
else if (r.youtubeFrontend == 'pipedMaterial' ||
((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'pipedMaterial' && details.type === "sub_frame")) {
if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; }
else if (isPipedMaterial || ((isFreetube || isYatte) && isFrontendPipedMaterial && is_sub_frame)) {
if (isOnlyEmbeddedVideo && details.type !== "sub_frame") { resolve(); return; }
if (
r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
!((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'pipedMaterial' && details.type == "sub_frame")
isOnlyNotEmbedded && params &&
!((isFreetube || isYatte) && isFrontendPipedMaterial && is_sub_frame)
) { resolve(); return; }
let instancesList;
@ -371,7 +364,7 @@ function initDefaults() {
})
}
function initInvidiousCookies(from) {
function initInvidiousCookies(test, from) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -389,11 +382,13 @@ function initInvidiousCookies(from) {
...r.invidiousNormalCustomRedirects,
...r.invidiousTorCustomRedirects,
].includes(protocolHost)) { resolve(); 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)
utils.copyCookie('invidious', from, to, 'PREFS');
if (!test) {
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)
utils.copyCookie('invidious', from, to, 'PREFS');
}
resolve(true);
}
)
@ -422,7 +417,7 @@ function setInvidiousCookies() {
)
}
function initPipedLocalStorage(url, tabId) {
function initPipedLocalStorage(test, url, tabId) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -439,13 +434,15 @@ function initPipedLocalStorage(url, tabId) {
...r.pipedTorRedirectsChecks,
...r.pipedTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/get_piped_settings.js",
runAt: "document_start"
}
);
if (!test)
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/get_piped_settings.js",
runAt: "document_start"
}
);
resolve(true);
}
)
@ -485,7 +482,7 @@ function setPipedLocalStorage(url, tabId) {
})
}
function initPipedMaterialLocalStorage(url, tabId) {
function initPipedMaterialLocalStorage(test, url, tabId,) {
return new Promise(resolve => {
browser.storage.local.get(
[
@ -502,13 +499,15 @@ function initPipedMaterialLocalStorage(url, tabId) {
...r.pipedMaterialTorRedirectsChecks,
...r.pipedMaterialTorCustomRedirects,
].includes(protocolHost)) { resolve(); return; }
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
runAt: "document_start"
}
);
if (!test)
browser.tabs.executeScript(
tabId,
{
file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
runAt: "document_start"
}
);
resolve(true);
}
)

View File

@ -84,7 +84,7 @@
<h4>Send Files</h4></a>
<input id="disable-sendTargets" type="checkbox">
</div>
<div class="some-block"><a class="title button" id="change_instance">
<div class="some-block" id="change_instance_div"><a class="title button" id="change_instance">
<svg xmlns="http://www.w3.org/2000/svg" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
<path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"></path>
</svg>

View File

@ -77,18 +77,30 @@ document.addEventListener("change", () => {
});
})
document.getElementById("change_instance").addEventListener("click", utils.switchInstance);
let copyRawElement = document.getElementById('copy_raw');
copyRawElement.addEventListener("click", () => utils.copyRaw(false, copyRawElement));
utils.switchInstance(true).then(r => {
if (!r) document.getElementById("change_instance_div").style.display = 'none';
else document.getElementById("change_instance").addEventListener("click", () => utils.switchInstance(false));
});
utils.copyRaw(true).then(r => {
if (!r) document.getElementById('copy_raw_div').style.display = 'none';
else {
const copy_raw = document.getElementById('copy_raw');
copy_raw.addEventListener("click", () => utils.copyRaw(false, copy_raw));
}
})
utils.unify(true).then(r => {
if (!r) document.getElementById('unify_div').style.display = 'none';
else {
const unify = document.getElementById('unify');
unify.addEventListener("click", () => utils.unify(false, unify));
}
})
utils.copyRaw(true).then(r => { if (!r) document.getElementById('copy_raw_div').style.display = 'none'; })
// utils.unify().then(r => { if (!r) document.getElementById('unify_div').style.display = 'none'; })
document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage());
let unifyElement = document.getElementById('unify');
unifyElement.addEventListener("click", () => utils.unify(unifyElement));
generalHelper.init().then(() => {
let popupFrontends = generalHelper.getPopupFrontends();
for (const frontend of generalHelper.allPopupFrontends)

View File

@ -98,7 +98,7 @@ html(lang="en")
h4 Send Files
input#disable-sendTargets(type="checkbox")
.some-block
#change_instance_div.some-block
a#change_instance.title.button
+change_instance
h4 Change Instance