aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-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);