about summary refs log tree commit diff stats
path: root/src/assets/javascripts/youtubeMusic.js
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-22 19:39:08 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-22 19:39:08 +0100
commit3bc5cafe65caa86734f6ad9ef13d3a70f5effa4c (patch)
treefe0fa3dda40b4499f55ba936216b4d06c5fee0b5 /src/assets/javascripts/youtubeMusic.js
parentFix workflows issue (diff)
downloadlibredirect-3bc5cafe65caa86734f6ad9ef13d3a70f5effa4c.zip
Make almost all instances follow new protocol structre
Closes https://github.com/libredirect/libredirect/issues/238

Closes https://github.com/libredirect/libredirect/issues/391
Diffstat (limited to 'src/assets/javascripts/youtubeMusic.js')
-rw-r--r--src/assets/javascripts/youtubeMusic.js35
1 files changed, 32 insertions, 3 deletions
diff --git a/src/assets/javascripts/youtubeMusic.js b/src/assets/javascripts/youtubeMusic.js
index fff2ebf8..4a63911b 100644
--- a/src/assets/javascripts/youtubeMusic.js
+++ b/src/assets/javascripts/youtubeMusic.js
@@ -12,26 +12,43 @@ let redirects = {
         "normal": [
             "https://beatbump.ml"
         ],
-        "tor": []
+        "tor": [],
+        "i2p": [],
+        "loki": []
     },
 };
 
 let
     disableYoutubeMusic,
+    protocol,
+    protocolFallback,
     beatbumpNormalRedirectsChecks,
-    beatbumpNormalCustomRedirects;
+    beatbumpNormalCustomRedirects,
+    beatbumpTorCustomRedirects,
+    beatbumpI2pCustomRedirects,
+    beatbumpLokiCustomRedirects;
 
 function init() {
     browser.storage.local.get(
         [
             "disableYoutubeMusic",
+            "protocol",
+            "protocolFallback",
             "beatbumpNormalRedirectsChecks",
             "beatbumpNormalCustomRedirects",
+            "beatbumpTorCustomRedirects",
+            "beatbumpI2pCustomRedirects",
+            "beatbumpLokiCustomRedirects"
         ],
         r => {
             disableYoutubeMusic = r.disableYoutubeMusic;
+            protocol = r.protocol;
+            protocolFallback = r.protocolFallback;
             beatbumpNormalRedirectsChecks = r.beatbumpNormalRedirectsChecks;
             beatbumpNormalCustomRedirects = r.beatbumpNormalCustomRedirects;
+            beatbumpTorCustomRedirects = r.beatbumpTorCustomRedirects;
+            beatbumpI2pCustomRedirects = r.beatbumpI2pCustomRedirects;
+            beatbumpLokiCustomRedirects = r.beatbumpLokiCustomRedirects;
         }
     )
 }
@@ -75,7 +92,13 @@ function redirect(url, disableOverride) {
     if (disableYoutubeMusic && !disableOverride) return;
     if (!targets.some(rx => rx.test(url.href))) return;
 
-    let instancesList = [...beatbumpNormalRedirectsChecks, ...beatbumpNormalCustomRedirects];
+    let instancesList = [];
+    if (protocol == 'loki') instancesList = [...beatbumpLokiCustomRedirects];
+    else if (protocol == 'i2p') instancesList = [...beatbumpI2pCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...beatbumpTorCustomRedirects];
+    if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+        instancesList = [...beatbumpNormalRedirectsChecks, ...beatbumpNormalCustomRedirects];
+    }
     if (instancesList.length === 0) return;
     const randomInstance = utils.getRandomInstance(instancesList);
     return `${randomInstance}${url.pathname}${url.search}`
@@ -93,6 +116,12 @@ async function initDefaults() {
 
             beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
             beatbumpNormalCustomRedirects: [],
+
+            beatbumpTorCustomRedirects: [],
+
+            beatbumpI2pCustomRedirects: [],
+
+            beatbumpLokiCustomRedirects: []
         }, () => resolve())
     )
 }