aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious-preferences.js51
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js41
2 files changed, 59 insertions, 33 deletions
diff --git a/src/assets/javascripts/helpers/youtube/invidious-preferences.js b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
new file mode 100644
index 00000000..f60031fc
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
@@ -0,0 +1,51 @@
+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",
+ "youtubeTheme",
+ "invidiousVideoQuality",
+ ], (result) => {
+ let prefs = getCookie();
+ let oldPrefs = { ...prefs };
+
+ if (result.invidiousAlwaysProxy !== undefined && prefs.local !== result.invidiousAlwaysProxy)
+ prefs.local = result.invidiousAlwaysProxy;
+
+ 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.youtubeVolume !== undefined && prefs.volume !== result.youtubeVolume)
+ prefs.volume = result.youtubeVolume;
+
+ if (result.invidiousPlayerStyle !== undefined && prefs.player_style !== result.invidiousPlayerStyle)
+ prefs.player_style = result.invidiousPlayerStyle;
+
+ if (result.invidiousSubtitles !== undefined && prefs.subtitles === result.invidiousSubtitles)
+ prefs.subtitles = result.invidiousSubtitles;
+
+ if (result.youtubeAutoplay !== undefined && prefs.autoplay !== result.youtubeAutoplay)
+ prefs.autoplay = result.youtubeAutoplay;
+
+ if (prefs != oldPrefs) 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 243561d0..55f7d7d6 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -564,7 +564,7 @@ function addUrlParams(url) {
else return;
}
-function initPipedLocalStorage(url, tabId) {
+function initPipedLocalStorage(tabId) {
browser.tabs.executeScript(
tabId,
{
@@ -574,37 +574,12 @@ function initPipedLocalStorage(url, tabId) {
);
}
-function invidiousInitCookies(url) {
- console.log("invidiousInitCookies");
- browser.cookies.get({
- url: url,
- name: "PREFS"
- }).then(
- cookie => {
- let prefs = {};
- if (cookie) prefs = JSON.parse(decodeURIComponent(cookie.value));
- let oldPrefs = { ...prefs };
-
- if (invidiousAlwaysProxy != "DEFAULT" && prefs.local !== invidiousAlwaysProxy) prefs.local = invidiousAlwaysProxy;
-
- if (invidiousVideoQuality != "DEFAULT" && prefs.quality !== invidiousVideoQuality) prefs.quality = invidiousVideoQuality;
-
- if (theme != "DEFAULT" && prefs.dark_mode !== theme) prefs.dark_mode = theme;
-
- if (volume != "--" && prefs.volume !== volume) prefs.volume = volume;
-
- if (invidiousPlayerStyle != "DEFAULT" && prefs.player_style !== invidiousPlayerStyle) prefs.player_style = invidiousPlayerStyle;
-
- if (invidiousSubtitles != "DEFAULT" && prefs.subtitles === invidiousSubtitles) prefs.subtitles = invidiousSubtitles;
-
- if (autoplay != "DEFAULT" && prefs.autoplay !== autoplay) prefs.autoplay = autoplay;
-
- if (oldPrefs != prefs)
- browser.cookies.set({
- url: url,
- name: "PREFS",
- value: encodeURIComponent(JSON.stringify(prefs))
- })
+function initInvidiousCookies(tabId) {
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/invidious-preferences.js",
+ runAt: "document_start"
}
);
}
@@ -695,7 +670,7 @@ async function init() {
export default {
getBypassWatchOnYoutube,
setBypassWatchOnYoutube,
- invidiousInitCookies,
+ initInvidiousCookies,
initPipedLocalStorage,
getFrontend,