about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-26 01:31:48 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-26 01:31:48 +0300
commit41e145bf7a63fc0a181370005f780d5e85f72e83 (patch)
tree05749311c1a8c7fa256dd5d2114776c7f706009b /src/assets
parentAdded youtube embed exceptions #46 (diff)
downloadlibredirect-41e145bf7a63fc0a181370005f780d5e85f72e83.zip
Made auto changing instances manual #59
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/imgur.js27
-rw-r--r--src/assets/javascripts/helpers/instagram.js27
-rw-r--r--src/assets/javascripts/helpers/medium.js28
-rw-r--r--src/assets/javascripts/helpers/reddit.js65
-rw-r--r--src/assets/javascripts/helpers/search.js44
-rw-r--r--src/assets/javascripts/helpers/translate.js41
-rw-r--r--src/assets/javascripts/helpers/twitter.js27
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js27
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js20
9 files changed, 289 insertions, 17 deletions
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index 560c396d..927ce4a7 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -118,6 +118,32 @@ function redirect(url, type) {
     return `${randomInstance}${url.pathname}${url.search}`;
 }
 
+function changeInstance(url) {
+    let protocolHost = `${url.protocol}//${url.host}`;
+
+    let imgurList = [
+        ...redirects.rimgo.normal,
+        ...redirects.rimgo.tor,
+
+        ...rimgoNormalCustomRedirects,
+        ...rimgoTorCustomRedirects,
+    ];
+    if (!imgurList.includes(protocolHost)) return null;
+
+    let instancesList;
+    if (protocol == 'normal') instancesList = [...rimgoNormalCustomRedirects, ...rimgoNormalRedirectsChecks];
+    else if (protocol == 'tor') instancesList = [...rimgoTorCustomRedirects, ...rimgoTorRedirectsChecks];
+
+    console.log("instancesList", instancesList);
+    let index = instancesList.indexOf(protocolHost);
+    if (index > -1) instancesList.splice(index, 1);
+
+    if (instancesList.length === 0) return null;
+
+    let randomInstance = commonHelper.getRandomInstance(instancesList);
+    return randomInstance;
+}
+
 async function init() {
     return new Promise((resolve) => {
         fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -179,4 +205,5 @@ export default {
     redirect,
     isImgur,
     init,
+    changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index 9aeeebc0..410d6377 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -135,6 +135,32 @@ function redirect(url, type) {
     return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let instagramList = [
+    ...redirects.bibliogram.normal,
+    ...redirects.bibliogram.tor,
+    ...bibliogramNormalCustomRedirects,
+    ...bibliogramTorCustomRedirects,
+  ];
+
+  if (!instagramList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (protocol == 'normal') instancesList = [...bibliogramNormalCustomRedirects, ...bibliogramNormalRedirectsChecks];
+  else if (protocol == 'tor') instancesList = [...bibliogramTorCustomRedirects, ...bibliogramTorRedirectsChecks];
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+}
+
 
 async function init() {
   return new Promise((resolve) => {
@@ -199,4 +225,5 @@ export default {
 
   redirect,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 7bd5aa68..0c0455c0 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -128,6 +128,33 @@ function redirect(url, type) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let mediumList = [
+    ...redirects.scribe.tor,
+    ...redirects.scribe.normal,
+
+    ...scribeNormalCustomRedirects,
+    ...scribeTorCustomRedirects,
+  ];
+
+  if (!mediumList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (protocol == 'normal') instancesList = [...scribeNormalCustomRedirects, ...scribeNormalRedirectsChecks];
+  else if (protocol == 'tor') instancesList = [...scribeTorCustomRedirects, ...scribeTorRedirectsChecks];
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+}
+
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -189,4 +216,5 @@ export default {
   redirect,
   isMedium,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 382f15cc..26350ef7 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -169,11 +169,11 @@ function setDisableReddit(val) {
   browser.storage.local.set({ disableReddit })
 }
 
-let redditFrontend;
-const getRedditFrontend = () => redditFrontend;
-function setRedditFrontend(val) {
-  redditFrontend = val;
-  browser.storage.local.set({ redditFrontend })
+let frontend;
+const getFrontend = () => frontend;
+function setFrontend(val) {
+  frontend = val;
+  browser.storage.local.set({ redditFrontend: frontend })
 };
 
 let protocol;
@@ -184,7 +184,6 @@ function setProtocol(val) {
   console.log("redditProtocol: ", val)
 }
 
-
 function isReddit(url, initiator) {
   if (
     initiator &&
@@ -223,12 +222,12 @@ function redirect(url, type) {
     return `${libredditRandomInstance}/img${url.pathname}${url.search}`;
   }
   else if (url.host === "redd.it") {
-    if (redditFrontend == 'libreddit') {
+    if (frontend == 'libreddit') {
       if (libredditInstancesList.length === 0) return null;
       let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList);
       return `${libredditRandomInstance}${url.pathname}${url.search}`;
     }
-    if (redditFrontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) {
+    if (frontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) {
       if (tedditInstancesList.length === 0) return null;
       let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList);
       // As of 2021-04-22, redirects for teddit redd.it/foo links don't work.
@@ -241,18 +240,57 @@ function redirect(url, type) {
       return `${tedditRandomInstance}/comments${url.pathname}${url.search}`;
     }
   }
-  if (redditFrontend == 'libreddit') {
+  if (frontend == 'libreddit') {
     if (libredditInstancesList.length === 0) return null;
     let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList);
     return `${libredditRandomInstance}${url.pathname}${url.search}`;
   }
-  if (redditFrontend == 'teddit') {
+  if (frontend == 'teddit') {
     if (tedditInstancesList.length === 0) return null;
     let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList);
     return `${tedditRandomInstance}${url.pathname}${url.search}`;
   }
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let redditList = [
+    ...redirects.libreddit.normal,
+    ...redirects.libreddit.tor,
+
+    ...libredditNormalCustomRedirects,
+    ...libredditTorCustomRedirects,
+
+    ...redirects.teddit.normal,
+    ...redirects.teddit.tor,
+
+    ...tedditNormalCustomRedirects,
+    ...tedditTorCustomRedirects,
+  ]
+
+  if (!redditList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (frontend == 'libreddit') {
+    if (protocol == 'normal') instancesList = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...libredditTorRedirectsChecks, ...libredditTorCustomRedirects];
+  }
+  else if (frontend == 'teddit') {
+    if (protocol == 'normal') instancesList = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...tedditTorRedirectsChecks, ...tedditTorCustomRedirects];
+  }
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+}
+
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -277,7 +315,7 @@ async function init() {
         ], (result) => {
           disableReddit = result.disableReddit ?? false;
           protocol = result.redditProtocol ?? 'normal';
-          redditFrontend = result.redditFrontend ?? 'libreddit';
+          frontend = result.redditFrontend ?? 'libreddit';
 
           redirects.teddit = dataJson.teddit;
           if (result.redditRedirects) redirects = result.redditRedirects;
@@ -313,8 +351,8 @@ export default {
   getDisableReddit,
   setDisableReddit,
 
-  getRedditFrontend,
-  setRedditFrontend,
+  getFrontend,
+  setFrontend,
 
   getProtocol,
   setProtocol,
@@ -342,4 +380,5 @@ export default {
   redirect,
   isReddit,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 789f7d97..efbc10d3 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -186,6 +186,45 @@ function redirect(url) {
   return `${randomInstance}${path}?${searchQuery}`;
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let searchList = [
+    ...redirects.searx.normal,
+    ...redirects.searx.tor,
+
+    ...searxNormalCustomRedirects,
+    ...searxTorCustomRedirects,
+
+    ...redirects.whoogle.normal,
+    ...redirects.whoogle.tor,
+
+    ...whoogleNormalCustomRedirects,
+    ...whoogleTorCustomRedirects,
+  ]
+
+  if (!searchList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (frontend == 'searx') {
+    if (protocol == 'normal') instancesList = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...searxTorRedirectsChecks, ...searxTorCustomRedirects];
+  }
+  else if (frontend == 'whoogle') {
+    if (protocol == 'normal') instancesList = [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects];
+  }
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+}
+
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -198,13 +237,13 @@ async function init() {
 
           "whoogleNormalRedirectsChecks",
           "whoogleNormalCustomRedirects",
-          
+
           "whoogleTorRedirectsChecks",
           "whoogleTorCustomRedirects",
 
           "searxNormalRedirectsChecks",
           "searxNormalCustomRedirects",
-          
+
           "searxTorRedirectsChecks",
           "searxTorCustomRedirects",
 
@@ -279,4 +318,5 @@ export default {
 
   redirect,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js
index 72ba8a58..1f92bb78 100644
--- a/src/assets/javascripts/helpers/translate.js
+++ b/src/assets/javascripts/helpers/translate.js
@@ -220,6 +220,46 @@ function redirect(url) {
   }
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let translateList = [
+    ...redirects.simplyTranslate.normal,
+    ...redirects.simplyTranslate.tor,
+
+    ...simplyTranslateNormalCustomRedirects,
+    ...simplyTranslateTorCustomRedirects,
+
+    ...redirects.lingva.normal,
+    ...redirects.lingva.tor,
+
+    ...lingvaNormalCustomRedirects,
+    ...lingvaTorCustomRedirects,
+  ]
+
+  if (!translateList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (frontend == 'simplyTranslate') {
+    if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects];
+  }
+  else if (frontend == 'lingva') {
+    if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects];
+    else if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects];
+  }
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+
+}
+
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -318,4 +358,5 @@ export default {
 
   redirect,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 3757edc4..4465aba4 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -132,6 +132,32 @@ function redirect(url) {
     return `${randomInstance}${url.pathname}${url.search}`;
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let twitterList = [
+    ...redirects.nitter.normal,
+    ...redirects.nitter.tor,
+    ...nitterNormalCustomRedirects,
+    ...nitterTorCustomRedirects,
+  ];
+
+  if (!twitterList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (protocol == 'normal') instancesList = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects];
+  else if (protocol == 'tor') instancesList = [...nitterTorRedirectsChecks, ...nitterTorCustomRedirects];
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+}
+
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -193,4 +219,5 @@ export default {
   redirect,
   isTwitter,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 02110639..402b3009 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -134,6 +134,32 @@ function redirect(url) {
 
 }
 
+function changeInstance(url) {
+  let protocolHost = `${url.protocol}//${url.host}`;
+
+  let wikipediaList = [
+    ...redirects.wikiless.normal,
+    ...redirects.wikiless.tor,
+
+    ...wikilessNormalCustomRedirects,
+    ...wikilessTorCustomRedirects,
+  ]
+  if (!wikipediaList.includes(protocolHost)) return null;
+
+  let instancesList;
+  if (protocol == 'normal') instancesList = [...wikilessNormalCustomRedirects, ...wikilessNormalRedirectsChecks];
+  else if (protocol == 'tor') instancesList = [...wikilessTorCustomRedirects, ...wikilessTorRedirectsChecks];
+
+  console.log("instancesList", instancesList);
+  let index = instancesList.indexOf(protocolHost);
+  if (index > -1) instancesList.splice(index, 1);
+
+  if (instancesList.length === 0) return null;
+
+  let randomInstance = commonHelper.getRandomInstance(instancesList);
+  return randomInstance;
+}
+
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {
@@ -193,4 +219,5 @@ export default {
   redirect,
   isWikipedia,
   init,
+  changeInstance,
 };
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 55f18555..f17b4626 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -383,6 +383,23 @@ function redirect(url, type, details) {
 function changeInstance(url) {
 
   let protocolHost = `${url.protocol}//${url.host}`;
+
+  if (
+    protocol == 'normal' &&
+    ![
+      ...redirects.invidious.normal,
+      ...redirects.piped.normal,
+      ...invidiousNormalCustomRedirects,
+      ...pipedNormalCustomRedirects
+    ].includes(protocolHost)
+  ) return null;
+  if (protocol == 'tor' && ![
+    ...redirects.invidious.tor,
+    ...redirects.piped.tor,
+    ...invidiousTorCustomRedirects,
+    ...pipedTorCustomRedirects
+  ].includes(protocolHost)) return null;
+
   let instancesList;
   if (frontend == 'invidious') {
     if (protocol == 'normal') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
@@ -399,7 +416,7 @@ function changeInstance(url) {
 
   if (instancesList.length === 0) return null;
   let randomInstance = commonHelper.getRandomInstance(instancesList);
-  return `${randomInstance}${url.pathname}${url.search}`;
+  return randomInstance;
 }
 
 function isPipedorInvidious(url, type) {
@@ -527,7 +544,6 @@ function invidiousInitCookies(tabId) {
   );
 }
 
-
 async function init() {
   return new Promise((resolve) => {
     fetch('/instances/data.json').then(response => response.text()).then(data => {