From fd844da5e048d6ff476f41a4300ac502172639f5 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Fri, 10 Jun 2022 21:03:38 +0300 Subject: Added Switch Instance to proxiTok & fixed instance fetching for it #326 --- src/assets/javascripts/tiktok.js | 27 +++++++++++++++++++++++++++ src/assets/javascripts/utils.js | 1 + 2 files changed, 28 insertions(+) (limited to 'src/assets') 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); -- cgit 1.4.1