about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-10 05:45:37 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-10 05:45:58 +0300
commit3d579dc1630958c53cb8003fe1f6cb9480832c6b (patch)
treee85711b1a4f215e339807b7823ab875699939c3b /src/assets
parentBump version to 1.5.0 (diff)
downloadlibredirect-3d579dc1630958c53cb8003fe1f6cb9480832c6b.zip
Fixed invidious settings #97. Changed a text in #84
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/twitter.js28
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious-preferences.js28
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js132
3 files changed, 63 insertions, 125 deletions
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index caf6541d..ba301ad4 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -199,18 +199,26 @@ function isNitter(url, type) {
 
 let theme;
 let applyThemeToSites;
-function initNitterCookies(url) {
-  let protocolHost = `${url.protocol}//${url.host}`;
+function initNitterCookies() {
   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
-    })
+  if (applyThemeToSites && themeValue != 'DEFAULT') {
+    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))
+        browser.cookies.remove({
+          url: instanceUrl,
+          name: "theme",
+        })
+    for (const instanceUrl of checkedInstances)
+      browser.cookies.set({
+        url: instanceUrl,
+        name: "theme",
+        value: themeValue
+      })
+  }
 }
 
 async function init() {
@@ -259,6 +267,8 @@ async function init() {
           nitterTorRedirectsChecks = r.nitterTorRedirectsChecks ?? [...redirects.nitter.tor];
           nitterTorCustomRedirects = r.nitterTorCustomRedirects ?? [];
 
+          initNitterCookies();
+
           resolve();
         }
       );
diff --git a/src/assets/javascripts/helpers/youtube/invidious-preferences.js b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
index 22a7dc71..b25900b8 100644
--- a/src/assets/javascripts/helpers/youtube/invidious-preferences.js
+++ b/src/assets/javascripts/helpers/youtube/invidious-preferences.js
@@ -21,31 +21,7 @@ browser.storage.local.get(
         "OnlyEmbeddedVideo",
         "theme",
         "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.theme !== undefined && prefs.dark_mode !== result.theme)
-            prefs.dark_mode = result.theme;
-
-        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))}`;
+    ],
+    r => {
     }
 )
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 50a16024..0ab77df6 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -537,87 +537,6 @@ function isPipedorInvidious(url, type, 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,
-      ...redirects.invidious.tor,
-      ...invidiousNormalCustomRedirects,
-      ...invidiousTorCustomRedirects
-    ].includes(protocolHost)
-  ) {
-
-    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;
-    }
-
-    if (!url.searchParams.has("volume") && volume != "--") {
-      url.searchParams.append("volume", volume);
-      isChanged = true;
-    }
-
-    if (!url.searchParams.has("autoplay") && autoplay != "DEFAULT") {
-      url.searchParams.append("autoplay", autoplay);
-      isChanged = true;
-    }
-
-    if (!url.searchParams.has("local") && invidiousAlwaysProxy != "DEFAULT") {
-      url.searchParams.append("local", invidiousAlwaysProxy);
-      isChanged = true;
-    }
-
-    if (!url.searchParams.has("quality") && invidiousVideoQuality != "DEFAULT") {
-      url.searchParams.append("quality", invidiousVideoQuality);
-      isChanged = true;
-    }
-
-    if (!url.searchParams.has("player_style") && invidiousPlayerStyle != "DEFAULT") {
-      url.searchParams.append("player_style", invidiousPlayerStyle);
-      isChanged = true;
-    };
-
-    if (!url.searchParams.has("subtitles") && invidiousSubtitles.trim() != '') {
-      url.searchParams.append("subtitles", invidiousSubtitles);
-      isChanged = true;
-    }
-  }
-  else if (
-    [
-      ...redirects.piped.normal,
-      ...redirects.piped.tor,
-      ...pipedNormalCustomRedirects,
-      ...pipedTorCustomRedirects,
-    ].includes(protocolHost)
-  ) {
-
-    if (!url.searchParams.has("theme") && theme != "DEFAULT") {
-      url.searchParams.append("theme", theme);
-      isChanged = true;
-    }
-
-    if (!url.searchParams.has("volume") && volume != "--") {
-      url.searchParams.append("volume", volume / 100);
-      isChanged = true;
-    }
-
-    if (!url.searchParams.has("playerAutoPlay") && autoplay != "DEFAULT") {
-      url.searchParams.append("playerAutoPlay", autoplay);
-      isChanged = true;
-    }
-  }
-
-  if (isChanged) return url.href;
-  else return;
-}
-
 function initPipedLocalStorage(tabId) {
   browser.tabs.executeScript(
     tabId,
@@ -638,14 +557,46 @@ function initPipedMaterialLocalStorage(tabId) {
   );
 }
 
-function initInvidiousCookies(tabId) {
-  browser.tabs.executeScript(
-    tabId,
-    {
-      file: "/assets/javascripts/helpers/youtube/invidious-preferences.js",
-      runAt: "document_start"
-    }
-  );
+let applyThemeToSites;
+function initInvidiousCookies() {
+  console.log("initInvidiousCookies");
+
+  let prefs = {};
+  if (invidiousAlwaysProxy != "DEFAULT") prefs.local = invidiousAlwaysProxy == 'true';
+  if (invidiousVideoQuality != "DEFAULT") prefs.quality = invidiousVideoQuality;
+  if (applyThemeToSites && theme != "DEFAULT") prefs.dark_mode = theme;
+  if (volume != "--") prefs.volume = parseInt(volume);
+  if (invidiousPlayerStyle != "DEFAULT") prefs.player_style = invidiousPlayerStyle;
+  if (invidiousSubtitles != "DEFAULT") prefs.subtitles = invidiousSubtitles;
+  if (autoplay != "DEFAULT") prefs.autoplay = autoplay == 'true';
+
+  let allInstances = [
+    ...redirects.invidious.normal,
+    ...redirects.invidious.tor,
+    ...invidiousNormalCustomRedirects,
+    ...invidiousTorCustomRedirects,
+  ]
+
+  let checkedInstances = [
+    ...invidiousNormalRedirectsChecks,
+    ...invidiousNormalCustomRedirects,
+    ...invidiousTorRedirectsChecks,
+    ...invidiousTorCustomRedirects,
+  ];
+
+  for (const item of allInstances)
+    if (!checkedInstances.includes(item))
+      browser.cookies.remove({
+        url: item,
+        name: "PREFS",
+      })
+
+  for (const instanceUrl of checkedInstances)
+    browser.cookies.set({
+      url: instanceUrl,
+      name: "PREFS",
+      value: encodeURIComponent(JSON.stringify(prefs))
+    })
 }
 
 async function init() {
@@ -741,6 +692,8 @@ async function init() {
 
           if (r.youtubeEmbedExceptions) exceptions = r.youtubeEmbedExceptions;
 
+          initInvidiousCookies();
+
           resolve();
         });
     });
@@ -769,7 +722,6 @@ export default {
   changeInstance,
 
   isPipedorInvidious,
-  addUrlParams,
 
   getDisable,
   setDisable,