about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pages/background/background.js47
-rw-r--r--src/pages/background/shortcuts.js13
2 files changed, 59 insertions, 1 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 8e935751..6b76177a 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -166,4 +166,49 @@ browser.tabs.onUpdated.addListener(
     if (translateHelper.isTranslateRedirects(url, 'main_frame', 'lingva')) translateHelper.initLingvaLocalStorage(tabId);
     if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url);
     // if (changeInfo.url && youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId);
-  });
\ No newline at end of file
+
+    if (changeWholeInstance(url))
+      browser.tabs.executeScript(
+        tabId,
+        {
+          file: "/pages/background/shortcuts.js",
+          runAt: "document_start"
+        }
+      );
+  });
+
+function changeWholeInstance(url) {
+  let newUrl = youtubeHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = twitterHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = instagramHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = redditHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = searchHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = translateHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = mediumHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = sendTargetsHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = peertubeHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = imgurHelper.changeInstance(url);
+
+  if (!newUrl) newUrl = wikipediaHelper.changeInstance(url);
+
+  return newUrl;
+}
+
+browser.runtime.onMessage.addListener(
+  message => {
+    if (message.function === 'changeInstance') {
+      const url = new URL(message.url);
+      let newUrl = changeWholeInstance(url);
+      if (newUrl) browser.tabs.update({ url: newUrl });
+    }
+  }
+)
\ No newline at end of file
diff --git a/src/pages/background/shortcuts.js b/src/pages/background/shortcuts.js
new file mode 100644
index 00000000..12885479
--- /dev/null
+++ b/src/pages/background/shortcuts.js
@@ -0,0 +1,13 @@
+"use strict";
+
+window.browser = window.browser || window.chrome;
+
+document.addEventListener('keydown',
+    e => {
+        if (e.code === 'KeyL' && e.shiftKey && e.altKey)
+            browser.runtime.sendMessage({
+                function: "changeInstance",
+                url: window.location.href,
+            });
+    }
+)
\ No newline at end of file