aboutsummaryrefslogtreecommitdiffstats
path: root/src
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
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')
-rw-r--r--src/manifest.json34
-rw-r--r--src/pages/background/background.js76
2 files changed, 79 insertions, 31 deletions
diff --git a/src/manifest.json b/src/manifest.json
index 9a2031f5..83557cfe 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -14,7 +14,25 @@
"48": "assets/images/icon48.png",
"128": "assets/images/icon128.png"
},
- "permissions": ["storage", "webRequest", "webRequestBlocking", "<all_urls>"],
+ "permissions": [
+ "tabs",
+ "storage",
+ "webRequest",
+ "webRequestBlocking",
+ "<all_urls>"
+ ],
+ "page_action": {
+ "show_matches": [
+ "<all_urls>"
+ ],
+ "default_title": "Change Instance",
+ "default_icon": {
+ "16": "assets/images/icon16.png",
+ "32": "assets/images/icon32.png",
+ "48": "assets/images/icon48.png",
+ "128": "assets/images/icon128.png"
+ }
+ },
"browser_action": {
"default_title": "Privacy Redirect",
"default_popup": "pages/popup/popup.html",
@@ -34,7 +52,9 @@
"*://pbs.twimg.com/*",
"*://video.twimg.com/*"
],
- "js": ["assets/javascripts/remove-twitter-sw.js"],
+ "js": [
+ "assets/javascripts/remove-twitter-sw.js"
+ ],
"run_at": "document_start"
},
{
@@ -63,7 +83,9 @@
"*://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion/*",
"*://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion/*"
],
- "js": ["assets/javascripts/persist-invidious-prefs.js"],
+ "js": [
+ "assets/javascripts/persist-invidious-prefs.js"
+ ],
"run_at": "document_start"
}
],
@@ -71,11 +93,13 @@
"page": "pages/options/options.html",
"open_in_tab": false
},
- "web_accessible_resources": ["assets/javascripts/helpers/*"],
+ "web_accessible_resources": [
+ "assets/javascripts/helpers/*"
+ ],
"browser_specific_settings": {
"gecko": {
"id": "{b7f9d2cd-d772-4302-8c3f-eb941af36f76}",
"strict_min_version": "67.0"
}
}
-}
+} \ No newline at end of file
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