diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-02-19 15:48:28 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-02-19 15:48:35 +0300 |
commit | f0d70837fcf0b617fa0f69fd0eb324148e7118b3 (patch) | |
tree | dc9fe2696b188e10039f92fc3f6ece261b543534 /src/assets | |
parent | Fixed url params not applying #44 (diff) | |
download | libredirect-f0d70837fcf0b617fa0f69fd0eb324148e7118b3.zip |
Fixed cookies not working in invidious #44
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/youtube/invidious-cookies.js | 57 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 8 |
2 files changed, 46 insertions, 19 deletions
diff --git a/src/assets/javascripts/helpers/youtube/invidious-cookies.js b/src/assets/javascripts/helpers/youtube/invidious-cookies.js index 6a168b83..cefbddd8 100644 --- a/src/assets/javascripts/helpers/youtube/invidious-cookies.js +++ b/src/assets/javascripts/helpers/youtube/invidious-cookies.js @@ -1,8 +1,6 @@ function getCookie() { - let ca = document.cookie.split(";"); - for (let i = 0; i < ca.length; i++) { - let c = ca[i]; + 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( @@ -15,24 +13,47 @@ function getCookie() { browser.storage.sync.get( [ "invidiousAlwaysProxy", - "invidiousVideoQuality", - "invidiousDarkMode", - "OnlyEmbeddedVideo", - "volume", - "invidiousPlayerStyle", "invidiousSubtitles", - "autoplay", + "invidiousPlayerStyle", + "youtubeVolume", + "youtubeAutoplay", + "OnlyEmbeddedVideo", + "youtubeTheme", + "invidiousVideoQuality", ], (result) => { - const prefs = getCookie(); + let prefs = getCookie(); + let changed = false; + + if (result.invidiousAlwaysProxy !== undefined && prefs.local !== result.invidiousAlwaysProxy) { + prefs.local = result.invidiousAlwaysProxy; + changed = true; + } + if (result.invidiousVideoQuality !== undefined && prefs.quality !== result.invidiousVideoQuality) { + prefs.quality = result.invidiousVideoQuality; + changed = true; + } + if (result.youtubeTheme !== undefined && prefs.dark_mode !== result.youtubeTheme) { + prefs.dark_mode = result.youtubeTheme; + changed = true; + } + if (result.youtubeVolume !== undefined && prefs.volume !== result.youtubeVolume) { + prefs.volume = result.youtubeVolume; + changed = true; + } + if (result.invidiousPlayerStyle !== undefined && prefs.player_style !== result.invidiousPlayerStyle) { + prefs.player_style = result.invidiousPlayerStyle; + changed = true; + } + if (result.invidiousSubtitles !== undefined && prefs.subtitles === result.invidiousSubtitles) { + prefs.subtitles = result.invidiousSubtitles; + changed = true; + } + if (result.youtubeAutoplay !== undefined && prefs.autoplay !== result.youtubeAutoplay) { + prefs.autoplay = result.youtubeAutoplay; + changed = true; + } - prefs.local = result.invidiousAlwaysProxy; - prefs.quality = result.invidiousVideoQuality; - prefs.dark_mode = result.invidiousDarkMode; - prefs.volume = result.volume; - prefs.player_style = result.invidiousPlayerStyle; - prefs.subtitles = result.invidiousSubtitles; - prefs.autoplay = result.autoplay; + if (changed) document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`; - document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`; } ) diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 8577f849..802a73d0 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -300,6 +300,12 @@ function isPipedorInvidious(url, type) { return (type === "main_frame" || type === "sub_frame") && [...redirects.invidious.normal, ...redirects.piped.normal].includes(protocolHost); } +function isUrlPipedorInvidious(url) { + url = new URL(url); + let protocolHost = `${url.protocol}//${url.host}`; + return [...redirects.invidious.normal, ...redirects.piped.normal].includes(protocolHost); +} + function addUrlParams(url) { let protocolHost = `${url.protocol}//${url.host}`; @@ -360,7 +366,6 @@ function addUrlParams(url) { } } - if (isChanged) return url.href; else return; } @@ -449,6 +454,7 @@ export default { isYoutube, isPipedorInvidious, + isUrlPipedorInvidious, addUrlParams, getDisable, |