diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-04-27 19:51:34 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-04-27 19:51:34 +0300 |
commit | eb1d01b0639665645167a2e35df9d2bc4ef72b8d (patch) | |
tree | 9844cab138885389a39d4b6f9ebc7322ec5bbd29 /src/assets/javascripts/helpers | |
parent | Improving code structure. Added libreddit settings #192 (diff) | |
download | libredirect-eb1d01b0639665645167a2e35df9d2bc4ef72b8d.zip |
Added proxiTok settings #197
Diffstat (limited to 'src/assets/javascripts/helpers')
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 47 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/tiktok.js | 144 |
2 files changed, 116 insertions, 75 deletions
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 9cd7600b..35aec749 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -7,18 +7,15 @@ const targets = [ /^https?:\/{2}(i\.|preview\.)redd\.it/, ]; let redirects = { - // modern UI "libreddit": { "normal": [], "tor": [] }, - // old UI "teddit": { "normal": [], "tor": [] }, "desktop": "https://old.reddit.com", // desktop - "mobile": "https://i.reddit.com", // mobile }; const getRedirects = () => redirects; const getCustomRedirects = function () { @@ -186,10 +183,7 @@ function initLibredditCookies() { } } function initTedditCookies() { - let themeValue; - if (theme == 'light') themeValue = 'white'; - if (theme == 'dark') themeValue = 'dark'; - if (enableCustom && themeValue) { + if (enableCustom) { let checkedInstances = [ ...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects, @@ -200,26 +194,25 @@ function initTedditCookies() { browser.cookies.set({ url: instanceUrl, name: "theme", - value: themeValue + value: theme == 'dark' ? 'dark' : 'white' }) } } let alwaysUsePreferred; -// https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4 -// https://libreddit.exonip.de/img/4v3t1vgvrzk81.png - -// https://teddit.net/vids/1mq8d0ma3yk81.mp4 -// https://teddit.net/pics/w:null_4v3t1vgvrzk81.png +function redirect(url, type, initiator) { + // https://libreddit.exonip.de/vid/1mq8d0ma3yk81/720.mp4 + // https://libreddit.exonip.de/img/4v3t1vgvrzk81.png + // https://teddit.net/vids/1mq8d0ma3yk81.mp4 + // https://teddit.net/pics/w:null_4v3t1vgvrzk81.png -// redd.it/t5379n -// https://v.redd.it/z08avb339n801/DASH_1_2_M -// https://i.redd.it/bfkhs659tzk81.jpg + // redd.it/t5379n + // https://v.redd.it/z08avb339n801/DASH_1_2_M + // https://i.redd.it/bfkhs659tzk81.jpg -function redirect(url, type, initiator) { if (disableReddit) return null; let protocolHost = commonHelper.protocolHost(url); @@ -263,17 +256,15 @@ function redirect(url, type, initiator) { if ( bypassWatchOnReddit && initiator && - ( - [...redirects.libreddit.normal, - ...redirects.libreddit.tor, - ...libredditNormalCustomRedirects, - ...libredditTorCustomRedirects, - ...redirects.teddit.normal, - ...redirects.teddit.tor, - ...tedditNormalCustomRedirects, - ...tedditTorCustomRedirects, - ].includes(initiator.origin) - ) + [...redirects.libreddit.normal, + ...redirects.libreddit.tor, + ...libredditNormalCustomRedirects, + ...libredditTorCustomRedirects, + ...redirects.teddit.normal, + ...redirects.teddit.tor, + ...tedditNormalCustomRedirects, + ...tedditTorCustomRedirects, + ].includes(initiator.origin) ) return 'BYPASSTAB'; if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null; diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js index fbadc2af..bd918495 100644 --- a/src/assets/javascripts/helpers/tiktok.js +++ b/src/assets/javascripts/helpers/tiktok.js @@ -81,24 +81,43 @@ function setDisable(val) { } let protocol; -const getProtocol = () => protocol; -function setProtocol(val) { - protocol = val; - browser.storage.local.set({ tiktokProtocol: val }) - console.log("tiktokProtocol: ", val) -} - -function isTiktok(url, initiator) { - if (disable) return false; - if (initiator && ([...redirects.proxiTok.normal, ...proxiTokNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return false; - return targets.some(rx => rx.test(url.href)); +let enableCustom; + +let theme; +let api_legacy; + +function initProxiTokCookies() { + console.log('initProxiTokCookies') + if (enableCustom) { + let checkedInstances = [ + ...proxiTokNormalRedirectsChecks, + ...proxiTokNormalCustomRedirects, + ...proxiTokTorRedirectsChecks, + ...proxiTokTorCustomRedirects + ] + + for (const instance of checkedInstances) { + browser.cookies.set({ url: instance, name: "theme", value: theme }) + browser.cookies.set({ url: instance, name: "api-legacy", value: api_legacy ? 'on' : 'off' }) + } + } } -function redirect(url, type) { - // https://www.tiktok.com/@keysikaspol/video/7061265241887345946?for_redirection=@keysikaspol - // https://proxitok.pussthecat.org/video/7061265241887345946 +function redirect(url, type, initiator) { + if (disable) return; + if (initiator && + ( + [ + ...redirects.proxiTok.normal, + ...proxiTokNormalCustomRedirects + ].includes(initiator.origin) || + targets.includes(initiator.host) + ) + ) return; + if (!targets.some(rx => rx.test(url.href))) return; + // https://www.tiktok.com/@keysikaspol/video/7061265241887345946 // https://www.tiktok.com/@keysikaspol - // https://proxitok.herokuapp.com/video/7061265241887345946 + if (type != "main_frame") return null; @@ -108,8 +127,6 @@ function redirect(url, type) { if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList); - // let pathName = url.pathname.replace(/@.*\/(?=video)/, ""); - return `${randomInstance}${url.pathname}`; } @@ -125,42 +142,76 @@ function reverse(url) { return `https://tiktok.com${url.pathname}${url.search}`; } +async function initDefaults() { + return new Promise(async resolve => { + fetch('/instances/data.json').then(response => response.text()).then(async data => { + let dataJson = JSON.parse(data); + redirects.proxiTok = dataJson.proxiTok; + await browser.storage.local.set({ + disableTiktok: false, + tiktokProtocol: "normal", + + tiktokRedirects: { + 'proxiTok': redirects.proxiTok, + }, + + proxiTokNormalRedirectsChecks: [...redirects.proxiTok.normal], + proxiTokNormalCustomRedirects: [], + + proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor], + proxiTokTorCustomRedirects: [], + + enableTiktokCustomSettings: false, + + proxiTokTheme: 'default', + proxiTokApiLegacy: 'off', + + }); + resolve(); + }); + }) +} + async function init() { return new Promise(resolve => { - fetch('/instances/data.json').then(response => response.text()).then(data => { - let dataJson = JSON.parse(data); - browser.storage.local.get( - [ - "disableTiktok", - "tiktokRedirects", + console.log('redirects', redirects) + browser.storage.local.get( + [ + "disableTiktok", + "tiktokProtocol", + "tiktokRedirects", - "proxiTokNormalRedirectsChecks", - "proxiTokNormalCustomRedirects", + "proxiTokNormalRedirectsChecks", + "proxiTokNormalCustomRedirects", - "proxiTokTorRedirectsChecks", - "proxiTokTorCustomRedirects", + "proxiTokTorRedirectsChecks", + "proxiTokTorCustomRedirects", - "tiktokProtocol" - ], - r => { - redirects.proxiTok = dataJson.proxiTok; - disable = r.disableTiktok ?? false; + "enableTiktokCustomSettings", - protocol = r.tiktokProtocol ?? "normal"; + "proxiTokTheme", + "proxiTokApiLegacy", + ], + r => { + disable = r.disableTiktok; + protocol = r.tiktokProtocol; + redirects = r.tiktokRedirects; - if (r.tiktokRedirects) redirects = r.tiktokRedirects; + proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks; + proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects; - proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks ?? [...redirects.proxiTok.normal]; - proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects ?? []; + proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks; + proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects; - proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks ?? [...redirects.proxiTok.tor]; - proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects ?? []; + enableCustom = r.enableTiktokCustomSettings; - resolve(); - } - ) - }); - }); + theme = r.proxiTokTheme; + api_legacy = r.proxiTokApiLegacy; + + resolve(); + } + ) + }) } export default { @@ -174,9 +225,6 @@ export default { reverse, - getProtocol, - setProtocol, - getProxiTokNormalRedirectsChecks, setProxiTokNormalRedirectsChecks, getProxiTokTorRedirectsChecks, @@ -187,7 +235,9 @@ export default { getProxiTokNormalCustomRedirects, setProxiTokNormalCustomRedirects, + initProxiTokCookies, + redirect, - isTiktok, + initDefaults, init, }; |