about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/tiktok.js27
-rw-r--r--src/assets/javascripts/utils.js1
2 files changed, 28 insertions, 0 deletions
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index 50347a93..f8436a12 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.js
@@ -137,6 +137,32 @@ function reverse(url) {
     })
 }
 
+function switchInstance(url) {
+    return new Promise(async resolve => {
+      await init();
+      let protocolHost = utils.protocolHost(url);
+      const all = [
+        ...tiktokRedirects.proxiTok.tor,
+        ...tiktokRedirects.proxiTok.normal,
+  
+        ...proxiTokNormalCustomRedirects,
+        ...proxiTokTorCustomRedirects,
+      ];
+      if (!all.includes(protocolHost)) { resolve(); return; }
+
+      let instancesList;
+      if (tiktokProtocol == 'normal') instancesList = [...proxiTokNormalCustomRedirects, ...proxiTokNormalRedirectsChecks];
+      else if (tiktokProtocol == 'tor') instancesList = [...proxiTokTorCustomRedirects, ...proxiTokTorRedirectsChecks];
+  
+      const i = instancesList.indexOf(protocolHost);
+      if (i > -1) instancesList.splice(i, 1);
+      if (instancesList.length === 0) { resolve(); return; }
+  
+      const randomInstance = utils.getRandomInstance(instancesList);
+      resolve(`${randomInstance}${url.pathname}${url.search}`);
+    })
+  }
+
 function initDefaults() {
     return new Promise(async resolve => {
         fetch('/instances/data.json').then(response => response.text()).then(async data => {
@@ -163,6 +189,7 @@ export default {
 
     redirect,
     reverse,
+    switchInstance,
 
     initProxiTokCookies,
     pasteProxiTokCookies,
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 65bc67d0..113f4e2c 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -443,6 +443,7 @@ function switchInstance(test) {
         if (!newUrl) newUrl = await searchHelper.switchInstance(url);
         if (!newUrl) newUrl = await translateHelper.switchInstance(url);
         if (!newUrl) newUrl = await mediumHelper.switchInstance(url);
+        if (!newUrl) newUrl = await tiktokHelper.switchInstance(url);
         if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url);
         if (!newUrl) newUrl = await peertubeHelper.switchInstance(url);
         if (!newUrl) newUrl = await lbryHelper.switchInstance(url);