about summary refs log tree commit diff stats
path: root/src/pages/background/background.js
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 /src/pages/background/background.js
parentRestricted auto redirection to only 503, 504. Added a 'Cancel Redirection' btn (diff)
downloadlibredirect-d333b966021ec5b8c201884c78d1588fc0ebeec7.zip
Added buttons to the browser_action menu
Diffstat (limited to 'src/pages/background/background.js')
-rw-r--r--src/pages/background/background.js74
1 files changed, 49 insertions, 25 deletions
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