about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-16 23:35:57 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-16 23:35:57 +0300
commite9cfde78804781b25d9b746f5118a00ffe17d958 (patch)
tree1df722f42547da118508b711b1dfc7dad1ae9d1f /src/assets
parentFixed a duplicating url parameters bug + typo (diff)
downloadlibredirect-e9cfde78804781b25d9b746f5118a00ffe17d958.zip
Added embeddedFrontend option to freetube #40
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 8934747a..38d7be49 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -189,6 +189,14 @@ function setFrontend(val) {
   console.log("youtubeFrontend: ", val)
 }
 
+let freetubeFrontend;
+const getFreetubeFrontend = () => freetubeFrontend;
+function setFreetubeFrontend(val) {
+  freetubeFrontend = val;
+  browser.storage.sync.set({ freetubeFrontend })
+  console.log("freetubeFrontend: ", freetubeFrontend)
+}
+
 let persistInvidiousPrefs;
 const getPersistInvidiousPrefs = () => persistInvidiousPrefs;
 function setPersistInvidiousPrefs(val) {
@@ -209,8 +217,7 @@ function isYoutube(url, initiator) {
   if (disable) return false;
 
   if (
-    initiator &&
-    (
+    initiator && (
       [...redirects.invidious.normal, ...invidiousCustomRedirects].includes(initiator.origin) ||
       [...redirects.piped.normal, ...pipedCustomRedirects].includes(initiator.origin) ||
       targets.includes(initiator.host)
@@ -247,12 +254,19 @@ function isYoutube(url, initiator) {
 function redirect(url, type) {
   if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) return null; // Don't redirect YouTube Player API.
 
-  if (frontend == 'freeTube' && type === "main_frame") {
+  if (frontend == 'freetube' && type === "main_frame")
     return `freetube://${url}`;
-  } else if (frontend == 'invidious') {
+
+  else if (frontend == 'freetube' && type !== "main_frame" && freetubeFrontend == "youtube")
+    return null;
+
+  else if (frontend == 'invidious' || (frontend == 'freetube' && freetubeFrontend == 'invidious' && type == "sub_frame")) {
 
     if (OnlyEmbeddedVideo == 'onlyEmbedded' && type !== "sub_frame") return null;
-    if (OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame") return null;
+    if (
+      OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame" &&
+      !(frontend == 'freetube' && freetubeFrontend == 'invidious' && type === "sub_frame")
+    ) return null;
 
     let instancesList = [...invidiousRedirectsChecks, ...invidiousCustomRedirects];
     if (instancesList.length === 0) return null;
@@ -269,10 +283,13 @@ function redirect(url, type) {
 
     return `${randomInstance}${url.pathname.replace("/shorts/", "/watch?v=")}${url.search}`;
 
-  } else if (frontend == 'piped') {
+  } else if (frontend == 'piped' || (frontend == 'freetube' && freetubeFrontend == 'piped' && type === "sub_frame")) {
 
     if (OnlyEmbeddedVideo == 'onlyEmbedded' && type !== "sub_frame") return null;
-    if (OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame") return null;
+    if (
+      OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame" &&
+      !(frontend == 'freetube' && freetubeFrontend == 'piped' && type == "sub_frame")
+    ) return null;
 
     let instancesList = [...pipedRedirectsChecks, ...pipedCustomRedirects];
     if (instancesList.length === 0) return null;
@@ -284,6 +301,8 @@ function redirect(url, type) {
 
     return `${randomInstance}${url.pathname.replace("/shorts/", "/watch?v=")}${url.search}`;
   }
+  console.log(freetubeFrontend)
+  console.log(type)
   return 'CANCEL';
 }
 
@@ -318,12 +337,14 @@ async function init() {
         "pipedRedirectsChecks",
         "pipedCustomRedirects",
         "alwaysusePreferred",
+        "freetubeFrontend",
       ],
       (result) => {
         if (result.youtubeRedirects) redirects = result.youtubeRedirects;
 
         disable = result.disableYoutube ?? false;
         frontend = result.youtubeFrontend ?? 'piped';
+        freetubeFrontend = result.freetubeFrontend ?? 'invidious';
 
         theme = result.youtubeTheme ?? 'DEFAULT';
         volume = result.youtubeVolume ?? '--';
@@ -357,6 +378,9 @@ export default {
   getFrontend,
   setFrontend,
 
+  getFreetubeFrontend,
+  setFreetubeFrontend,
+
   getRedirects,
   getCustomRedirects,
   setInvidiousRedirects,