about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-19 01:19:46 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-19 01:19:46 +0300
commitd333b966021ec5b8c201884c78d1588fc0ebeec7 (patch)
tree7de85ab9d2ba1a7bb92e71ee9b34918e69e63040
parentRestricted auto redirection to only 503, 504. Added a 'Cancel Redirection' btn (diff)
downloadlibredirect-d333b966021ec5b8c201884c78d1588fc0ebeec7.zip
Added buttons to the browser_action menu
-rw-r--r--src/assets/javascripts/helpers/.spotify.js4
-rw-r--r--src/assets/javascripts/helpers/imgur.js4
-rw-r--r--src/assets/javascripts/helpers/instagram.js4
-rw-r--r--src/assets/javascripts/helpers/lbry.js4
-rw-r--r--src/assets/javascripts/helpers/medium.js4
-rw-r--r--src/assets/javascripts/helpers/peertube.js4
-rw-r--r--src/assets/javascripts/helpers/reddit.js8
-rw-r--r--src/assets/javascripts/helpers/search.js4
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js4
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js4
-rw-r--r--src/assets/javascripts/helpers/twitter.js6
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js4
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js8
-rw-r--r--src/manifest.json5
-rw-r--r--src/pages/background/background.js74
-rw-r--r--src/pages/popup/popup.js28
16 files changed, 97 insertions, 72 deletions
diff --git a/src/assets/javascripts/helpers/.spotify.js b/src/assets/javascripts/helpers/.spotify.js
index 10fbdcb6..8319f9bc 100644
--- a/src/assets/javascripts/helpers/.spotify.js
+++ b/src/assets/javascripts/helpers/.spotify.js
@@ -90,7 +90,7 @@ function setProtocol(val) {
     console.log("spotifyTargetsProtocol: ", val)
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
     let protocolHost = `${url.protocol}//${url.host}`;
 
     let sojuList = [
@@ -197,7 +197,7 @@ export default {
     getSojuNormalCustomRedirects,
     setSojuNormalCustomRedirects,
 
-    changeInstance,
+    switchInstance,
 
     redirect,
     init,
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index 73f62c5d..6018fc87 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -118,7 +118,7 @@ function redirect(url, type) {
     return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
     let protocolHost = `${url.protocol}//${url.host}`;
 
     let imgurList = [
@@ -207,5 +207,5 @@ export default {
     redirect,
     isImgur,
     init,
-    changeInstance,
+    switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index cad49d22..bae8147e 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -120,7 +120,7 @@ function redirect(url, type, initiator) {
     return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let instagramList = [
@@ -266,5 +266,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/lbry.js b/src/assets/javascripts/helpers/lbry.js
index c1eb4600..56857f17 100644
--- a/src/assets/javascripts/helpers/lbry.js
+++ b/src/assets/javascripts/helpers/lbry.js
@@ -96,7 +96,7 @@ function setProtocol(val) {
     console.log("lbryTargetsProtocol: ", val)
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
     let protocolHost = `${url.protocol}//${url.host}`;
 
     let librarianList = [
@@ -198,7 +198,7 @@ export default {
     getLibrarianNormalCustomRedirects,
     setLibrarianNormalCustomRedirects,
 
-    changeInstance,
+    switchInstance,
 
     redirect,
     init,
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 4bd323c9..3d002445 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -134,7 +134,7 @@ function redirect(url, type, initiator) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let mediumList = [
@@ -221,5 +221,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/peertube.js b/src/assets/javascripts/helpers/peertube.js
index 8254a382..a68eddba 100644
--- a/src/assets/javascripts/helpers/peertube.js
+++ b/src/assets/javascripts/helpers/peertube.js
@@ -91,7 +91,7 @@ function setProtocol(val) {
     console.log("peertubeTargetsProtocol: ", val)
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
     let protocolHost = `${url.protocol}//${url.host}`;
 
     let simpleertubeList = [
@@ -200,7 +200,7 @@ export default {
     getSimpleertubeNormalCustomRedirects,
     setSimpleertubeNormalCustomRedirects,
 
-    changeInstance,
+    switchInstance,
 
     redirect,
     init,
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 500a3925..9dd900ac 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -275,12 +275,12 @@ function redirect(url, type, initiator) {
   if (
     alwaysUsePreferred && frontend == 'teddit' &&
     (isTeddit || isLibreddit) && !isCheckedTeddit
-  ) return changeInstance(url);
+  ) return switchInstance(url);
 
   if (
     alwaysUsePreferred && frontend == 'libreddit' &&
     (isTeddit || isLibreddit) && !isCheckedLibreddit
-  ) return changeInstance(url);
+  ) return switchInstance(url);
 
   if (!targets.some((rx) => rx.test(url.href))) return null;
 
@@ -364,7 +364,7 @@ function redirect(url, type, initiator) {
   }
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let isTeddit = [
@@ -523,5 +523,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 85865f67..f3ae49a0 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -269,7 +269,7 @@ function redirect(url) {
   return `${randomInstance}${path}${searchQuery}`;
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let searchList = [
@@ -409,5 +409,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
index d0691567..d33bccf2 100644
--- a/src/assets/javascripts/helpers/sendTargets.js
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -106,7 +106,7 @@ function setProtocol(val) {
     console.log("sendTargetsProtocol: ", val)
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
     let protocolHost = `${url.protocol}//${url.host}`;
 
     let sendList = [
@@ -210,7 +210,7 @@ export default {
     getSendNormalCustomRedirects,
     setSendNormalCustomRedirects,
 
-    changeInstance,
+    switchInstance,
 
     redirect,
     init,
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 05145542..24339ed7 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -270,7 +270,7 @@ function redirect(url) {
   }
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let translateList = [
@@ -413,5 +413,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 6a283869..8152adf8 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -116,7 +116,7 @@ function redirect(url, initiator) {
     ...nitterTorCustomRedirects
   ].includes(protocolHost);
 
-  if (alwaysUsePreferred && isNitter && !isCheckedNitter) return changeInstance(url);
+  if (alwaysUsePreferred && isNitter && !isCheckedNitter) return switchInstance(url);
 
   if (disable) return null;
 
@@ -158,7 +158,7 @@ function redirect(url, initiator) {
     return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let twitterList = [
@@ -307,5 +307,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 4294683b..21263e33 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -156,7 +156,7 @@ function redirect(url) {
 
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
 
   let wikipediaList = [
@@ -250,5 +250,5 @@ export default {
 
   redirect,
   init,
-  changeInstance,
+  switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index acdb8eb4..ae57f4f6 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -347,12 +347,12 @@ function redirect(url, details, initiator) {
   if (
     alwaysUsePreferred && frontend == 'invidious' &&
     (isInvidious || isPiped) && !isCheckedInvidious
-  ) return changeInstance(url);
+  ) return switchInstance(url);
 
   if (
     alwaysUsePreferred && frontend == 'piped' &&
     (isInvidious || isPiped) && !isCheckedPiped
-  ) return changeInstance(url);
+  ) return switchInstance(url);
 
   if (!targets.some((rx) => rx.test(url.href))) return null;
 
@@ -447,7 +447,7 @@ function redirect(url, details, initiator) {
   return 'CANCEL';
 }
 
-function changeInstance(url) {
+function switchInstance(url) {
   let protocolHost = `${url.protocol}//${url.host}`;
   if (
     protocol == 'normal' &&
@@ -730,7 +730,7 @@ export default {
   setPipedRedirects,
 
   redirect,
-  changeInstance,
+  switchInstance,
 
   isPipedorInvidious,
 
diff --git a/src/manifest.json b/src/manifest.json
index 54068ee5..e2d05518 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -18,6 +18,7 @@
     "webRequestBlocking",
     "storage",
     "cookies",
+    "menus",
     "<all_urls>"
   ],
   "browser_action": {
@@ -47,11 +48,11 @@
     }
   },
   "commands": {
-    "changeInstance": {
+    "switchInstance": {
       "suggested_key": {
         "default": "Alt+Shift+L"
       },
-      "description": "Change Instance"
+      "description": "Switch Instance"
     }
   }
 }
\ No newline at end of file
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 4a48a15f..867f3271 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -137,28 +137,28 @@ browser.webRequest.onResponseStarted.addListener(
       const url = new URL(details.url);
       let newUrl;
 
-      newUrl = youtubeHelper.changeInstance(url);
-      if (!newUrl) newUrl = twitterHelper.changeInstance(url);
+      newUrl = youtubeHelper.switchInstance(url);
+      if (!newUrl) newUrl = twitterHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = instagramHelper.changeInstance(url);
+      if (!newUrl) newUrl = instagramHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = redditHelper.changeInstance(url);
+      if (!newUrl) newUrl = redditHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = searchHelper.changeInstance(url);
+      if (!newUrl) newUrl = searchHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = translateHelper.changeInstance(url);
+      if (!newUrl) newUrl = translateHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = mediumHelper.changeInstance(url);
+      if (!newUrl) newUrl = mediumHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = imgurHelper.changeInstance(url);
+      if (!newUrl) newUrl = imgurHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = wikipediaHelper.changeInstance(url);
+      if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = peertubeHelper.changeInstance(url);
+      if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
 
-      if (!newUrl) newUrl = lbryHelper.changeInstance(url);
+      if (!newUrl) newUrl = lbryHelper.switchInstance(url);
 
-      // if (!newUrl) newUrl = spotifyHelper.changeInstance(url);
+      // if (!newUrl) newUrl = spotifyHelper.switchInstance(url);
 
       if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` });
 
@@ -181,34 +181,34 @@ browser.tabs.onUpdated.addListener(
   });
 
 function changeWholeInstance(url) {
-  let newUrl = youtubeHelper.changeInstance(url);
+  let newUrl = youtubeHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = twitterHelper.changeInstance(url);
+  if (!newUrl) newUrl = twitterHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = instagramHelper.changeInstance(url);
+  if (!newUrl) newUrl = instagramHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = redditHelper.changeInstance(url);
+  if (!newUrl) newUrl = redditHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = searchHelper.changeInstance(url);
+  if (!newUrl) newUrl = searchHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = translateHelper.changeInstance(url);
+  if (!newUrl) newUrl = translateHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = mediumHelper.changeInstance(url);
+  if (!newUrl) newUrl = mediumHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = sendTargetsHelper.changeInstance(url);
+  if (!newUrl) newUrl = sendTargetsHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = peertubeHelper.changeInstance(url);
+  if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = imgurHelper.changeInstance(url);
+  if (!newUrl) newUrl = imgurHelper.switchInstance(url);
 
-  if (!newUrl) newUrl = wikipediaHelper.changeInstance(url);
+  if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
 
   return newUrl;
 }
 
 browser.commands.onCommand.addListener(
   command => {
-    if (command === 'changeInstance')
+    if (command === 'switchInstance')
       chrome.tabs.query(
         { active: true, currentWindow: true },
         tabs => {
@@ -220,4 +220,28 @@ browser.commands.onCommand.addListener(
         }
       );
   }
-)
\ No newline at end of file
+)
+
+browser.menus.create({
+  id: "settings",
+  title: "Settings",
+  contexts: ["browser_action"]
+});
+
+browser.menus.create({
+  id: "switchInstance",
+  title: "Switch Instance",
+  contexts: ["browser_action"]
+});
+
+browser.menus.onClicked.addListener((info, tab) => {
+  if (info.menuItemId == 'switchInstance') {
+    let url;
+    try { url = new URL(tab.url); }
+    catch (_) { return }
+    let newUrl = changeWholeInstance(url);
+    if (newUrl) browser.tabs.update({ url: newUrl });
+  }
+  else if (info.menuItemId == 'settings')
+    browser.runtime.openOptionsPage()
+});
\ No newline at end of file
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 4d7d302d..6c9b942c 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -78,7 +78,7 @@ wholeInit().then(() => {
   disableLbryElement.checked = !lbryHelper.getDisable();
 
   let changeInstanceElement = document.getElementById("change-instance")
-  changeInstanceElement.addEventListener("click", changeInstance);
+  changeInstanceElement.addEventListener("click", switchInstance);
 })
 
 disableTwitterElement.addEventListener("change",
@@ -154,7 +154,7 @@ document.getElementById("more-options").addEventListener("click",
 );
 
 
-function changeInstance() {
+function switchInstance() {
   browser.tabs.query({ active: true, currentWindow: true }, function (tabs) {
     let currTab = tabs[0];
     if (currTab) {
@@ -164,29 +164,29 @@ function changeInstance() {
       catch (_) { return false; }
       let newUrl;
 
-      newUrl = youtubeHelper.changeInstance(tabUrl);
+      newUrl = youtubeHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = twitterHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = twitterHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = instagramHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = instagramHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = redditHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = redditHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = searchHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = searchHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = translateHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = translateHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = mediumHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = mediumHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = sendTargetsHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = sendTargetsHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = peertubeHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = peertubeHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = lbryHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = lbryHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = imgurHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = imgurHelper.switchInstance(tabUrl);
 
-      if (!newUrl) newUrl = wikipediaHelper.changeInstance(tabUrl);
+      if (!newUrl) newUrl = wikipediaHelper.switchInstance(tabUrl);
 
       if (newUrl) {
         browser.tabs.update({ url: newUrl });