Supported all frontend preferences #234
This commit is contained in:
parent
5aa8f7a56a
commit
4498e790f6
@ -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"
|
||||
|
@ -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] })
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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'),
|
||||
}
|
||||
)
|
@ -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);
|
||||
}
|
||||
)
|
@ -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);
|
||||
}
|
||||
)
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -0,0 +1,7 @@
|
||||
window.browser = window.browser || window.chrome;
|
||||
|
||||
browser.storage.local.set(
|
||||
{
|
||||
'pipedMaterial_PREFERENCES': localStorage.getItem("PREFERENCES")
|
||||
}
|
||||
)
|
@ -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);
|
||||
}
|
||||
)
|
@ -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,
|
||||
}
|
@ -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));
|
||||
}
|
||||
)
|
@ -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,
|
||||
}
|
@ -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)
|
||||
}
|
||||
)
|
@ -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);
|
||||
}
|
||||
)
|
@ -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,
|
||||
|
@ -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()
|
||||
});
|
||||
);
|
||||
|
@ -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);
|
||||
|
@ -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>
|
@ -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]
|
||||
|
@ -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")
|
||||
//- script(src="../../assets/javascripts/localise.js")
|
Loading…
x
Reference in New Issue
Block a user