From 406eef83e0ca1f5515f094da9e2d0a31aeef8664 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Thu, 10 Mar 2022 14:22:23 +0300 Subject: Added theme support to many frontends #80. Fixed bugs --- src/assets/javascripts/helpers/common.js | 2 +- src/assets/javascripts/helpers/reddit.js | 87 ++++- src/assets/javascripts/helpers/search.js | 78 +++- src/assets/javascripts/helpers/translate.js | 375 ------------------ .../helpers/translate/lingva-preferences.js | 18 + .../javascripts/helpers/translate/translate.js | 418 +++++++++++++++++++++ src/assets/javascripts/helpers/twitter.js | 6 +- src/assets/javascripts/helpers/wikipedia.js | 44 ++- .../helpers/youtube/invidious-preferences.js | 27 -- src/assets/javascripts/helpers/youtube/youtube.js | 2 - src/manifest.json | 2 +- src/pages/background/background.js | 8 +- src/pages/options/translate/translate.js | 2 +- src/pages/popup/popup.js | 2 +- 14 files changed, 616 insertions(+), 455 deletions(-) delete mode 100644 src/assets/javascripts/helpers/translate.js create mode 100644 src/assets/javascripts/helpers/translate/lingva-preferences.js create mode 100644 src/assets/javascripts/helpers/translate/translate.js delete mode 100644 src/assets/javascripts/helpers/youtube/invidious-preferences.js (limited to 'src') diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js index f51bab36..961f5bd6 100644 --- a/src/assets/javascripts/helpers/common.js +++ b/src/assets/javascripts/helpers/common.js @@ -5,7 +5,7 @@ import instagramHelper from "./instagram.js"; import mediumHelper from "./medium.js"; import redditHelper from "./reddit.js"; import searchHelper from "./search.js"; -import translateHelper from "./translate.js"; +import translateHelper from "./translate/translate.js"; import wikipediaHelper from "./wikipedia.js"; function getRandomInstance(instances) { diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 926d79e2..eff5c0e6 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -187,8 +187,49 @@ function setBypassWatchOnReddit(val) { console.log("bypassWatchOnReddit: ", bypassWatchOnReddit) } -let alwaysUsePreferred; +let theme; +let applyThemeToSites; +function initLibredditCookies() { + if (applyThemeToSites && theme != 'DEFAULT') { + let allInstances = [...redirects.libreddit.normal, ...redirects.libreddit.tor, ...libredditNormalCustomRedirects, ...libredditTorCustomRedirects] + let checkedInstances = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects, ...libredditTorRedirectsChecks, ...libredditTorCustomRedirects] + for (const instanceUrl of allInstances) + if (!checkedInstances.includes(instanceUrl)) + browser.cookies.remove({ + url: instanceUrl, + name: "theme", + }) + for (const instanceUrl of checkedInstances) + browser.cookies.set({ + url: instanceUrl, + name: "theme", + value: theme + }) + } +} +function initTedditCookies() { + let themeValue; + if (theme == 'light') themeValue = 'white'; + if (theme == 'dark') themeValue = 'dark'; + if (applyThemeToSites && themeValue) { + let allInstances = [...redirects.teddit.normal, ...redirects.teddit.tor, ...tedditNormalCustomRedirects, ...tedditTorCustomRedirects] + let checkedInstances = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects, ...tedditTorRedirectsChecks, ...tedditTorCustomRedirects] + for (const instanceUrl of allInstances) + if (!checkedInstances.includes(instanceUrl)) + browser.cookies.remove({ + url: instanceUrl, + name: "theme", + }) + for (const instanceUrl of checkedInstances) + browser.cookies.set({ + url: instanceUrl, + name: "theme", + value: themeValue + }) + } +} +let alwaysUsePreferred; // https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4 // https://libreddit.exonip.de/img/4v3t1vgvrzk81.png @@ -201,6 +242,7 @@ let alwaysUsePreferred; // https://v.redd.it/z08avb339n801/DASH_1_2_M // https://i.redd.it/bfkhs659tzk81.jpg + function redirect(url, type, initiator) { if (disableReddit) return null; @@ -381,35 +423,44 @@ async function init() { "tedditTorRedirectsChecks", "tedditTorCustomRedirects", + "theme", + "applyThemeToSites", + "redditProtocol", "bypassWatchOnReddit", "alwaysUsePreferred", - ], (result) => { - disableReddit = result.disableReddit ?? false; - protocol = result.redditProtocol ?? 'normal'; - frontend = result.redditFrontend ?? 'libreddit'; + ], r => { + disableReddit = r.disableReddit ?? false; + protocol = r.redditProtocol ?? 'normal'; + frontend = r.redditFrontend ?? 'libreddit'; - bypassWatchOnReddit = result.bypassWatchOnReddit ?? true; + bypassWatchOnReddit = r.bypassWatchOnReddit ?? true; - alwaysUsePreferred = result.alwaysUsePreferred ?? false; + alwaysUsePreferred = r.alwaysUsePreferred ?? false; redirects.teddit = dataJson.teddit; - if (result.redditRedirects) redirects = result.redditRedirects; + if (r.redditRedirects) redirects = r.redditRedirects; + + if (r.redditRedirects) redirects = r.redditRedirects; - if (result.redditRedirects) redirects = result.redditRedirects; + theme = r.theme ?? 'DEFAULT'; + applyThemeToSites = r.applyThemeToSites ?? false; - libredditNormalRedirectsChecks = result.libredditNormalRedirectsChecks ?? [...redirects.libreddit.normal]; - libredditNormalCustomRedirects = result.libredditNormalCustomRedirects ?? []; + libredditNormalRedirectsChecks = r.libredditNormalRedirectsChecks ?? [...redirects.libreddit.normal]; + libredditNormalCustomRedirects = r.libredditNormalCustomRedirects ?? []; - libredditTorRedirectsChecks = result.libredditTorRedirectsChecks ?? [...redirects.libreddit.tor]; - libredditTorCustomRedirects = result.libredditTorCustomRedirects ?? []; + libredditTorRedirectsChecks = r.libredditTorRedirectsChecks ?? [...redirects.libreddit.tor]; + libredditTorCustomRedirects = r.libredditTorCustomRedirects ?? []; - tedditNormalRedirectsChecks = result.tedditNormalRedirectsChecks ?? [...redirects.teddit.normal]; - tedditNormalCustomRedirects = result.tedditNormalCustomRedirects ?? []; + tedditNormalRedirectsChecks = r.tedditNormalRedirectsChecks ?? [...redirects.teddit.normal]; + tedditNormalCustomRedirects = r.tedditNormalCustomRedirects ?? []; - tedditTorRedirectsChecks = result.tedditTorRedirectsChecks ?? [...redirects.teddit.tor]; - tedditTorCustomRedirects = result.tedditTorCustomRedirects ?? []; + tedditTorRedirectsChecks = r.tedditTorRedirectsChecks ?? [...redirects.teddit.tor]; + tedditTorCustomRedirects = r.tedditTorCustomRedirects ?? []; + + initLibredditCookies(); + initTedditCookies(); resolve(); } @@ -457,6 +508,8 @@ export default { getTedditTorCustomRedirects, setTedditTorCustomRedirects, + initLibredditCookies, + redirect, init, changeInstance, diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js index b90c201c..998589a6 100644 --- a/src/assets/javascripts/helpers/search.js +++ b/src/assets/javascripts/helpers/search.js @@ -3,7 +3,7 @@ window.browser = window.browser || window.chrome; import commonHelper from './common.js' const targets = [ - /^https?:\/\/(www\.|search\.|)google\.com(\...|)(\/search\?q=..*|\/$)/, + /^https?:\/\/(www\.|search\.|)google\.com(\...|)/, /^https?:\/\/libredirect\.onion/ // /^https?:\/\/yandex\.com(\...|)(\/search\/..*|\/$)/, ]; @@ -158,6 +158,41 @@ function setProtocol(val) { console.log("searchProtocol: ", val) } +let theme; +let applyThemeToSites; +function initSearxCookies() { + let themeValue; + if (theme == 'light') themeValue = 'logicodev'; + if (theme == 'dark') themeValue = 'logicodev-dark'; + if (applyThemeToSites && themeValue) { + let allInstances = [...redirects.searx.normal, ...redirects.searx.tor, ...searxNormalCustomRedirects, ...searxTorCustomRedirects] + let checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects, ...searxTorRedirectsChecks, ...searxTorCustomRedirects] + for (const instanceUrl of allInstances) + if (!checkedInstances.includes(instanceUrl)) { + browser.cookies.remove({ + url: instanceUrl, + name: "oscar-style", + }) + browser.cookies.remove({ + url: instanceUrl, + name: "oscar", + }) + } + for (const instanceUrl of checkedInstances) { + browser.cookies.set({ + url: instanceUrl, + name: "oscar-style", + value: themeValue + }) + browser.cookies.set({ + url: instanceUrl, + name: "theme", + value: 'oscar' + }) + } + } +} + function redirect(url) { if (disable) return; if (!targets.some((rx) => rx.test(url.href))) return; @@ -184,13 +219,12 @@ function redirect(url) { randomInstance = redirects.startpage.normal; path = "/do/search"; } + if (url.pathname == '/') path = '/'; let searchQuery = ""; - url.search.slice(1).split("&").forEach((input) => { - if (input.startsWith("q=")) searchQuery = input; - }); + if (url.searchParams.has('q')) searchQuery = `?q=${url.searchParams.get('q')}`; - return `${randomInstance}${path}?${searchQuery}`; + return `${randomInstance}${path}${searchQuery}`; } function changeInstance(url) { @@ -254,30 +288,38 @@ async function init() { "searxTorRedirectsChecks", "searxTorCustomRedirects", + "theme", + "applyThemeToSites", + "searchProtocol", ], - (result) => { - disable = result.disableSearch ?? false; + r => { + disable = r.disableSearch ?? false; - protocol = result.searchProtocol ?? 'normal'; + protocol = r.searchProtocol ?? 'normal'; - frontend = result.searchFrontend ?? 'searx'; + frontend = r.searchFrontend ?? 'searx'; + + theme = r.theme ?? 'DEFAULT'; + applyThemeToSites = r.applyThemeToSites ?? false; redirects.searx = dataJson.searx; redirects.whoogle = dataJson.whoogle; - if (result.searchRedirects) redirects = result.searchRedirects; + if (r.searchRedirects) redirects = r.searchRedirects; + + whoogleNormalRedirectsChecks = r.whoogleNormalRedirectsChecks ?? [...redirects.whoogle.normal]; + whoogleNormalCustomRedirects = r.whoogleNormalCustomRedirects ?? []; - whoogleNormalRedirectsChecks = result.whoogleNormalRedirectsChecks ?? [...redirects.whoogle.normal]; - whoogleNormalCustomRedirects = result.whoogleNormalCustomRedirects ?? []; + whoogleTorRedirectsChecks = r.whoogleTorRedirectsChecks ?? [...redirects.whoogle.tor]; + whoogleTorCustomRedirects = r.whoogleTorCustomRedirects ?? []; - whoogleTorRedirectsChecks = result.whoogleTorRedirectsChecks ?? [...redirects.whoogle.tor]; - whoogleTorCustomRedirects = result.whoogleTorCustomRedirects ?? []; + searxNormalRedirectsChecks = r.searxNormalRedirectsChecks ?? [...redirects.searx.normal]; + searxNormalCustomRedirects = r.searxNormalCustomRedirects ?? []; - searxNormalRedirectsChecks = result.searxNormalRedirectsChecks ?? [...redirects.searx.normal]; - searxNormalCustomRedirects = result.searxNormalCustomRedirects ?? []; + searxTorRedirectsChecks = r.searxTorRedirectsChecks ?? [...redirects.searx.tor]; + searxTorCustomRedirects = r.searxTorCustomRedirects ?? []; - searxTorRedirectsChecks = result.searxTorRedirectsChecks ?? [...redirects.searx.tor]; - searxTorCustomRedirects = result.searxTorCustomRedirects ?? []; + initSearxCookies() resolve(); } diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js deleted file mode 100644 index de70657f..00000000 --- a/src/assets/javascripts/helpers/translate.js +++ /dev/null @@ -1,375 +0,0 @@ -window.browser = window.browser || window.chrome; - -import commonHelper from './common.js' - -const targets = [ - "translate.google.com", - "translate.google.no" -]; - -let redirects = { - "simplyTranslate": { - "normal": [], - "tor": [] - }, - - "lingva": { - "normal": [], - "tor": [] - } - -}; - -const getRedirects = () => redirects; -const getCustomRedirects = function () { - return { - "simplyTranslate": { - "normal": [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects], - "tor": [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects] - }, - "lingva": { - "normal": [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects], - "tor": [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects] - } - }; -}; - -function setSimplyTranslateRedirects(val) { - redirects.simplyTranslate = val; - browser.storage.local.set({ translateRedirects: redirects }) - console.log("simplyTranslateRedirects:", val) - for (const item of simplyTranslateNormalRedirectsChecks) - if (!redirects.simplyTranslate.normal.includes(item)) { - var index = simplyTranslateNormalRedirectsChecks.indexOf(item); - if (index !== -1) simplyTranslateNormalRedirectsChecks.splice(index, 1); - } - setSimplyTranslateNormalRedirectsChecks(simplyTranslateNormalRedirectsChecks); - - for (const item of simplyTranslateTorRedirectsChecks) - if (!redirects.simplyTranslate.normal.includes(item)) { - var index = simplyTranslateTorRedirectsChecks.indexOf(item); - if (index !== -1) simplyTranslateTorRedirectsChecks.splice(index, 1); - } - setSimplyTranslateTorRedirectsChecks(simplyTranslateTorRedirectsChecks); -} - -let simplyTranslateNormalRedirectsChecks; -const getSimplyTranslateNormalRedirectsChecks = () => simplyTranslateNormalRedirectsChecks; -function setSimplyTranslateNormalRedirectsChecks(val) { - simplyTranslateNormalRedirectsChecks = val; - browser.storage.local.set({ simplyTranslateNormalRedirectsChecks }) - console.log("simplyTranslateNormalRedirectsChecks: ", val) -} - -let simplyTranslateTorRedirectsChecks; -const getSimplyTranslateTorRedirectsChecks = () => simplyTranslateTorRedirectsChecks; -function setSimplyTranslateTorRedirectsChecks(val) { - simplyTranslateTorRedirectsChecks = val; - browser.storage.local.set({ simplyTranslateTorRedirectsChecks }) - console.log("simplyTranslateTorRedirectsChecks: ", val) -} - -let simplyTranslateNormalCustomRedirects = []; -const getSimplyTranslateNormalCustomRedirects = () => simplyTranslateNormalCustomRedirects; -function setSimplyTranslateNormalCustomRedirects(val) { - simplyTranslateNormalCustomRedirects = val; - browser.storage.local.set({ simplyTranslateNormalCustomRedirects }) - console.log("simplyTranslateNormalCustomRedirects: ", val) -} - -let simplyTranslateTorCustomRedirects = []; -const getSimplyTranslateTorCustomRedirects = () => simplyTranslateTorCustomRedirects; -function setSimplyTranslateTorCustomRedirects(val) { - simplyTranslateTorCustomRedirects = val; - browser.storage.local.set({ simplyTranslateTorCustomRedirects }) - console.log("simplyTranslateTorCustomRedirects: ", val) -} - -function setLingvaRedirects(val) { - redirects.lingva = val; - browser.storage.local.set({ translateRedirects: redirects }) - console.log("lingvaRedirects:", val) - for (const item of lingvaNormalRedirectsChecks) - if (!redirects.lingva.normal.includes(item)) { - var index = lingvaNormalRedirectsChecks.indexOf(item); - if (index !== -1) lingvaNormalRedirectsChecks.splice(index, 1); - } - setLingvaNormalRedirectsChecks(lingvaNormalRedirectsChecks); - - for (const item of lingvaTorRedirectsChecks) - if (!redirects.lingva.normal.includes(item)) { - var index = lingvaTorRedirectsChecks.indexOf(item); - if (index !== -1) lingvaTorRedirectsChecks.splice(index, 1); - } - setLingvaTorRedirectsChecks(lingvaTorRedirectsChecks); -} - -let lingvaNormalRedirectsChecks; -const getLingvaNormalRedirectsChecks = () => lingvaNormalRedirectsChecks; -function setLingvaNormalRedirectsChecks(val) { - lingvaNormalRedirectsChecks = val; - browser.storage.local.set({ lingvaNormalRedirectsChecks }) - console.log("lingvaNormalRedirectsChecks: ", val) -} - -let lingvaTorRedirectsChecks; -const getLingvaTorRedirectsChecks = () => lingvaTorRedirectsChecks; -function setLingvaTorRedirectsChecks(val) { - lingvaTorRedirectsChecks = val; - browser.storage.local.set({ lingvaTorRedirectsChecks }) - console.log("lingvaTorRedirectsChecks: ", val) -} - -let lingvaNormalCustomRedirects = []; -const getLingvaNormalCustomRedirects = () => lingvaNormalCustomRedirects; -function setLingvaNormalCustomRedirects(val) { - lingvaNormalCustomRedirects = val; - browser.storage.local.set({ lingvaNormalCustomRedirects }) - console.log("lingvaNormalCustomRedirects: ", val) -} - -let lingvaTorCustomRedirects = []; -const getLingvaTorCustomRedirects = () => lingvaTorCustomRedirects; -function setLingvaTorCustomRedirects(val) { - lingvaTorCustomRedirects = val; - browser.storage.local.set({ lingvaTorCustomRedirects }) - console.log("lingvaTorCustomRedirects: ", val) -} - -let disable; -const getDisable = () => disable; -function setDisable(val) { - disable = val; - browser.storage.local.set({ translateDisable: disable }) - console.log("disable: ", disable) -} - -let frontend; -const getFrontend = () => frontend; -function setFrontend(val) { - frontend = val; - browser.storage.local.set({ translateFrontend: frontend }) - console.log("translateFrontend: ", frontend) -} - -let protocol; -const getProtocol = () => protocol; -function setProtocol(val) { - protocol = val; - browser.storage.local.set({ translateProtocol: val }) - console.log("translateProtocol: ", val) -} - -let from; -const getFrom = () => from; -function setFrom(val) { - from = val; - browser.storage.local.set({ translateFrom: from }) - console.log("from: ", from) -} - -let to; -const getTo = () => to; -function setTo(val) { - to = val; - browser.storage.local.set({ translateTo: to }) - console.log("to: ", to) -} - -let simplyTranslateEngine; -const getSimplyTranslateEngine = () => simplyTranslateEngine; -function setSimplyTranslateEngine(val) { - simplyTranslateEngine = val; - browser.storage.local.set({ simplyTranslateEngine: val }) - console.log("simplyTranslateEngine: ", val) -} - -function isTranslate(url, initiator) { - if (disable) return false; - return targets.includes(url.host) -} - -function redirect(url) { - let params_arr = url.search.split('&'); - params_arr[0] = params_arr[0].substring(1); - let myMap = {}; - for (let i = 0; i < params_arr.length; i++) { - let pair = params_arr[i].split('='); - myMap[pair[0]] = pair[1]; - } - if (frontend == 'simplyTranslate') { - let instancesList; - if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]; - if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]; - if (instancesList.length === 0) return null; - let randomInstance = commonHelper.getRandomInstance(instancesList) - - if (myMap.sl && myMap.tl && myMap.text) - return `${randomInstance}/${url.search}`; - else { - if (from != "DEFAULT") url.searchParams.append("sl", from); - if (to != "DEFAULT") url.searchParams.append("tl", to); - if (simplyTranslateEngine != "DEFAULT") url.searchParams.append("engine", simplyTranslateEngine); - return `${randomInstance}/${url.search}` - } - - - } - else if (frontend == 'lingva') { - let instancesList; - if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]; - if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]; - if (instancesList.length === 0) return null; - let randomInstance = commonHelper.getRandomInstance(instancesList) - - if (myMap.sl && myMap.tl && myMap.text) - return `${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`; - else - return randomInstance; - } -} - -function changeInstance(url) { - let protocolHost = `${url.protocol}//${url.host}`; - - let translateList = [ - ...redirects.simplyTranslate.normal, - ...redirects.simplyTranslate.tor, - - ...simplyTranslateNormalCustomRedirects, - ...simplyTranslateTorCustomRedirects, - - ...redirects.lingva.normal, - ...redirects.lingva.tor, - - ...lingvaNormalCustomRedirects, - ...lingvaTorCustomRedirects, - ] - - if (!translateList.includes(protocolHost)) return null; - - let instancesList; - if (frontend == 'simplyTranslate') { - if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]; - else if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]; - } - else if (frontend == 'lingva') { - if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]; - else if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]; - } - - console.log("instancesList", instancesList); - let index = instancesList.indexOf(protocolHost); - if (index > -1) instancesList.splice(index, 1); - - if (instancesList.length === 0) return null; - - let randomInstance = commonHelper.getRandomInstance(instancesList); - return `${randomInstance}${url.pathname}${url.search}`; -} - -async function init() { - return new Promise((resolve) => { - fetch('/instances/data.json').then(response => response.text()).then(data => { - let dataJson = JSON.parse(data); - browser.storage.local.get( - [ - "translateDisable", - "translateFrontend", - "translateProtocol", - "translateRedirects", - - "simplyTranslateNormalRedirectsChecks", - "simplyTranslateNormalCustomRedirects", - "simplyTranslateTorRedirectsChecks", - "simplyTranslateTorCustomRedirects", - - "lingvaNormalRedirectsChecks", - "lingvaNormalCustomRedirects", - "lingvaTorRedirectsChecks", - "lingvaTorCustomRedirects", - - "translateFrom", - "translateTo", - "simplyTranslateEngine", - ], - (result) => { - disable = result.translateDisable ?? false; - frontend = result.translateFrontend ?? "simplyTranslate"; - protocol = result.translateProtocol ?? 'normal'; - - from = result.translateFrom ?? "DEFAULT"; - to = result.translateTo ?? 'DEFAULT'; - simplyTranslateEngine = result.simplyTranslateEngine ?? 'DEFAULT'; - - redirects.simplyTranslate = dataJson.simplyTranslate; - redirects.lingva = dataJson.lingva; - if (result.translateRedirects) redirects = result.translateRedirects; - - simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks ?? [...redirects.simplyTranslate.normal]; - simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects ?? []; - - simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks ?? [...redirects.simplyTranslate.tor]; - simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects ?? []; - - lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks ?? [...redirects.lingva.normal]; - lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects ?? []; - - lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks ?? [...redirects.lingva.tor]; - lingvaTorCustomRedirects = result.lingvaTorCustomRedirects ?? []; - - resolve(); - }); - }); - }); -} - -export default { - getRedirects, - getCustomRedirects, - setSimplyTranslateRedirects, - setLingvaRedirects, - - isTranslate, - - getDisable, - setDisable, - - getFrontend, - setFrontend, - - getProtocol, - setProtocol, - - getFrom, - setFrom, - getTo, - setTo, - - getSimplyTranslateEngine, - setSimplyTranslateEngine, - - getSimplyTranslateNormalRedirectsChecks, - setSimplyTranslateNormalRedirectsChecks, - getSimplyTranslateTorRedirectsChecks, - setSimplyTranslateTorRedirectsChecks, - - getSimplyTranslateNormalCustomRedirects, - setSimplyTranslateNormalCustomRedirects, - getSimplyTranslateTorCustomRedirects, - setSimplyTranslateTorCustomRedirects, - - getLingvaNormalRedirectsChecks, - setLingvaNormalRedirectsChecks, - getLingvaTorRedirectsChecks, - setLingvaTorRedirectsChecks, - - getLingvaNormalCustomRedirects, - setLingvaNormalCustomRedirects, - getLingvaTorCustomRedirects, - setLingvaTorCustomRedirects, - - redirect, - init, - changeInstance, -}; diff --git a/src/assets/javascripts/helpers/translate/lingva-preferences.js b/src/assets/javascripts/helpers/translate/lingva-preferences.js new file mode 100644 index 00000000..1cf08f65 --- /dev/null +++ b/src/assets/javascripts/helpers/translate/lingva-preferences.js @@ -0,0 +1,18 @@ +window.browser = window.browser || window.chrome; + +browser.storage.local.get( + [ + "theme", + "applyThemeToSites", + ], + r => { + let applyThemeToSites = r.applyThemeToSites ?? false; + let theme = r.theme ?? "DEFAULT"; + + if (applyThemeToSites && theme != "DEFAULT") localStorage.setItem("chakra-ui-color-mode", r.theme); + } +) + +window.onunload = () => { + localStorage.removeItem("chakra-ui-color-mode"); +}; diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js new file mode 100644 index 00000000..f47ee82b --- /dev/null +++ b/src/assets/javascripts/helpers/translate/translate.js @@ -0,0 +1,418 @@ +window.browser = window.browser || window.chrome; + +import commonHelper from '../common.js' + +const targets = [ + "translate.google.com", + "translate.google.no" +]; + +let redirects = { + "simplyTranslate": { + "normal": [], + "tor": [] + }, + + "lingva": { + "normal": [], + "tor": [] + } + +}; + +const getRedirects = () => redirects; +const getCustomRedirects = function () { + return { + "simplyTranslate": { + "normal": [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects], + "tor": [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects] + }, + "lingva": { + "normal": [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects], + "tor": [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects] + } + }; +}; + +function setSimplyTranslateRedirects(val) { + redirects.simplyTranslate = val; + browser.storage.local.set({ translateRedirects: redirects }) + console.log("simplyTranslateRedirects:", val) + for (const item of simplyTranslateNormalRedirectsChecks) + if (!redirects.simplyTranslate.normal.includes(item)) { + var index = simplyTranslateNormalRedirectsChecks.indexOf(item); + if (index !== -1) simplyTranslateNormalRedirectsChecks.splice(index, 1); + } + setSimplyTranslateNormalRedirectsChecks(simplyTranslateNormalRedirectsChecks); + + for (const item of simplyTranslateTorRedirectsChecks) + if (!redirects.simplyTranslate.normal.includes(item)) { + var index = simplyTranslateTorRedirectsChecks.indexOf(item); + if (index !== -1) simplyTranslateTorRedirectsChecks.splice(index, 1); + } + setSimplyTranslateTorRedirectsChecks(simplyTranslateTorRedirectsChecks); +} + +let simplyTranslateNormalRedirectsChecks; +const getSimplyTranslateNormalRedirectsChecks = () => simplyTranslateNormalRedirectsChecks; +function setSimplyTranslateNormalRedirectsChecks(val) { + simplyTranslateNormalRedirectsChecks = val; + browser.storage.local.set({ simplyTranslateNormalRedirectsChecks }) + console.log("simplyTranslateNormalRedirectsChecks: ", val) +} + +let simplyTranslateTorRedirectsChecks; +const getSimplyTranslateTorRedirectsChecks = () => simplyTranslateTorRedirectsChecks; +function setSimplyTranslateTorRedirectsChecks(val) { + simplyTranslateTorRedirectsChecks = val; + browser.storage.local.set({ simplyTranslateTorRedirectsChecks }) + console.log("simplyTranslateTorRedirectsChecks: ", val) +} + +let simplyTranslateNormalCustomRedirects = []; +const getSimplyTranslateNormalCustomRedirects = () => simplyTranslateNormalCustomRedirects; +function setSimplyTranslateNormalCustomRedirects(val) { + simplyTranslateNormalCustomRedirects = val; + browser.storage.local.set({ simplyTranslateNormalCustomRedirects }) + console.log("simplyTranslateNormalCustomRedirects: ", val) +} + +let simplyTranslateTorCustomRedirects = []; +const getSimplyTranslateTorCustomRedirects = () => simplyTranslateTorCustomRedirects; +function setSimplyTranslateTorCustomRedirects(val) { + simplyTranslateTorCustomRedirects = val; + browser.storage.local.set({ simplyTranslateTorCustomRedirects }) + console.log("simplyTranslateTorCustomRedirects: ", val) +} + +function setLingvaRedirects(val) { + redirects.lingva = val; + browser.storage.local.set({ translateRedirects: redirects }) + console.log("lingvaRedirects:", val) + for (const item of lingvaNormalRedirectsChecks) + if (!redirects.lingva.normal.includes(item)) { + var index = lingvaNormalRedirectsChecks.indexOf(item); + if (index !== -1) lingvaNormalRedirectsChecks.splice(index, 1); + } + setLingvaNormalRedirectsChecks(lingvaNormalRedirectsChecks); + + for (const item of lingvaTorRedirectsChecks) + if (!redirects.lingva.normal.includes(item)) { + var index = lingvaTorRedirectsChecks.indexOf(item); + if (index !== -1) lingvaTorRedirectsChecks.splice(index, 1); + } + setLingvaTorRedirectsChecks(lingvaTorRedirectsChecks); +} + +let lingvaNormalRedirectsChecks; +const getLingvaNormalRedirectsChecks = () => lingvaNormalRedirectsChecks; +function setLingvaNormalRedirectsChecks(val) { + lingvaNormalRedirectsChecks = val; + browser.storage.local.set({ lingvaNormalRedirectsChecks }) + console.log("lingvaNormalRedirectsChecks: ", val) +} + +let lingvaTorRedirectsChecks; +const getLingvaTorRedirectsChecks = () => lingvaTorRedirectsChecks; +function setLingvaTorRedirectsChecks(val) { + lingvaTorRedirectsChecks = val; + browser.storage.local.set({ lingvaTorRedirectsChecks }) + console.log("lingvaTorRedirectsChecks: ", val) +} + +let lingvaNormalCustomRedirects = []; +const getLingvaNormalCustomRedirects = () => lingvaNormalCustomRedirects; +function setLingvaNormalCustomRedirects(val) { + lingvaNormalCustomRedirects = val; + browser.storage.local.set({ lingvaNormalCustomRedirects }) + console.log("lingvaNormalCustomRedirects: ", val) +} + +let lingvaTorCustomRedirects = []; +const getLingvaTorCustomRedirects = () => lingvaTorCustomRedirects; +function setLingvaTorCustomRedirects(val) { + lingvaTorCustomRedirects = val; + browser.storage.local.set({ lingvaTorCustomRedirects }) + console.log("lingvaTorCustomRedirects: ", val) +} + +let disable; +const getDisable = () => disable; +function setDisable(val) { + disable = val; + browser.storage.local.set({ translateDisable: disable }) + console.log("disable: ", disable) +} + +let frontend; +const getFrontend = () => frontend; +function setFrontend(val) { + frontend = val; + browser.storage.local.set({ translateFrontend: frontend }) + console.log("translateFrontend: ", frontend) +} + +let protocol; +const getProtocol = () => protocol; +function setProtocol(val) { + protocol = val; + browser.storage.local.set({ translateProtocol: val }) + console.log("translateProtocol: ", val) +} + +let from; +const getFrom = () => from; +function setFrom(val) { + from = val; + browser.storage.local.set({ translateFrom: from }) + console.log("from: ", from) +} + +let to; +const getTo = () => to; +function setTo(val) { + to = val; + browser.storage.local.set({ translateTo: to }) + console.log("to: ", to) +} + +let simplyTranslateEngine; +const getSimplyTranslateEngine = () => simplyTranslateEngine; +function setSimplyTranslateEngine(val) { + simplyTranslateEngine = val; + browser.storage.local.set({ simplyTranslateEngine: val }) + console.log("simplyTranslateEngine: ", val) +} + + +function isTranslateRedirects(url, type, frontend) { + let protocolHost = `${url.protocol}//${url.host}`; + + if (type !== "main_frame") return false; + + if (frontend == 'simplyTranslate') + return [ + ...redirects.simplyTranslate.normal, + ...redirects.simplyTranslate.tor, + ...simplyTranslateNormalCustomRedirects, + ...simplyTranslateTorCustomRedirects, + ].includes(protocolHost); + + if (frontend == 'lingva') + return [ + ...redirects.lingva.normal, + ...redirects.lingva.tor, + ...lingvaNormalCustomRedirects, + ...lingvaTorCustomRedirects, + ].includes(protocolHost); + + return [ + ...redirects.simplyTranslate.normal, + ...redirects.simplyTranslate.tor, + ...simplyTranslateNormalCustomRedirects, + ...simplyTranslateTorCustomRedirects, + + ...redirects.lingva.normal, + ...redirects.lingva.tor, + ...lingvaNormalCustomRedirects, + ...lingvaTorCustomRedirects, + ].includes(protocolHost); +} + +function initLingvaLocalStorage(tabId) { + browser.tabs.executeScript( + tabId, + { + file: "/assets/javascripts/helpers/translate/lingva-preferences.js", + runAt: "document_start" + } + ); +} + +function redirect(url) { + + if (disable) return; + if (!targets.includes(url.host)) return + + let params_arr = url.search.split('&'); + params_arr[0] = params_arr[0].substring(1); + let myMap = {}; + for (let i = 0; i < params_arr.length; i++) { + let pair = params_arr[i].split('='); + myMap[pair[0]] = pair[1]; + } + if (frontend == 'simplyTranslate') { + let instancesList; + if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]; + if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]; + if (instancesList.length === 0) return null; + let randomInstance = commonHelper.getRandomInstance(instancesList) + + if (myMap.sl && myMap.tl && myMap.text) + return `${randomInstance}/${url.search}`; + else { + if (from != "DEFAULT") url.searchParams.append("sl", from); + if (to != "DEFAULT") url.searchParams.append("tl", to); + if (simplyTranslateEngine != "DEFAULT") url.searchParams.append("engine", simplyTranslateEngine); + return `${randomInstance}/${url.search}` + } + } + else if (frontend == 'lingva') { + let instancesList; + if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]; + if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]; + if (instancesList.length === 0) return null; + let randomInstance = commonHelper.getRandomInstance(instancesList) + + if (myMap.sl && myMap.tl && myMap.text) + return `${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`; + else + return randomInstance; + } +} + +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let translateList = [ + ...redirects.simplyTranslate.normal, + ...redirects.simplyTranslate.tor, + + ...simplyTranslateNormalCustomRedirects, + ...simplyTranslateTorCustomRedirects, + + ...redirects.lingva.normal, + ...redirects.lingva.tor, + + ...lingvaNormalCustomRedirects, + ...lingvaTorCustomRedirects, + ] + + if (!translateList.includes(protocolHost)) return null; + + let instancesList; + if (frontend == 'simplyTranslate') { + if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]; + } + else if (frontend == 'lingva') { + if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]; + } + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return `${randomInstance}${url.pathname}${url.search}`; +} + +async function init() { + return new Promise((resolve) => { + fetch('/instances/data.json').then(response => response.text()).then(data => { + let dataJson = JSON.parse(data); + browser.storage.local.get( + [ + "translateDisable", + "translateFrontend", + "translateProtocol", + "translateRedirects", + + "simplyTranslateNormalRedirectsChecks", + "simplyTranslateNormalCustomRedirects", + "simplyTranslateTorRedirectsChecks", + "simplyTranslateTorCustomRedirects", + + "lingvaNormalRedirectsChecks", + "lingvaNormalCustomRedirects", + "lingvaTorRedirectsChecks", + "lingvaTorCustomRedirects", + + "translateFrom", + "translateTo", + "simplyTranslateEngine", + ], + (result) => { + disable = result.translateDisable ?? false; + frontend = result.translateFrontend ?? "simplyTranslate"; + protocol = result.translateProtocol ?? 'normal'; + + from = result.translateFrom ?? "DEFAULT"; + to = result.translateTo ?? 'DEFAULT'; + simplyTranslateEngine = result.simplyTranslateEngine ?? 'DEFAULT'; + + redirects.simplyTranslate = dataJson.simplyTranslate; + redirects.lingva = dataJson.lingva; + if (result.translateRedirects) redirects = result.translateRedirects; + + simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks ?? [...redirects.simplyTranslate.normal]; + simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects ?? []; + + simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks ?? [...redirects.simplyTranslate.tor]; + simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects ?? []; + + lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks ?? [...redirects.lingva.normal]; + lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects ?? []; + + lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks ?? [...redirects.lingva.tor]; + lingvaTorCustomRedirects = result.lingvaTorCustomRedirects ?? []; + + resolve(); + }); + }); + }); +} + +export default { + getRedirects, + getCustomRedirects, + setSimplyTranslateRedirects, + setLingvaRedirects, + + getDisable, + setDisable, + + getFrontend, + setFrontend, + + getProtocol, + setProtocol, + + getFrom, + setFrom, + getTo, + setTo, + + getSimplyTranslateEngine, + setSimplyTranslateEngine, + + getSimplyTranslateNormalRedirectsChecks, + setSimplyTranslateNormalRedirectsChecks, + getSimplyTranslateTorRedirectsChecks, + setSimplyTranslateTorRedirectsChecks, + + getSimplyTranslateNormalCustomRedirects, + setSimplyTranslateNormalCustomRedirects, + getSimplyTranslateTorCustomRedirects, + setSimplyTranslateTorCustomRedirects, + + getLingvaNormalRedirectsChecks, + setLingvaNormalRedirectsChecks, + getLingvaTorRedirectsChecks, + setLingvaTorRedirectsChecks, + + getLingvaNormalCustomRedirects, + setLingvaNormalCustomRedirects, + getLingvaTorCustomRedirects, + setLingvaTorCustomRedirects, + + isTranslateRedirects, + initLingvaLocalStorage, + + redirect, + init, + changeInstance, +}; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index ba301ad4..64868bbf 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -203,11 +203,11 @@ function initNitterCookies() { let themeValue; if (theme == 'light') themeValue = 'Twitter'; if (theme == 'dark') themeValue = 'Twitter Dark'; - if (applyThemeToSites && themeValue != 'DEFAULT') { + if (applyThemeToSites && themeValue) { let allInstances = [...redirects.nitter.normal, ...redirects.nitter.tor, ...nitterNormalCustomRedirects, ...nitterTorCustomRedirects] let checkedInstances = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects, ...nitterTorRedirectsChecks, ...nitterTorCustomRedirects] - for (const item of allInstances) - if (!checkedInstances.includes(item)) + for (const instanceUrl of allInstances) + if (!checkedInstances.includes(instanceUrl)) browser.cookies.remove({ url: instanceUrl, name: "theme", diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js index 12171625..fbe65748 100644 --- a/src/assets/javascripts/helpers/wikipedia.js +++ b/src/assets/javascripts/helpers/wikipedia.js @@ -95,12 +95,36 @@ function setWikilessTorCustomRedirects(val) { console.log("wikilessTorCustomRedirects: ", val) } -function isWikipedia(url, initiator) { - if (disable) return false; - return targets.test(url.href); +let theme; +let applyThemeToSites; +function initWikilessCookies() { + console.log("applyThemeToSites", applyThemeToSites) + let themeValue; + if (theme == 'light') themeValue = 'white'; + if (theme == 'dark') themeValue = 'dark'; + console.log("themeValue", themeValue) + if (applyThemeToSites && themeValue) { + let allInstances = [...redirects.wikiless.normal, ...redirects.wikiless.tor, ...wikilessNormalCustomRedirects, ...wikilessTorCustomRedirects] + let checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects, ...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects] + for (const instanceUrl of allInstances) + if (!checkedInstances.includes(instanceUrl)) + browser.cookies.remove({ + url: instanceUrl, + name: "theme", + }) + for (const instanceUrl of checkedInstances) + browser.cookies.set({ + url: instanceUrl, + name: "theme", + value: themeValue + }) + } } function redirect(url) { + if (disable) return; + if (!targets.test(url.href)) return; + let GETArguments = []; if (url.search.length > 0) { let search = url.search.substring(1); //get rid of '?' @@ -172,7 +196,11 @@ async function init() { "wikilessTorRedirectsChecks", "wikilessNormalCustomRedirects", "wikilessTorCustomRedirects", - "wikipediaProtocol" + "wikipediaProtocol", + + "theme", + "applyThemeToSites", + ], r => { // r = result disable = r.disableWikipedia ?? false; @@ -187,6 +215,11 @@ async function init() { wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks ?? [...redirects.wikiless.tor]; wikilessTorCustomRedirects = r.wikilessTorCustomRedirects ?? []; + theme = r.theme ?? 'DEFAULT'; + applyThemeToSites = r.applyThemeToSites ?? false; + + initWikilessCookies(); + resolve(); } ); @@ -215,8 +248,9 @@ export default { getWikilessTorCustomRedirects, setWikilessTorCustomRedirects, + initWikilessCookies, + redirect, - isWikipedia, init, changeInstance, }; diff --git a/src/assets/javascripts/helpers/youtube/invidious-preferences.js b/src/assets/javascripts/helpers/youtube/invidious-preferences.js deleted file mode 100644 index b25900b8..00000000 --- a/src/assets/javascripts/helpers/youtube/invidious-preferences.js +++ /dev/null @@ -1,27 +0,0 @@ -window.browser = window.browser || window.chrome; - -function getCookie() { - for (const c of document.cookie.split(";")) { - while (c.charAt(0) == " ") c = c.substring(1, c.length); - if (c.indexOf("PREFS=") == 0) - return JSON.parse( - decodeURIComponent(c.substring("PREFS=".length, c.length)) - ); - } - return {}; -} - -browser.storage.local.get( - [ - "invidiousAlwaysProxy", - "invidiousSubtitles", - "invidiousPlayerStyle", - "youtubeVolume", - "youtubeAutoplay", - "OnlyEmbeddedVideo", - "theme", - "invidiousVideoQuality", - ], - r => { - } -) diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 0ab77df6..760cb675 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -559,8 +559,6 @@ function initPipedMaterialLocalStorage(tabId) { let applyThemeToSites; function initInvidiousCookies() { - console.log("initInvidiousCookies"); - let prefs = {}; if (invidiousAlwaysProxy != "DEFAULT") prefs.local = invidiousAlwaysProxy == 'true'; if (invidiousVideoQuality != "DEFAULT") prefs.quality = invidiousVideoQuality; diff --git a/src/manifest.json b/src/manifest.json index 1e7c49f5..b6392b49 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -38,7 +38,7 @@ }, "web_accessible_resources": [ "assets/javascripts/helpers/youtube/piped-preferences.js", - "assets/javascripts/helpers/youtube/pipedMaterial-preferences.js" + "/assets/javascripts/helpers/translate/lingva-preferences.js" ], "chrome_settings_overrides": { "homepage": "https://libredirect.onion", diff --git a/src/pages/background/background.js b/src/pages/background/background.js index d019fa28..1822f2b9 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -5,7 +5,7 @@ import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; import redditHelper from "../../assets/javascripts/helpers/reddit.js"; import searchHelper from "../../assets/javascripts/helpers/search.js"; -import translateHelper from "../../assets/javascripts/helpers/translate.js"; +import translateHelper from "../../assets/javascripts/helpers/translate/translate.js"; import mapsHelper from "../../assets/javascripts/helpers/maps.js"; import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; import mediumHelper from "../../assets/javascripts/helpers/medium.js"; @@ -74,11 +74,11 @@ browser.webRequest.onBeforeRequest.addListener( if (!newUrl) newUrl = sendTargetsHelper.redirect(url, details.type, initiator); - if (translateHelper.isTranslate(url, initiator)) newUrl = translateHelper.redirect(url); + if (!newUrl) newUrl = translateHelper.redirect(url); if (!newUrl) newUrl = searchHelper.redirect(url) - if (wikipediaHelper.isWikipedia(url, initiator)) newUrl = wikipediaHelper.redirect(url); + if (!newUrl) newUrl = wikipediaHelper.redirect(url); if (generalHelper.isException(url, initiator)) newUrl = null; @@ -115,7 +115,6 @@ browser.tabs.onRemoved.addListener((tabId) => { browser.webRequest.onResponseStarted.addListener( details => { - console.log("onResponseStarted"); let autoRedirect = generalHelper.getAutoRedirect(); if (!autoRedirect) return null; @@ -158,6 +157,7 @@ browser.tabs.onUpdated.addListener( try { url = new URL(changeInfo.url); } catch (_) { return } if (youtubeHelper.isPipedorInvidious(url, 'main_frame', 'piped')) youtubeHelper.initPipedLocalStorage(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); }); \ No newline at end of file diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js index 215fc71b..d1df35ab 100644 --- a/src/pages/options/translate/translate.js +++ b/src/pages/options/translate/translate.js @@ -1,4 +1,4 @@ -import translateHelper from "../../../assets/javascripts/helpers/translate.js"; +import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; let disableElement = document.getElementById("disable-simplyTranslate"); diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index d03809ec..3b4f4161 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -9,7 +9,7 @@ import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; import mapsHelper from "../../assets/javascripts/helpers/maps.js"; import redditHelper from "../../assets/javascripts/helpers/reddit.js"; import searchHelper from "../../assets/javascripts/helpers/search.js"; -import translateHelper from "../../assets/javascripts/helpers/translate.js"; +import translateHelper from "../../assets/javascripts/helpers/translate/translate.js"; import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; import mediumHelper from "../../assets/javascripts/helpers/medium.js"; import imgurHelper from "../../assets/javascripts/helpers/imgur.js"; -- cgit 1.4.1