about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-03 22:13:17 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-03 22:13:17 +0300
commit3ef2aa7cc112a9c0dad8cf4dc71afcb657ba095d (patch)
treea8159db9cebfa406ad2cef2d827031f04da8bfca /src/assets
parentBump version to 1.4.7 (diff)
downloadlibredirect-3ef2aa7cc112a9c0dad8cf4dc71afcb657ba095d.zip
Added Piped-Material #51
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js25
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js137
2 files changed, 150 insertions, 12 deletions
diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
new file mode 100644
index 00000000..c47b8c86
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
@@ -0,0 +1,25 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.get(
+    [
+        "youtubeTheme",
+        "youtubeAutoplay"
+    ],
+    res => {
+        let prefs = JSON.parse(
+            decodeURIComponent(
+                localStorage.getItem("PREFERENCES")
+            )
+        ) ?? {};
+        let oldPrefs = { ...prefs };
+
+        if (res.youtubeTheme == 'dark') prefs.darkMode = true;
+        if (res.youtubeTheme == 'light') prefs.darkMode = false;
+
+        if (res.youtubeAutoplay != "DEFAULT") prefs.playerAutoplay = res.youtubeAutoplay;
+
+        if (oldPrefs != prefs) localStorage.setItem("PREFERENCES", encodeURIComponent(JSON.stringify(prefs)));
+    }
+)
+
+window.onunload = () => localStorage.removeItem("PREFERENCES");
\ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 0277221c..3866f72e 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -35,8 +35,8 @@ let redirects = {
   },
   "pipedMaterial": {
     "normal": [
-      "https://piped-material.১.net/",
-      "https://piped-material.ftp.sh/",
+      "https://piped-material.xn--17b.net",
+      "https://piped-material.ftp.sh",
     ],
     "tor": []
   }
@@ -79,7 +79,6 @@ function setInvidiousNormalCustomRedirects(val) {
   console.log("invidiousNormalCustomRedirects: ", val)
 }
 
-
 let invidiousTorRedirectsChecks;
 const getInvidiousTorRedirectsChecks = () => invidiousTorRedirectsChecks;
 function setInvidiousTorRedirectsChecks(val) {
@@ -96,7 +95,6 @@ function setInvidiousTorCustomRedirects(val) {
   console.log("invidiousTorCustomRedirects: ", val)
 }
 
-
 let pipedNormalRedirectsChecks;
 const getPipedNormalRedirectsChecks = () => pipedNormalRedirectsChecks;
 function setPipedNormalRedirectsChecks(val) {
@@ -113,7 +111,6 @@ function setPipedNormalCustomRedirects(val) {
   console.log("pipedNormalCustomRedirects: ", val)
 }
 
-
 let pipedTorRedirectsChecks;
 const getPipedTorRedirectsChecks = () => pipedTorRedirectsChecks;
 function setPipedTorRedirectsChecks(val) {
@@ -136,6 +133,44 @@ function setPipedRedirects(val) {
   console.log("pipedRedirects: ", val)
 }
 
+let pipedMaterialNormalRedirectsChecks;
+const getPipedMaterialNormalRedirectsChecks = () => pipedMaterialNormalRedirectsChecks;
+function setPipedMaterialNormalRedirectsChecks(val) {
+  pipedMaterialNormalRedirectsChecks = val;
+  browser.storage.local.set({ pipedMaterialNormalRedirectsChecks })
+  console.log("pipedMaterialNormalRedirectsChecks: ", val)
+}
+
+let pipedMaterialNormalCustomRedirects = [];
+const getPipedMaterialNormalCustomRedirects = () => pipedMaterialNormalCustomRedirects;
+function setPipedMaterialNormalCustomRedirects(val) {
+  pipedMaterialNormalCustomRedirects = val;
+  browser.storage.local.set({ pipedMaterialNormalCustomRedirects })
+  console.log("pipedMaterialNormalCustomRedirects: ", val)
+}
+
+let pipedMaterialTorRedirectsChecks;
+const getPipedMaterialTorRedirectsChecks = () => pipedMaterialTorRedirectsChecks;
+function setPipedMaterialTorRedirectsChecks(val) {
+  pipedMaterialTorRedirectsChecks = val;
+  browser.storage.local.set({ pipedMaterialTorRedirectsChecks })
+  console.log("pipedMaterialTorRedirectsChecks: ", val)
+}
+
+let pipedMaterialTorCustomRedirects = [];
+const getPipedMaterialTorCustomRedirects = () => pipedMaterialTorCustomRedirects;
+function setPipedMaterialTorCustomRedirects(val) {
+  pipedMaterialTorCustomRedirects = val;
+  browser.storage.local.set({ pipedMaterialTorCustomRedirects })
+  console.log("pipedMaterialTorCustomRedirects: ", val)
+}
+
+function setPipedMaterialRedirects(val) {
+  redirects.pipedMaterial = val;
+  browser.storage.local.set({ youtubeRedirects: redirects })
+  console.log("pipedMaterialRedirects: ", val)
+}
+
 let disable;
 const getDisable = () => disable;
 function setDisable(val) {
@@ -386,28 +421,55 @@ function redirect(url, details, initiator) {
 
     return `${randomInstance}${url.pathname}${url.search}`;
   }
+  else if (frontend == 'pipedMaterial' ||
+    ((frontend == 'freetube' || frontend == 'yatte') && youtubeEmbedFrontend == 'pipedMaterial' && details.type === "sub_frame")) {
+    if (OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") return null;
+    if (
+      OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
+      !((frontend == 'freetube' || frontend == 'yatte') && youtubeEmbedFrontend == 'pipedMaterial' && details.type == "sub_frame")
+    ) return null;
+
+    let instancesList;
+    if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+    let randomInstance = commonHelper.getRandomInstance(instancesList);
+
+    return `${randomInstance}${url.pathname}${url.search}`;
+  }
   return 'CANCEL';
 }
 
 function changeInstance(url) {
+  console.log("changeInstance Youtube");
 
   let protocolHost = `${url.protocol}//${url.host}`;
 
+  console.log("protocolHost", protocolHost);
+
   if (
     protocol == 'normal' &&
     ![
       ...redirects.invidious.normal,
       ...redirects.piped.normal,
+      ...redirects.pipedMaterial.normal,
+
       ...invidiousNormalCustomRedirects,
-      ...pipedNormalCustomRedirects
+      ...pipedNormalCustomRedirects,
+      ...pipedMaterialNormalCustomRedirects
+    ].includes(protocolHost)
+  ) return null;
+
+  if (protocol == 'tor' &&
+    ![
+      ...redirects.invidious.tor,
+      ...redirects.piped.tor,
+      ...redirects.pipedMaterial.tor,
+
+      ...invidiousTorCustomRedirects,
+      ...pipedTorCustomRedirects,
+      ...pipedMaterialTorCustomRedirects
     ].includes(protocolHost)
   ) return null;
-  if (protocol == 'tor' && ![
-    ...redirects.invidious.tor,
-    ...redirects.piped.tor,
-    ...invidiousTorCustomRedirects,
-    ...pipedTorCustomRedirects
-  ].includes(protocolHost)) return null;
 
   let instancesList;
   if (frontend == 'invidious') {
@@ -418,6 +480,11 @@ function changeInstance(url) {
     if (protocol == 'normal') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
     else if (protocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
   }
+  else if (frontend == 'pipedMaterial') {
+
+    if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+  }
 
   console.log("instancesList", instancesList);
   let index = instancesList.indexOf(protocolHost);
@@ -468,6 +535,14 @@ function isUrlPipedorInvidious(url, frontend) {
       ...pipedTorCustomRedirects,
     ].includes(protocolHost);
 
+  if (frontend == 'pipedMaterial')
+    return [
+      ...redirects.pipedMaterial.normal,
+      ...redirects.pipedMaterial.tor,
+      ...pipedMaterialNormalCustomRedirects,
+      ...pipedMaterialTorCustomRedirects,
+    ].includes(protocolHost);
+
   return [
     ...redirects.invidious.normal,
     ...redirects.invidious.tor,
@@ -567,6 +642,16 @@ function initPipedLocalStorage(tabId) {
   );
 }
 
+function initPipedMaterialLocalStorage(tabId) {
+  browser.tabs.executeScript(
+    tabId,
+    {
+      file: "/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js",
+      runAt: "document_start"
+    }
+  );
+}
+
 function initInvidiousCookies(tabId) {
   browser.tabs.executeScript(
     tabId,
@@ -605,6 +690,12 @@ async function init() {
           "pipedNormalRedirectsChecks",
           "pipedNormalCustomRedirects",
 
+          "pipedMaterialNormalRedirectsChecks",
+          "pipedMaterialNormalCustomRedirects",
+
+          "pipedMaterialTorRedirectsChecks",
+          "pipedMaterialTorCustomRedirects",
+
           "pipedTorRedirectsChecks",
           "pipedTorCustomRedirects",
           "alwaysUsePreferred",
@@ -646,6 +737,13 @@ async function init() {
           pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
           pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? [];
 
+
+          pipedMaterialNormalRedirectsChecks = result.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal];
+          pipedMaterialNormalCustomRedirects = result.pipedMaterialNormalCustomRedirects ?? [];
+
+          pipedMaterialTorRedirectsChecks = result.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor];
+          pipedMaterialTorCustomRedirects = result.pipedMaterialTorCustomRedirects ?? [];
+
           persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
 
           alwaysUsePreferred = result.alwaysUsePreferred ?? true;
@@ -665,6 +763,7 @@ export default {
   setBypassWatchOnYoutube,
   initInvidiousCookies,
   initPipedLocalStorage,
+  initPipedMaterialLocalStorage,
 
   getFrontend,
   setFrontend,
@@ -741,6 +840,20 @@ export default {
   getPipedTorCustomRedirects,
   setPipedTorCustomRedirects,
 
+  getPipedMaterialNormalRedirectsChecks,
+  setPipedMaterialNormalRedirectsChecks,
+
+  getPipedMaterialNormalCustomRedirects,
+  setPipedMaterialNormalCustomRedirects,
+
+  getPipedMaterialTorRedirectsChecks,
+  setPipedMaterialTorRedirectsChecks,
+
+  getPipedMaterialTorCustomRedirects,
+  setPipedMaterialTorCustomRedirects,
+
+  setPipedMaterialRedirects,
+
   getExceptions,
   setExceptions,
   isException,