diff options
Diffstat (limited to 'src/assets')
6 files changed, 153 insertions, 88 deletions
diff --git a/src/assets/javascripts/helpers/general.js b/src/assets/javascripts/helpers/general.js index fa911b4f..15379288 100644 --- a/src/assets/javascripts/helpers/general.js +++ b/src/assets/javascripts/helpers/general.js @@ -9,6 +9,22 @@ function setAlwaysUsePreferred(val) { console.log("alwaysUsePreferred: ", alwaysUsePreferred) } +let theme; +const getTheme = () => theme; +function setTheme(val) { + theme = val + browser.storage.local.set({ theme }); + console.log("theme: ", theme) +} + +let applyThemeToSites; +const getApplyThemeToSites = () => applyThemeToSites; +function setApplyThemeToSites(val) { + applyThemeToSites = val; + browser.storage.local.set({ applyThemeToSites }) + console.log("applyThemeToSites: ", applyThemeToSites) +} + let exceptions = { "url": [], "regex": [], @@ -36,11 +52,17 @@ async function init() { resolve => browser.storage.local.get( [ "exceptions", - "alwaysUsePreferred" + "alwaysUsePreferred", + "theme", + "applyThemeToSites", ], r => { // r = result if (r.exceptions) exceptions = r.exceptions; alwaysUsePreferred = r.alwaysUsePreferred ?? false; + + theme = r.them ?? "DEFAULT" + applyThemeToSites = r.applyThemeToSites ?? false; + resolve(); } ) @@ -54,6 +76,12 @@ export default { getAlwaysUsePreferred, setAlwaysUsePreferred, + getApplyThemeToSites, + setApplyThemeToSites, + + getTheme, + setTheme, + isException, init, } \ No newline at end of file diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 9c85fa1b..6bd433b7 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -182,6 +182,35 @@ function changeInstance(url) { return `${randomInstance}${url.pathname}${url.search}`; } +function isNitter(url, type) { + let protocolHost = `${url.protocol}//${url.host}`; + + if (type !== "main_frame" && type !== "sub_frame") return false; + + return [ + ...redirects.nitter.normal, + ...redirects.nitter.tor, + ...nitterNormalCustomRedirects, + ...nitterTorCustomRedirects, + ].includes(protocolHost); +} + +let theme; +let applyThemeToSites; +function initNitterCookies(url) { + let protocolHost = `${url.protocol}//${url.host}`; + let themeValue; + if (theme == 'light') themeValue = 'Twitter'; + if (theme == 'dark') themeValue = 'Twitter Dark'; + + if (applyThemeToSites && themeValue != 'DEFAULT') + browser.cookies.set({ + url: protocolHost, + name: "theme", + value: themeValue + }) +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -189,31 +218,42 @@ async function init() { browser.storage.local.get( [ "disableTwitter", + "twitterRedirects", + + "theme", + "applyThemeToSites", + "nitterNormalRedirectsChecks", "nitterNormalCustomRedirects", + "nitterTorRedirectsChecks", "nitterTorCustomRedirects", + "twitterProtocol", + "alwaysUsePreferred", ], - (result) => { - disable = result.disableTwitter ?? false; + r => { + disable = r.disableTwitter ?? false; - protocol = result.twitterProtocol ?? "normal"; + protocol = r.twitterProtocol ?? "normal"; - bypassWatchOnTwitter = result.bypassWatchOnTwitter ?? true; + bypassWatchOnTwitter = r.bypassWatchOnTwitter ?? true; - alwaysUsePreferred = result.alwaysUsePreferred ?? true; + alwaysUsePreferred = r.alwaysUsePreferred ?? true; + + theme = r.theme ?? 'DEFAULT'; + applyThemeToSites = r.applyThemeToSites ?? false; redirects.nitter = dataJson.nitter; - if (result.twitterRedirects) redirects = result.twitterRedirects; + if (r.twitterRedirects) redirects = r.twitterRedirects; - nitterNormalRedirectsChecks = result.nitterNormalRedirectsChecks ?? [...redirects.nitter.normal]; - nitterNormalCustomRedirects = result.nitterNormalCustomRedirects ?? []; + nitterNormalRedirectsChecks = r.nitterNormalRedirectsChecks ?? [...redirects.nitter.normal]; + nitterNormalCustomRedirects = r.nitterNormalCustomRedirects ?? []; - nitterTorRedirectsChecks = result.nitterTorRedirectsChecks ?? [...redirects.nitter.tor]; - nitterTorCustomRedirects = result.nitterTorCustomRedirects ?? []; + nitterTorRedirectsChecks = r.nitterTorRedirectsChecks ?? [...redirects.nitter.tor]; + nitterTorCustomRedirects = r.nitterTorCustomRedirects ?? []; resolve(); } @@ -248,6 +288,9 @@ export default { getProtocol, setProtocol, + isNitter, + initNitterCookies, + redirect, init, changeInstance, diff --git a/src/assets/javascripts/helpers/youtube/invidious-preferences.js b/src/assets/javascripts/helpers/youtube/invidious-preferences.js index f60031fc..22a7dc71 100644 --- a/src/assets/javascripts/helpers/youtube/invidious-preferences.js +++ b/src/assets/javascripts/helpers/youtube/invidious-preferences.js @@ -19,7 +19,7 @@ browser.storage.local.get( "youtubeVolume", "youtubeAutoplay", "OnlyEmbeddedVideo", - "youtubeTheme", + "theme", "invidiousVideoQuality", ], (result) => { let prefs = getCookie(); @@ -31,8 +31,8 @@ browser.storage.local.get( if (result.invidiousVideoQuality !== undefined && prefs.quality !== result.invidiousVideoQuality) prefs.quality = result.invidiousVideoQuality; - if (result.youtubeTheme !== undefined && prefs.dark_mode !== result.youtubeTheme) - prefs.dark_mode = result.youtubeTheme; + if (result.theme !== undefined && prefs.dark_mode !== result.theme) + prefs.dark_mode = result.theme; if (result.youtubeVolume !== undefined && prefs.volume !== result.youtubeVolume) prefs.volume = result.youtubeVolume; diff --git a/src/assets/javascripts/helpers/youtube/piped-preferences.js b/src/assets/javascripts/helpers/youtube/piped-preferences.js index 5803a1ae..6edd5ba2 100644 --- a/src/assets/javascripts/helpers/youtube/piped-preferences.js +++ b/src/assets/javascripts/helpers/youtube/piped-preferences.js @@ -2,28 +2,33 @@ window.browser = window.browser || window.chrome; browser.storage.local.get( [ - "youtubeTheme", + "theme", + "applyThemeToSites", + "youtubeVolume", "youtubeAutoplay" ], - res => { + r => { + let applyThemeToSites = r.applyThemeToSites ?? false; + if ( - res.youtubeTheme != "DEFAULT" && - localStorage.getItem("theme") != res.youtubeTheme + applyThemeToSites && + r.theme != "DEFAULT" && + localStorage.getItem("theme") != r.theme ) - localStorage.setItem("theme", res.youtubeTheme); + localStorage.setItem("theme", r.theme); if ( - res.youtubeVolume != "--" && - localStorage.getItem("volume") != res.youtubeVolume + r.youtubeVolume != "--" && + localStorage.getItem("volume") != r.youtubeVolume ) - localStorage.setItem("volume", res.youtubeVolume / 100); + localStorage.setItem("volume", r.youtubeVolume / 100); if ( - res.youtubeAutoplay != "DEFAULT" && - localStorage.getItem("playerAutoPlay") != res.youtubeAutoplay + r.youtubeAutoplay != "DEFAULT" && + localStorage.getItem("playerAutoPlay") != r.youtubeAutoplay ) - localStorage.setItem("playerAutoPlay", res.youtubeAutoplay); + localStorage.setItem("playerAutoPlay", r.youtubeAutoplay); } ) diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js index c47b8c86..1c6458da 100644 --- a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js +++ b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js @@ -2,7 +2,7 @@ window.browser = window.browser || window.chrome; browser.storage.local.get( [ - "youtubeTheme", + "theme", "youtubeAutoplay" ], res => { @@ -13,8 +13,8 @@ browser.storage.local.get( ) ?? {}; let oldPrefs = { ...prefs }; - if (res.youtubeTheme == 'dark') prefs.darkMode = true; - if (res.youtubeTheme == 'light') prefs.darkMode = false; + if (res.theme == 'dark') prefs.darkMode = true; + if (res.theme == 'light') prefs.darkMode = false; if (res.youtubeAutoplay != "DEFAULT") prefs.playerAutoplay = res.youtubeAutoplay; diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 3866f72e..e551255e 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -215,7 +215,7 @@ let theme; const getTheme = () => theme; function setTheme(val) { theme = val; - browser.storage.local.set({ youtubeTheme: theme }) + browser.storage.local.set({ theme: theme }) console.log("theme: ", theme) } @@ -495,29 +495,10 @@ function changeInstance(url) { return `${randomInstance}${url.pathname}${url.search}`; } -function isPipedorInvidious(url, type) { +function isPipedorInvidious(url, type, frontend) { let protocolHost = `${url.protocol}//${url.host}`; - return (type === "main_frame" || type === "sub_frame") && [ - ...redirects.invidious.normal, - ...redirects.invidious.tor, - ...invidiousNormalCustomRedirects, - ...invidiousTorCustomRedirects, - - ...redirects.piped.normal, - ...redirects.piped.tor, - ...pipedNormalCustomRedirects, - ...pipedTorCustomRedirects, - ].includes(protocolHost); -} -function isUrlPipedorInvidious(url, frontend) { - try { - url = new URL(url); - } - catch (error) { - return - } - let protocolHost = `${url.protocol}//${url.host}`; + if (type !== "main_frame" && type !== "sub_frame") return false; if (frontend == 'invidious') return [ @@ -556,10 +537,13 @@ function isUrlPipedorInvidious(url, frontend) { ].includes(protocolHost); } +let applyThemeToSites; function addUrlParams(url) { let protocolHost = `${url.protocol}//${url.host}`; let isChanged = false; console.log("Adding URL Params", protocolHost); + console.log("searchParams", url.searchParams); + let oldParams = { ...url.searchParams }; if ( [ ...redirects.invidious.normal, @@ -568,8 +552,10 @@ function addUrlParams(url) { ...invidiousTorCustomRedirects ].includes(protocolHost) ) { - if (!url.searchParams.has("dark_mode") && theme != "DEFAULT") { - url.searchParams.append("dark_mode", theme); + + if (applyThemeToSites && !url.searchParams.has("dark_mode") && theme != 'DEFAULT') { + if (theme == 'dark') url.searchParams.append("dark_mode", true); + else if (theme == 'light') url.searchParams.append("dark_mode", false); isChanged = true; } @@ -602,8 +588,8 @@ function addUrlParams(url) { url.searchParams.append("subtitles", invidiousSubtitles); isChanged = true; } - - } else if ( + } + else if ( [ ...redirects.piped.normal, ...redirects.piped.tor, @@ -626,12 +612,13 @@ function addUrlParams(url) { url.searchParams.append("playerAutoPlay", autoplay); isChanged = true; } - } + if (isChanged) return url.href; else return; } + function initPipedLocalStorage(tabId) { browser.tabs.executeScript( tabId, @@ -670,7 +657,8 @@ async function init() { [ "invidiousAlwaysProxy", "invidiousVideoQuality", - "youtubeTheme", + "theme", + "applyThemeToSites", "persistInvidiousPrefs", "disableYoutube", "OnlyEmbeddedVideo", @@ -706,51 +694,53 @@ async function init() { "youtubeEmbedExceptions", "bypassWatchOnYoutube" ], - (result) => { + r => { // r = result redirects.invidious = dataJson.invidious; - if (result.youtubeRedirects) redirects = result.youtubeRedirects; + if (r.youtubeRedirects) redirects = r.youtubeRedirects; + + disable = r.disableYoutube ?? false; + protocol = r.youtubeProtocol ?? 'normal'; + frontend = r.youtubeFrontend ?? 'invidious'; + youtubeEmbedFrontend = r.youtubeEmbedFrontend ?? 'invidious'; - disable = result.disableYoutube ?? false; - protocol = result.youtubeProtocol ?? 'normal'; - frontend = result.youtubeFrontend ?? 'invidious'; - youtubeEmbedFrontend = result.youtubeEmbedFrontend ?? 'invidious'; + theme = r.theme ?? 'DEFAULT'; + applyThemeToSites = r.applyThemeToSites ?? false; - theme = result.youtubeTheme ?? 'DEFAULT'; - volume = result.youtubeVolume ?? '--'; - autoplay = result.youtubeAutoplay ?? 'DEFAULT'; + volume = r.youtubeVolume ?? '--'; + autoplay = r.youtubeAutoplay ?? 'DEFAULT'; - invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT'; - OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both'; - invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT'; - invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT'; - invidiousSubtitles = result.invidiousSubtitles || ''; + invidiousAlwaysProxy = r.invidiousAlwaysProxy ?? 'DEFAULT'; + OnlyEmbeddedVideo = r.OnlyEmbeddedVideo ?? 'both'; + invidiousVideoQuality = r.invidiousVideoQuality ?? 'DEFAULT'; + invidiousPlayerStyle = r.invidiousPlayerStyle ?? 'DEFAULT'; + invidiousSubtitles = r.invidiousSubtitles || ''; - invidiousNormalRedirectsChecks = result.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal]; - invidiousNormalCustomRedirects = result.invidiousNormalCustomRedirects ?? []; + invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks ?? [...redirects.invidious.normal]; + invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects ?? []; - invidiousTorRedirectsChecks = result.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor]; - invidiousTorCustomRedirects = result.invidiousTorCustomRedirects ?? []; + invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks ?? [...redirects.invidious.tor]; + invidiousTorCustomRedirects = r.invidiousTorCustomRedirects ?? []; - pipedNormalRedirectsChecks = result.pipedNormalRedirectsChecks ?? [...redirects.piped.normal]; - pipedNormalCustomRedirects = result.pipedNormalCustomRedirects ?? []; + pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks ?? [...redirects.piped.normal]; + pipedNormalCustomRedirects = r.pipedNormalCustomRedirects ?? []; - pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor]; - pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? []; + pipedTorRedirectsChecks = r.pipedTorRedirectsChecks ?? [...redirects.piped.tor]; + pipedTorCustomRedirects = r.pipedTorCustomRedirects ?? []; - pipedMaterialNormalRedirectsChecks = result.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal]; - pipedMaterialNormalCustomRedirects = result.pipedMaterialNormalCustomRedirects ?? []; + pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal]; + pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects ?? []; - pipedMaterialTorRedirectsChecks = result.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor]; - pipedMaterialTorCustomRedirects = result.pipedMaterialTorCustomRedirects ?? []; + pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor]; + pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects ?? []; - persistInvidiousPrefs = result.persistInvidiousPrefs ?? false; + persistInvidiousPrefs = r.persistInvidiousPrefs ?? false; - alwaysUsePreferred = result.alwaysUsePreferred ?? true; + alwaysUsePreferred = r.alwaysUsePreferred ?? true; - bypassWatchOnYoutube = result.bypassWatchOnYoutube ?? true; + bypassWatchOnYoutube = r.bypassWatchOnYoutube ?? true; - if (result.youtubeEmbedExceptions) exceptions = result.youtubeEmbedExceptions; + if (r.youtubeEmbedExceptions) exceptions = r.youtubeEmbedExceptions; resolve(); }); @@ -780,7 +770,6 @@ export default { changeInstance, isPipedorInvidious, - isUrlPipedorInvidious, addUrlParams, getDisable, @@ -859,4 +848,4 @@ export default { isException, init, -}; +}; \ No newline at end of file |