diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-04-18 10:25:50 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-04-18 10:25:50 +0300 |
commit | b657b1ae2ba818432fa001b07ed40e04348bb011 (patch) | |
tree | 62954fb50254dee46fc7cf9361025654ac5313a8 /src/assets | |
parent | Opening the offline redirection page if redirection failed 5 times #201 (diff) | |
download | libredirect-b657b1ae2ba818432fa001b07ed40e04348bb011.zip |
Adding Raw Link Copy feature #165
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/imgur.js | 41 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/instagram.js | 19 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 12 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/tiktok.js | 22 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 14 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 19 |
6 files changed, 111 insertions, 16 deletions
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js index 20d7c5b3..a376e404 100644 --- a/src/assets/javascripts/helpers/imgur.js +++ b/src/assets/javascripts/helpers/imgur.js @@ -8,7 +8,7 @@ let redirects = { "rimgo": { "normal": [], "tor": [], - "i2p": [] + "i2p": [] } } const getRedirects = () => redirects; @@ -17,7 +17,7 @@ const getCustomRedirects = function () { "rimgo": { "normal": [...rimgoNormalRedirectsChecks, ...rimgoNormalCustomRedirects], "tor": [...rimgoTorRedirectsChecks, ...rimgoTorCustomRedirects], - "i2p": [...rimgoI2pRedirectsChecks, ...rimgoI2pCustomRedirects] + "i2p": [...rimgoI2pRedirectsChecks, ...rimgoI2pCustomRedirects] }, }; }; @@ -41,10 +41,10 @@ function setRedirects(val) { setRimgoTorRedirectsChecks(rimgoTorRedirectsChecks); for (const item of rimgoI2pRedirectsChecks) - if (!redirects.rimgo.i2p.includes(item)) { - var index = rimgoI2pRedirectsChecks.indexOf(item); - if (index !== -1) rimgoI2pRedirectsChecks.splice(index, 1); - } + if (!redirects.rimgo.i2p.includes(item)) { + var index = rimgoI2pRedirectsChecks.indexOf(item); + if (index !== -1) rimgoI2pRedirectsChecks.splice(index, 1); + } setRimgoI2pRedirectsChecks(rimgoI2pRedirectsChecks); } @@ -149,17 +149,30 @@ function redirect(url, type) { return `${randomInstance}${url.pathname}${url.search}`; } +function reverse(url) { + let protocolHost = commonHelper.protocolHost(url); + if ( + ![...redirects.rimgo.normal, + ...redirects.rimgo.tor, + ...redirects.rimgo.i2p, + ...rimgoNormalCustomRedirects, + ...rimgoTorCustomRedirects, + ...rimgoI2pCustomRedirects].includes(protocolHost) + ) return; + return `https://imgur.com${url.pathname}${url.search}`; +} + function switchInstance(url) { let protocolHost = commonHelper.protocolHost(url); let imgurList = [ ...redirects.rimgo.normal, ...redirects.rimgo.tor, - ...redirects.rimgo.i2p, + ...redirects.rimgo.i2p, ...rimgoNormalCustomRedirects, ...rimgoTorCustomRedirects, - ...rimgoI2pCustomRedirects, + ...rimgoI2pCustomRedirects, ]; if (!imgurList.includes(protocolHost)) return null; @@ -193,12 +206,12 @@ async function init() { "rimgoNormalCustomRedirects", "rimgoTorRedirectsChecks", "rimgoTorCustomRedirects", - "rimgoI2pRedirectsChecks", - "rimgoI2pCustomRedirects", + "rimgoI2pRedirectsChecks", + "rimgoI2pCustomRedirects", "imgurProtocol", ], - r => { + r => { disable = r.disableImgur ?? false; protocol = r.imgurProtocol ?? "normal"; @@ -212,8 +225,8 @@ async function init() { rimgoTorRedirectsChecks = r.rimgoTorRedirectsChecks ?? [...redirects.rimgo.tor]; rimgoTorCustomRedirects = r.rimgoTorCustomRedirects ?? []; - rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks ?? [...redirects.rimgo.i2p]; - rimgoI2pCustomRedirects = r.rimgoI2pCustomRedirects ?? []; + rimgoI2pRedirectsChecks = r.rimgoI2pRedirectsChecks ?? [...redirects.rimgo.i2p]; + rimgoI2pCustomRedirects = r.rimgoI2pCustomRedirects ?? []; resolve(); } @@ -230,6 +243,7 @@ export default { getDisable, setDisable, + getProtocol, setProtocol, @@ -248,6 +262,7 @@ export default { setRimgoI2pCustomRedirects, redirect, + reverse, isImgur, init, switchInstance, diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js index d151dc6b..3528575d 100644 --- a/src/assets/javascripts/helpers/instagram.js +++ b/src/assets/javascripts/helpers/instagram.js @@ -121,6 +121,23 @@ function redirect(url, type, initiator) { return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...' } +function reverse(url) { + let protocolHost = commonHelper.protocolHost(url); + if ( + ![...redirects.bibliogram.normal, + ...redirects.bibliogram.tor, + ...bibliogramNormalCustomRedirects, + ...bibliogramTorCustomRedirects].includes(protocolHost) + ) return; + if (url.pathname.startsWith('/p')) + return `https://instagram.com${url.pathname.replace('/p', '')}${url.search}`; + + if (url.pathname.startsWith('/u')) + return `https://instagram.com${url.pathname.replace('/u', '')}${url.search}`; + + return `https://instagram.com${url.pathname}${url.search}`; +} + function switchInstance(url) { let protocolHost = commonHelper.protocolHost(url); @@ -249,6 +266,8 @@ export default { getDisable, setDisable, + reverse, + getProtocol, setProtocol, diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 77a77d43..9d427c2e 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -366,6 +366,18 @@ function redirect(url, type, initiator) { } } +function reverse(url) { + let protocolHost = commonHelper.protocolHost(url); + if ( + ![...redirects.nitter.normal, + ...redirects.nitter.tor, + ...nitterNormalCustomRedirects, + ...nitterTorCustomRedirects].includes(protocolHost) + ) return; + if(url.pathname.includes('/pics/w:null_')) + return `https://reddit.com${url.pathname}${url.search}`; +} + function switchInstance(url) { let protocolHost = commonHelper.protocolHost(url); diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js index 905cf3ec..44f46ba8 100644 --- a/src/assets/javascripts/helpers/tiktok.js +++ b/src/assets/javascripts/helpers/tiktok.js @@ -95,8 +95,10 @@ function isTiktok(url, initiator) { } function redirect(url, type) { - // https://www.tiktok.com/@keysikaspol/video/7061265241887345946 + // https://www.tiktok.com/@keysikaspol/video/7061265241887345946?for_redirection=@keysikaspol + // https://proxitok.pussthecat.org/video/7061265241887345946 // https://www.tiktok.com/@keysikaspol + // https://proxitok.herokuapp.com/video/7061265241887345946 if (type != "main_frame") return null; @@ -106,11 +108,23 @@ function redirect(url, type) { if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList); - let pathName = url.pathname.replace(new RegExp(/@.*\/(?=video)/), ""); + let pathName = url.pathname.replace(/@.*\/(?=video)/, ""); return `${randomInstance}${pathName}`; } +function reverse(url) { + let protocolHost = commonHelper.protocolHost(url); + if ( + ![...redirects.proxiTok.normal, + ...redirects.proxiTok.tor, + ...proxiTokNormalCustomRedirects, + ...proxiTokTorCustomRedirects].includes(protocolHost) + ) return; + + return `https://tiktok.com${url.pathname}${url.search}`; +} + async function init() { return new Promise(resolve => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -129,7 +143,7 @@ async function init() { "tiktokProtocol" ], r => { - redirects.proxiTok = dataJson.proxiTok; + redirects.proxiTok = dataJson.proxiTok; disable = r.disableTiktok ?? false; protocol = r.tiktokProtocol ?? "normal"; @@ -158,6 +172,8 @@ export default { getDisable, setDisable, + reverse, + getProtocol, setProtocol, diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index e58af78b..ddcfe19a 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -208,6 +208,7 @@ function redirect(url, initiator) { if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList) + // https://pbs.twimg.com/profile_images/648888480974508032/66_cUYfj_400x400.jpg if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") return `${randomInstance}/pic/${encodeURIComponent(url.href)}`; @@ -219,6 +220,17 @@ function redirect(url, initiator) { return `${randomInstance}${url.pathname}${url.search}`; } +function reverse(url) { + let protocolHost = commonHelper.protocolHost(url); + if ( + ![...redirects.nitter.normal, + ...redirects.nitter.tor, + ...nitterNormalCustomRedirects, + ...nitterTorCustomRedirects].includes(protocolHost) + ) return; + return `https://twitter.com${url.pathname}${url.search}`; +} + function switchInstance(url) { let protocolHost = commonHelper.protocolHost(url); @@ -451,6 +463,8 @@ export default { getDisable, setDisable, + reverse, + getEnableCustomSettings, setEnableCustomSettings, diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 4574d6e5..a0b0bfcb 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -371,6 +371,23 @@ function redirect(url, details, initiator) { return 'CANCEL'; } +function reverse(url) { + let protocolHost = commonHelper.protocolHost(url); + + if (![ + ...redirects.invidious.normal, + ...redirects.invidious.tor, + ...invidiousNormalCustomRedirects, + ...invidiousTorCustomRedirects, + ...redirects.piped.normal, + ...redirects.piped.tor, + ...pipedNormalCustomRedirects, + ...pipedTorCustomRedirects, + ].includes(protocolHost)) return; + + return `https://youtube.com${url.pathname}${url.search}`; +} + function switchInstance(url) { let protocolHost = commonHelper.protocolHost(url); if ( @@ -658,6 +675,8 @@ export default { getDisable, setDisable, + reverse, + getEnableCustomSettings, getProtocol, getOnlyEmbeddedVideo, |