about summary refs log tree commit diff stats
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 'src/assets')
-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,