about summary refs log tree commit diff stats
path: root/src/pages/background/background.js
diff options
context:
space:
mode:
authoralefvanoon <53198048+alefvanoon@users.noreply.github.com>2021-12-04 20:37:50 +0100
committerGitHub <noreply@github.com>2021-12-04 20:37:50 +0100
commit5fa9ff1de308fcb605379f0bbfb17ef0bb7f486b (patch)
treeb906d138076c27d9a3df627bd3e0920c7919ace2 /src/pages/background/background.js
parentMerge pull request #2 from MonsieurBibo/patch-1 (diff)
parentPreserved url's path. Only the domain will change now. (diff)
downloadlibredirect-5fa9ff1de308fcb605379f0bbfb17ef0bb7f486b.zip
Merge pull request #3 from ManeraKai/change-instance-btn
Change instance btn
Diffstat (limited to 'src/pages/background/background.js')
-rw-r--r--src/pages/background/background.js76
1 files changed, 50 insertions, 26 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 741bf6a1..dbedd1b2 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -138,8 +138,8 @@ browser.storage.sync.get(
     invidiousDarkMode = result.invidiousDarkMode;
     exceptions = result.exceptions
       ? result.exceptions.map((e) => {
-          return new RegExp(e);
-        })
+        return new RegExp(e);
+      })
       : [];
     invidiousVolume = result.invidiousVolume;
     invidiousPlayerStyle = result.invidiousPlayerStyle;
@@ -323,9 +323,8 @@ function redirectYouTube(url, initiator, type) {
     url.searchParams.append("autoplay", 1);
   }
 
-  return `${
-    invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool)
-  }${url.pathname.replace("/shorts", "")}${url.search}`;
+  return `${invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool)
+    }${url.pathname.replace("/shorts", "")}${url.search}`;
 }
 
 function redirectTwitter(url, initiator) {
@@ -348,17 +347,14 @@ function redirectTwitter(url, initiator) {
     return null;
   }
   if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") {
-    return `${
-      nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
-    }/pic/${encodeURIComponent(url.href)}`;
+    return `${nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
+      }/pic/${encodeURIComponent(url.href)}`;
   } else if (url.pathname.split("/").includes("tweets")) {
-    return `${
-      nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
-    }${url.pathname.replace("/tweets", "")}${url.search}`;
+    return `${nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
+      }${url.pathname.replace("/tweets", "")}${url.search}`;
   } else {
-    return `${
-      nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
-    }${url.pathname}${url.search}`;
+    return `${nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
+      }${url.pathname}${url.search}`;
   }
 }
 
@@ -383,14 +379,12 @@ function redirectInstagram(url, initiator, type) {
     url.pathname === "/" ||
     instagramReservedPaths.includes(url.pathname.split("/")[1])
   ) {
-    return `${
-      bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
-    }${url.pathname}${url.search}`;
+    return `${bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
+      }${url.pathname}${url.search}`;
   } else {
     // Likely a user profile, redirect to '/u/...'
-    return `${
-      bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
-    }/u${url.pathname}${url.search}`;
+    return `${bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
+      }/u${url.pathname}${url.search}`;
   }
 }
 
@@ -416,9 +410,8 @@ function redirectGoogleMaps(url, initiator) {
     params = "&zoom=17";
   }
   // Set map layer
-  params = `${params}&layers=${
-    layers[url.searchParams.get("layer")] || layers["none"]
-  }`;
+  params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]
+    }`;
   // Handle Google Maps Embed API
   if (url.pathname.split("/").includes("embed")) {
     let query = "";
@@ -484,9 +477,8 @@ function redirectGoogleMaps(url, initiator) {
     } else if (url.pathname.match(placeRegex)) {
       query = url.pathname.match(placeRegex)[1];
     }
-    redirect = `${osmInstance}/${query ? "search?query=" + query : ""}${
-      mapCentre || "#"
-    }${params}`;
+    redirect = `${osmInstance}/${query ? "search?query=" + query : ""}${mapCentre || "#"
+      }${params}`;
   }
 
   return redirect;
@@ -586,6 +578,8 @@ function redirectGoogleTranslate(url, initiator) {
   return `${simplyTranslateInstance}/${url.search}`;
 }
 
+var oldDomain = '';
+
 function redirectWikipedia(url, initiator) {
   if (disableWikipedia || isException(url, initiator)) {
     return null;
@@ -622,6 +616,8 @@ function redirectWikipedia(url, initiator) {
   else return null;
 }
 
+
+
 browser.webRequest.onBeforeRequest.addListener(
   (details) => {
     const url = new URL(details.url);
@@ -633,22 +629,27 @@ browser.webRequest.onBeforeRequest.addListener(
     }
     let redirect;
     if (youtubeDomains.includes(url.host)) {
+      oldDomain = 'https://youtube.com/';
       redirect = {
         redirectUrl: redirectYouTube(url, initiator, details.type),
       };
     } else if (twitterDomains.includes(url.host)) {
+      oldDomain = 'https://twitter.com/';
       redirect = {
         redirectUrl: redirectTwitter(url, initiator),
       };
     } else if (instagramDomains.includes(url.host)) {
+      oldDomain = 'https://instagram.com/';
       redirect = {
         redirectUrl: redirectInstagram(url, initiator, details.type),
       };
     } else if (url.href.match(googleMapsRegex)) {
+      oldDomain = 'https://maps.google.com/';
       redirect = {
         redirectUrl: redirectGoogleMaps(url, initiator),
       };
     } else if (redditDomains.includes(url.host)) {
+      oldDomain = 'https://reddit.com/';
       redirect = {
         redirectUrl: redirectReddit(url, initiator, details.type),
       };
@@ -657,14 +658,17 @@ browser.webRequest.onBeforeRequest.addListener(
         redirectUrl: redirectMedium(url, initiator),
       };
     } else if (url.href.match(googleSearchRegex)) {
+      oldDomain = 'https://google.com/';
       redirect = {
         redirectUrl: redirectSearchEngine(url, initiator),
       };
     } else if (googleTranslateDomains.includes(url.host)) {
+      oldDomain = 'https://translate.google.com/';
       redirect = {
         redirectUrl: redirectGoogleTranslate(url, initiator),
       };
     } else if (url.host.match(wikipediaRegex)) {
+      oldDomain = 'https://wikipedia.com/';
       redirect = {
         redirectUrl: redirectWikipedia(url, initiator),
       };
@@ -686,6 +690,8 @@ browser.webRequest.onBeforeRequest.addListener(
   ["blocking"]
 );
 
+
+
 browser.runtime.onInstalled.addListener((details) => {
   browser.storage.sync.get(
     ["disableSearchEngine", "disableSimplyTranslate", "disableWikipedia"],
@@ -729,3 +735,21 @@ browser.runtime.onInstalled.addListener((details) => {
     );
   }
 });
+
+
+function changeInstance() {
+  browser.tabs.query({
+    active: true,
+    lastFocusedWindow: true
+  }, function (tabs) {
+    var tabUrl = new URL(tabs[0].url);
+
+    if (oldDomain != '') {
+      browser.tabs.update({
+        url: tabUrl.href.replace(`${tabUrl.protocol}//${tabUrl.host}/`, oldDomain)
+      });
+    }
+  });
+}
+
+browser.pageAction.onClicked.addListener(changeInstance);
\ No newline at end of file