about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-14 22:54:33 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-14 22:54:33 +0300
commit2d4b21772a1c22cdded3dab742196fe5e2435de7 (patch)
treea533819cc3616f89a475507a67cf913956d58351 /src
parentAdded feature request #35 (diff)
downloadlibredirect-2d4b21772a1c22cdded3dab742196fe5e2435de7.zip
Added onlyNotEmbedded feature #37
Diffstat (limited to 'src')
-rw-r--r--src/_locales/de/messages.json2
-rw-r--r--src/_locales/en/messages.json2
-rw-r--r--src/_locales/es/messages.json2
-rw-r--r--src/_locales/fr/messages.json2
-rw-r--r--src/_locales/it/messages.json2
-rw-r--r--src/_locales/pl/messages.json2
-rw-r--r--src/_locales/ru/messages.json2
-rw-r--r--src/_locales/tr/messages.json2
-rw-r--r--src/_locales/zh_CN/messages.json2
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious-cookies.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js28
-rw-r--r--src/pages/background/background.js2
-rw-r--r--src/pages/options/youtube/youtube.html6
-rw-r--r--src/pages/options/youtube/youtube.js8
14 files changed, 36 insertions, 28 deletions
diff --git a/src/_locales/de/messages.json b/src/_locales/de/messages.json
index ec39f4b9..ba99bcc0 100644
--- a/src/_locales/de/messages.json
+++ b/src/_locales/de/messages.json
@@ -43,7 +43,7 @@
     "message": "Videos immer durch Invidious-Proxy leiten",
     "description": "Label for 'Always proxy videos through Invidious' option (options)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Nur eingebettete Videos zu Invidious weiterleiten",
     "description": "Label for 'Only redirect embedded video to Invidious' option (options)."
   },
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index 865c0841..c0426fca 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -83,7 +83,7 @@
     "message": "Always proxy videos through Invidious",
     "description": "Label for 'Always proxy videos through Invidious' option (options)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Only redirect embedded video to Invidious",
     "description": "Label for 'Only redirect embedded video to Invidious' option (options)."
   },
diff --git a/src/_locales/es/messages.json b/src/_locales/es/messages.json
index 472f783b..b7a3b4fb 100644
--- a/src/_locales/es/messages.json
+++ b/src/_locales/es/messages.json
@@ -75,7 +75,7 @@
     "message": "Siempre usar el proxy de Invidious para videos",
     "description": "Etiqueta para la opción de 'Siempre usar el proxy de Invidious para videos' (opciones)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Solo redirigir los videos incrustados a Invidious",
     "description": "Etiqueta para la opción de 'Solo redirigir los videos incrustados a Invidious' (opciones)."
   },
diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json
index 5cb4e928..0ba3c6ca 100644
--- a/src/_locales/fr/messages.json
+++ b/src/_locales/fr/messages.json
@@ -43,7 +43,7 @@
     "message": "Toujours transiter par proxy les vidéos via Invidious",

     "description": "Libellé pour l'option 'Toujours transiter par proxy les vidéos via Invidious' (options)."

   },

-  "invidiousOnlyEmbeddedVideo": {

+  "OnlyEmbeddedVideo": {

     "message": "Rediriger uniquement les vidéos intégrées vers Invidious",

     "description": "Libellé pour l'option 'Rediriger uniquement les vidéos intégrées vers Invidious' (options)."

   },

diff --git a/src/_locales/it/messages.json b/src/_locales/it/messages.json
index 25f2851f..641f784b 100644
--- a/src/_locales/it/messages.json
+++ b/src/_locales/it/messages.json
@@ -67,7 +67,7 @@
     "message": "Usa sempre il proxy per i video su Invidious",
     "description": "Label for 'Always proxy videos through Invidious' option (options)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Reindirizza solo i video incorporati verso Invidious",
     "description": "Label for 'Only redirect embedded video to Invidious' option (options)."
   },
diff --git a/src/_locales/pl/messages.json b/src/_locales/pl/messages.json
index 3377ae17..b6288407 100644
--- a/src/_locales/pl/messages.json
+++ b/src/_locales/pl/messages.json
@@ -43,7 +43,7 @@
     "message": "Zawsze buforuj i wyświetlaj odnośniki wideo z YouTube poprzez Invidious",
     "description": "Etykieta dla opcji 'Zawsze buforuj i wyświetlaj odnośniki wideo poprzez Invidious'."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Jedynie przekieruj odnośniki wideo do instancji Invidious",
     "description": "Etykieta dla opcji 'Jedynie przekieruj odnośniki wideo do instancji Invidious'."
   },
diff --git a/src/_locales/ru/messages.json b/src/_locales/ru/messages.json
index 91d130c3..55645861 100644
--- a/src/_locales/ru/messages.json
+++ b/src/_locales/ru/messages.json
@@ -71,7 +71,7 @@
     "message": "Всегда проксировать видео через Invidious",
     "description": "Название настройки для 'Всегда проксировать видео через Invidious' (в настройках)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Перенаправлять только встроенные видео на Invidious",
     "description": "Название настройки для 'Перенаправлять только встроенные видео на Invidious' (в настройках)."
   },
diff --git a/src/_locales/tr/messages.json b/src/_locales/tr/messages.json
index 348ffaeb..8440e7d9 100644
--- a/src/_locales/tr/messages.json
+++ b/src/_locales/tr/messages.json
@@ -59,7 +59,7 @@
     "message": "Videoları her zaman Invidious üzerinden geçir",
     "description": "'Videoları her zaman Invidious üzerinden geçir' seçeneği için etiket (seçenekler)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "Sadece siteye gömülü videoları Invidious'a yönlendir",
     "description": "'Sadece siteye gömülü videoları Invidious'a yönlendir' seçeneği için etiket (seçenekler)."
   },
diff --git a/src/_locales/zh_CN/messages.json b/src/_locales/zh_CN/messages.json
index 6fe05b68..fc780ea2 100644
--- a/src/_locales/zh_CN/messages.json
+++ b/src/_locales/zh_CN/messages.json
@@ -43,7 +43,7 @@
     "message": "使用 Invidious 时始终使用视频代理",
     "description": "Label for 'Always proxy videos through Invidious' option (options)."
   },
-  "invidiousOnlyEmbeddedVideo": {
+  "OnlyEmbeddedVideo": {
     "message": "只重定向嵌入视频至 Invidious",
     "description": "Label for 'Only redirect embedded video to Invidious' option (options)."
   },
diff --git a/src/assets/javascripts/helpers/youtube/invidious-cookies.js b/src/assets/javascripts/helpers/youtube/invidious-cookies.js
index 6b77a278..1ccdf1f8 100644
--- a/src/assets/javascripts/helpers/youtube/invidious-cookies.js
+++ b/src/assets/javascripts/helpers/youtube/invidious-cookies.js
@@ -17,7 +17,7 @@ browser.storage.sync.get(
         "invidiousAlwaysProxy",
         "invidiousVideoQuality",
         "invidiousDarkMode",
-        "invidiousOnlyEmbeddedVideo",
+        "OnlyEmbeddedVideo",
         "invidiousVolume",
         "invidiousPlayerStyle",
         "invidiousSubtitles",
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 5731599f..7c23f253 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -125,13 +125,13 @@ function setInvidiousAlwaysProxy(val) {
 }
 const getInvidiousAlwaysProxy = () => invidiousAlwaysProxy;
 
-let invidiousOnlyEmbeddedVideo;
-function setInvidiousOnlyEmbeddedVideo(val) {
-  invidiousOnlyEmbeddedVideo = val;
-  browser.storage.sync.set({ invidiousOnlyEmbeddedVideo })
-  console.log("invidiousOnlyEmbeddedVideo: ", invidiousOnlyEmbeddedVideo)
+let OnlyEmbeddedVideo;
+function setOnlyEmbeddedVideo(val) {
+  OnlyEmbeddedVideo = val;
+  browser.storage.sync.set({ OnlyEmbeddedVideo })
+  console.log("OnlyEmbeddedVideo: ", OnlyEmbeddedVideo)
 }
-const getInvidiousOnlyEmbeddedVideo = () => invidiousOnlyEmbeddedVideo;
+const getOnlyEmbeddedVideo = () => OnlyEmbeddedVideo;
 
 let invidiousVideoQuality;
 function setInvidiousVideoQuality(val) {
@@ -265,7 +265,7 @@ async function init() {
         "invidiousTheme",
         "persistInvidiousPrefs",
         "disableYoutube",
-        "invidiousOnlyEmbeddedVideo",
+        "OnlyEmbeddedVideo",
         "invidiousVolume",
         "invidiousPlayerStyle",
         "invidiousSubtitles",
@@ -285,7 +285,7 @@ async function init() {
         disableYoutube = result.disableYoutube ?? false;
 
         invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
-        invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo ?? false;
+        OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both';
         invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
         invidiousTheme = result.invidiousTheme ?? 'DEFAULT';
         invidiousVolume = result.invidiousVolume ?? '--';
@@ -319,6 +319,8 @@ function invidiousInitCookies(tabId) {
 
 function redirect(url, type) {
 
+  console.log("type", type);
+
   if (frontend == 'freeTube' && type === "main_frame")
     return `freetube://${url}`;
 
@@ -328,7 +330,8 @@ function redirect(url, type) {
     if (instancesList.length === 0) return null;
     let randomInstance = commonHelper.getRandomInstance(instancesList);
 
-    if (invidiousOnlyEmbeddedVideo && type !== "sub_frame") return null;
+    if (OnlyEmbeddedVideo == 'onlyEmbedded' && type !== "sub_frame") return null
+    if (OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame") return null;
 
     if (invidiousAlwaysProxy != "DEFAULT") url.searchParams.append("local", invidiousAlwaysProxy);
     if (invidiousVideoQuality != "DEFAULT") url.searchParams.append("quality", invidiousVideoQuality);
@@ -346,7 +349,8 @@ function redirect(url, type) {
     if (instancesList.length === 0) return null;
     let randomInstance = commonHelper.getRandomInstance(instancesList);
 
-    if (invidiousOnlyEmbeddedVideo && type !== "sub_frame") return null;
+    if (OnlyEmbeddedVideo == 'onlyEmbedded' && type !== "sub_frame") return null
+    if (OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame") return null;
 
     if (invidiousTheme != "DEFAULT") url.searchParams.append("theme", invidiousTheme);
     if (invidiousVolume != "--") url.searchParams.append("volume", invidiousVolume / 100);
@@ -377,8 +381,8 @@ export default {
   setInvidiousAlwaysProxy,
   getInvidiousAlwaysProxy,
 
-  setInvidiousOnlyEmbeddedVideo,
-  getInvidiousOnlyEmbeddedVideo,
+  setOnlyEmbeddedVideo,
+  getOnlyEmbeddedVideo,
 
   setInvidiousVideoQuality,
   getInvidiousVideoQuality,
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 8add9c3f..bebb64f6 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -47,7 +47,7 @@ browser.webRequest.onBeforeRequest.addListener(
 
     if (exceptionsHelper.isException(url)) newUrl = null;
 
-    else if (youtubeHelper.isYoutube(url, initiator)) newUrl = youtubeHelper.redirect(url, initiator, details.type)
+    else if (youtubeHelper.isYoutube(url, initiator)) newUrl = youtubeHelper.redirect(url, details.type)
 
     else if (twitterHelper.isTwitter(url)) newUrl = twitterHelper.redirect(url, initiator);
 
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
index b21e5150..34d6ab54 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -128,7 +128,11 @@
     <div id="invidious-piped">
       <div class="some-block option-block">
         <h4>Only Redirect Embedded-Video</h4>
-        <input id="only-embed" type="checkbox" checked />
+        <select id="only-embed">
+          <option value="both">both</option>
+          <option value="onlyEmbedded">Only Embedded</option>
+          <option value="onlyNotEmbedded">Only Not Embedded</option>
+        </select>
       </div>
 
       <div class="some-block option-block">
diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js
index 79330f46..29831198 100644
--- a/src/pages/options/youtube/youtube.js
+++ b/src/pages/options/youtube/youtube.js
@@ -63,9 +63,9 @@ invidiousAutoplayElement.addEventListener("change",
     (event) => youtubeHelper.setInvidiousAutoplay(event.target.options[invidiousAutoplayElement.selectedIndex].value)
 );
 
-let invidiousOnlyEmbeddedVideoElement = document.getElementById("only-embed");
-invidiousOnlyEmbeddedVideoElement.addEventListener("change",
-    (event) => youtubeHelper.setInvidiousOnlyEmbeddedVideo(event.target.checked)
+let OnlyEmbeddedVideoElement = document.getElementById("only-embed");
+OnlyEmbeddedVideoElement.addEventListener("change",
+    (event) => youtubeHelper.setOnlyEmbeddedVideo(event.target.options[OnlyEmbeddedVideoElement.selectedIndex].value)
 );
 
 let alwaysUsePreferredElement = document.getElementById("always-use-preferred")
@@ -78,7 +78,7 @@ youtubeHelper.init().then(() => {
     invidiousThemeElement.checked = youtubeHelper.getInvidiousTheme();
     invidiousVolumeElement.value = youtubeHelper.getInvidiousVolume();
     invidiousVolumeValueElement.textContent = `${youtubeHelper.getInvidiousVolume()}%`;
-    invidiousOnlyEmbeddedVideoElement.checked = youtubeHelper.getInvidiousOnlyEmbeddedVideo();
+    OnlyEmbeddedVideoElement.value = youtubeHelper.getOnlyEmbeddedVideo();
     alwaysUsePreferredElement.checked = youtubeHelper.getAlwaysusePreferred();
     invidiousAutoplayElement.checked = youtubeHelper.getInvidiousAutoplay();
     let frontend = youtubeHelper.getFrontend();