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