aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-04-18 10:25:50 +0300
committerManeraKai <manerakai@protonmail.com>2022-04-18 10:25:50 +0300
commitb657b1ae2ba818432fa001b07ed40e04348bb011 (patch)
tree62954fb50254dee46fc7cf9361025654ac5313a8 /src/assets
parentOpening the offline redirection page if redirection failed 5 times #201 (diff)
downloadlibredirect-b657b1ae2ba818432fa001b07ed40e04348bb011.zip
Adding Raw Link Copy feature #165
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/helpers/imgur.js41
-rw-r--r--src/assets/javascripts/helpers/instagram.js19
-rw-r--r--src/assets/javascripts/helpers/reddit.js12
-rw-r--r--src/assets/javascripts/helpers/tiktok.js22
-rw-r--r--src/assets/javascripts/helpers/twitter.js14
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js19
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,