about summary refs log tree commit diff stats
path: root/src/pages/popup/popup.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/popup/popup.js')
-rw-r--r--src/pages/popup/popup.js320
1 files changed, 257 insertions, 63 deletions
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 27e9d535..a54c69ac 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -4,6 +4,26 @@ window.browser = window.browser || window.chrome;
 import utils from "../../assets/javascripts/utils.js";
 import generalHelper from "../../assets/javascripts/general.js";
 
+import youtubeHelper from "../../assets/javascripts/youtube/youtube.js";
+import youtubeMusicHelper from "../../assets/javascripts/youtubeMusic.js";
+import twitterHelper from "../../assets/javascripts/twitter.js";
+import instagramHelper from "../../assets/javascripts/instagram.js";
+import redditHelper from "../../assets/javascripts/reddit.js";
+import searchHelper from "../../assets/javascripts/search.js";
+import translateHelper from "../../assets/javascripts/translate/translate.js";
+import mapsHelper from "../../assets/javascripts/maps.js";
+import wikipediaHelper from "../../assets/javascripts/wikipedia.js";
+import mediumHelper from "../../assets/javascripts/medium.js";
+import quoraHelper from "../../assets/javascripts/quora.js";
+import libremdbHelper from "../../assets/javascripts/imdb.js";
+import reutersHelper from "../../assets/javascripts/reuters.js";
+import imgurHelper from "../../assets/javascripts/imgur.js";
+import tiktokHelper from "../../assets/javascripts/tiktok.js";
+import sendTargetsHelper from "../../assets/javascripts/sendTargets.js";
+import peertubeHelper from "../../assets/javascripts/peertube.js";
+import lbryHelper from "../../assets/javascripts/lbry.js";
+
+
 utils.unify(true).then(r => {
   if (!r) document.getElementById('unify_div').style.display = 'none';
   else {
@@ -34,24 +54,62 @@ utils.copyRaw(true).then(r => {
 
 document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage());
 
-let disableTwitterElement = document.getElementById("disable-nitter");
-let disableYoutubeElement = document.getElementById("disable-youtube");
-let disableYoutubeMusicElement = document.getElementById("disable-youtubeMusic");
-let disableInstagramElement = document.getElementById("disable-bibliogram");
-let disableMapsElement = document.getElementById("disable-osm");
-let disableRedditElement = document.getElementById("disable-reddit");
-let disableSearchElement = document.getElementById("disable-search");
-let disableElement = document.getElementById("disable-simplyTranslate");
-let disableWikipediaElement = document.getElementById("disable-wikipedia");
-let disableMediumElement = document.getElementById("disable-medium");
-let disableQuoraElement = document.getElementById("disable-quora");
-let disableImdbElement = document.getElementById("disable-imdb");
-let disableReutersElement = document.getElementById("disable-reuters");
-let disablePeertubeElement = document.getElementById("disable-peertube");
-let disableLbryElement = document.getElementById("disable-lbry");
-let disableSendTargetsElement = document.getElementById("disable-sendTargets");
-let disableImgurElement = document.getElementById("disable-imgur");
-let disableTiktokElement = document.getElementById("disable-tiktok");
+const allSites = document.getElementsByClassName('all_sites')[0];
+const currSite = document.getElementsByClassName('current_site')[0];
+
+const disableTwitterCurrentSite = currSite.getElementsByClassName("disable-nitter")[0];
+const disableTwitterAllSites = allSites.getElementsByClassName("disable-nitter")[0];
+
+const disableYoutubeCurrentSite = currSite.getElementsByClassName("disable-youtube")[0];
+const disableYoutubeAllSites = allSites.getElementsByClassName("disable-youtube")[0];
+
+const disableYoutubeMusicCurrentSite = currSite.getElementsByClassName("disable-youtubeMusic")[0];
+const disableYoutubeMusicAllSites = allSites.getElementsByClassName("disable-youtubeMusic")[0];
+
+const disableInstagramCurrentSite = currSite.getElementsByClassName("disable-bibliogram")[0];
+const disableInstagramAllSites = allSites.getElementsByClassName("disable-bibliogram")[0];
+
+const disableMapsCurrentSite = currSite.getElementsByClassName("disable-osm")[0];
+const disableMapsAllSites = allSites.getElementsByClassName("disable-osm")[0];
+
+const disableRedditCurrentSite = currSite.getElementsByClassName("disable-reddit")[0];
+const disableRedditAllSites = allSites.getElementsByClassName("disable-reddit")[0];
+
+const disableSearchCurrentSite = currSite.getElementsByClassName("disable-search")[0];
+const disableSearchAllSites = allSites.getElementsByClassName("disable-search")[0];
+
+const disableTranslateCurrentSite = currSite.getElementsByClassName("disable-translate")[0];
+const disableTranslateAllSites = allSites.getElementsByClassName("disable-translate")[0];
+
+const disableWikipediaCurrentSite = currSite.getElementsByClassName("disable-wikipedia")[0];
+const disableWikipediaAllSites = allSites.getElementsByClassName("disable-wikipedia")[0];
+
+const disableMediumCurrentSite = currSite.getElementsByClassName("disable-medium")[0];
+const disableMediumAllSites = allSites.getElementsByClassName("disable-medium")[0];
+
+const disableQuoraCurrentSite = currSite.getElementsByClassName("disable-quora")[0];
+const disableQuoraAllSites = allSites.getElementsByClassName("disable-quora")[0];
+
+const disableImdbCurrentSite = currSite.getElementsByClassName("disable-imdb")[0];
+const disableImdbAllSites = allSites.getElementsByClassName("disable-imdb")[0];
+
+const disableReutersCurrentSite = currSite.getElementsByClassName("disable-reuters")[0];
+const disableReutersAllSites = allSites.getElementsByClassName("disable-reuters")[0];
+
+const disablePeertubeTargetsCurrentSite = currSite.getElementsByClassName("disable-peertube")[0];
+const disablePeertubeTargetsAllSites = allSites.getElementsByClassName("disable-peertube")[0];
+
+const disableLbryTargetsCurrentSite = currSite.getElementsByClassName("disable-lbry")[0];
+const disableLbryTargetsAllSites = allSites.getElementsByClassName("disable-lbry")[0];
+
+const disableSendTargetsCurrentSite = currSite.getElementsByClassName("disable-sendTargets")[0];
+const disableSendTargetsAllSites = allSites.getElementsByClassName("disable-sendTargets")[0];
+
+const disableImgurCurrentSite = currSite.getElementsByClassName("disable-imgur")[0];
+const disableImgurAllSites = allSites.getElementsByClassName("disable-imgur")[0];
+
+const disableTiktokCurrentSite = currSite.getElementsByClassName("disable-tiktok")[0];
+const disableTiktokAllSites = allSites.getElementsByClassName("disable-tiktok")[0];
 
 browser.storage.local.get(
   [
@@ -73,58 +131,194 @@ browser.storage.local.get(
     "disablePeertubeTargets",
     "disableLbryTargets",
     "disableSendTarget",
-
     'popupFrontends',
   ],
   r => {
-    disableTwitterElement.checked = !r.disableTwitter;
-    disableYoutubeElement.checked = !r.disableYoutube;
-    disableYoutubeMusicElement.checked = !r.disableYoutubeMusic;
-    disableInstagramElement.checked = !r.disableInstagram;
-    disableMapsElement.checked = !r.disableMaps;
-    disableRedditElement.checked = !r.disableReddit;
-    disableSearchElement.checked = !r.disableSearch;
-    disableElement.checked = !r.translateDisable;
-    disableWikipediaElement.checked = !r.disableWikipedia;
-    disableImgurElement.checked = !r.disableImgur;
-    disableTiktokElement.checked = !r.disableTiktok;
-    disableMediumElement.checked = !r.disableMedium;
-    disableQuoraElement.checked = !r.disableQuora;
-    disableImdbElement.checked = !r.disableImdb;
-    disableReutersElement.checked = !r.disableReuters;
-    disablePeertubeElement.checked = !r.disablePeertubeTargets;
-    disableLbryElement.checked = !r.disableLbryTargets;
-    disableSendTargetsElement.checked = !r.disableSendTarget;
-
-    for (const frontend of generalHelper.allPopupFrontends)
-      if (!r.popupFrontends.includes(frontend))
-        document.getElementById(frontend).classList.add("hide")
-      else
-        document.getElementById(frontend).classList.remove("hide")
+    disableTwitterCurrentSite.checked = !r.disableTwitter; disableTwitterAllSites.checked = !r.disableTwitter;
+    disableYoutubeCurrentSite.checked = !r.disableYoutube; disableYoutubeAllSites.checked = !r.disableYoutube;
+    disableYoutubeMusicCurrentSite.checked = !r.disableYoutubeMusic; disableYoutubeMusicAllSites.checked = !r.disableYoutubeMusic;
+    disableInstagramCurrentSite.checked = !r.disableInstagram; disableInstagramAllSites.checked = !r.disableInstagram;
+    disableMapsCurrentSite.checked = !r.disableMaps; disableMapsAllSites.checked = !r.disableMaps;
+    disableRedditCurrentSite.checked = !r.disableReddit; disableRedditAllSites.checked = !r.disableReddit;
+    disableSearchCurrentSite.checked = !r.disableSearch; disableSearchAllSites.checked = !r.disableSearch;
+    disableTranslateCurrentSite.checked = !r.translateDisable; disableTranslateAllSites.checked = !r.translateDisable;
+    disableWikipediaCurrentSite.checked = !r.disableWikipedia; disableWikipediaAllSites.checked = !r.disableWikipedia;
+    disableImgurCurrentSite.checked = !r.disableImgur; disableImgurAllSites.checked = !r.disableImgur;
+    disableTiktokCurrentSite.checked = !r.disableTiktok; disableTiktokAllSites.checked = !r.disableTiktok;
+    disableMediumCurrentSite.checked = !r.disableMedium; disableMediumAllSites.checked = !r.disableMedium;
+    disableQuoraCurrentSite.checked = !r.disableQuora; disableQuoraAllSites.checked = !r.disableQuora;
+    disableImdbCurrentSite.checked = !r.disableImdb; disableImdbAllSites.checked = !r.disableImdb;
+    disableReutersCurrentSite.checked = !r.disableReuters; disableReutersAllSites.checked = !r.disableReuters;
+    disablePeertubeTargetsCurrentSite.checked = !r.disablePeertubeTargets; disablePeertubeTargetsAllSites.checked = !r.disablePeertubeTargets;
+    disableLbryTargetsCurrentSite.checked = !r.disableLbryTargets; disableLbryTargetsAllSites.checked = !r.disableLbryTargets;
+    disableSendTargetsCurrentSite.checked = !r.disableSendTarget; disableSendTargetsAllSites.checked = !r.disableSendTarget;
+
+    browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+      for (const frontend of generalHelper.allPopupFrontends) {
+        if (!r.popupFrontends.includes(frontend))
+          allSites.getElementsByClassName(frontend)[0].classList.add("hide")
+        else
+          allSites.getElementsByClassName(frontend)[0].classList.remove("hide")
+        currSite.getElementsByClassName(frontend)[0].classList.add("hide")
+      }
+
+      let url;
+      try { url = new URL(tabs[0].url); }
+      catch { return; }
+
+      if (youtubeHelper.redirect(url, 'main_frame', false, true) || await youtubeHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('youtube')[0].classList.remove("hide");
+        allSites.getElementsByClassName('youtube')[0].classList.add("hide");
+      }
+      else if (twitterHelper.redirect(url, 'main_frame', false, true) || await twitterHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('twitter')[0].classList.remove("hide");
+        allSites.getElementsByClassName('twitter')[0].classList.add("hide");
+      }
+      else if (instagramHelper.redirect(url, 'main_frame', false, true) || await instagramHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('instagram')[0].classList.remove("hide");
+        allSites.getElementsByClassName('instagram')[0].classList.add("hide");
+      }
+      else if (mapsHelper.redirect(url, false)) {
+        currSite.getElementsByClassName('maps')[0].classList.remove("hide");
+        allSites.getElementsByClassName('maps')[0].classList.add("hide");
+      }
+      else if (redditHelper.redirect(url, 'main_frame', false, true) || await redditHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('reddit')[0].classList.remove("hide");
+        allSites.getElementsByClassName('reddit')[0].classList.add("hide");
+      }
+      else if (mediumHelper.redirect(url, 'main_frame', false, true) || await mediumHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('medium')[0].classList.remove("hide");
+        allSites.getElementsByClassName('medium')[0].classList.add("hide");
+      }
+      else if (quoraHelper.redirect(url, 'main_frame', false, true) || await quoraHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('quora')[0].classList.remove("hide");
+        allSites.getElementsByClassName('quora')[0].classList.add("hide");
+      }
+      else if (libremdbHelper.redirect(url, 'main_frame', false, true) || await libremdbHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('imdb')[0].classList.remove("hide");
+        allSites.getElementsByClassName('imdb')[0].classList.add("hide");
+      }
+      else if (reutersHelper.redirect(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('reuters')[0].classList.remove("hide");
+        allSites.getElementsByClassName('reuters')[0].classList.add("hide");
+      }
+      else if (imgurHelper.redirect(url, 'main_frame', false, true) || await imgurHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('imgur')[0].classList.remove("hide");
+        allSites.getElementsByClassName('imgur')[0].classList.add("hide");
+      }
+      else if (tiktokHelper.redirect(url, 'main_frame', false, true) || await tiktokHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('tiktok')[0].classList.remove("hide");
+        allSites.getElementsByClassName('tiktok')[0].classList.add("hide");
+      }
+      else if (sendTargetsHelper.redirect(url, 'main_frame', false, true) || await sendTargetsHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('sendTargets')[0].classList.remove("hide");
+        allSites.getElementsByClassName('sendTargets')[0].classList.add("hide");
+      }
+      else if (peertubeHelper.redirect(url, 'main_frame', false, true) || await peertubeHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('peertube')[0].classList.remove("hide");
+        allSites.getElementsByClassName('peertube')[0].classList.add("hide");
+      }
+      else if (lbryHelper.redirect(url, 'main_frame', false, true) || await lbryHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('lbry')[0].classList.remove("hide");
+        allSites.getElementsByClassName('lbry')[0].classList.add("hide");
+      }
+      else if (translateHelper.redirect(url, true) || await translateHelper.switchInstance(url, true)) {
+        currSite.getElementsByClassName('translate')[0].classList.remove("hide");
+        allSites.getElementsByClassName('translate')[0].classList.add("hide");
+      }
+      else if (searchHelper.redirect(url, true) || await searchHelper.switchInstance(url, true)) {
+        currSite.getElementsByClassName('search')[0].classList.remove("hide");
+        allSites.getElementsByClassName('search')[0].classList.add("hide");
+      }
+      else if (wikipediaHelper.redirect(url, true) || await wikipediaHelper.switchInstance(url, true)) {
+        currSite.getElementsByClassName('wikipedia')[0].classList.remove("hide");
+        allSites.getElementsByClassName('wikipedia')[0].classList.add("hide");
+      }
+      else if (youtubeMusicHelper.redirect(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('youtubeMusic')[0].classList.remove("hide");
+        allSites.getElementsByClassName('youtubeMusic')[0].classList.add("hide");
+      }
+    })
   }
 )
 
 document.addEventListener("change", () => {
-  browser.storage.local.set({
-    disableTwitter: !disableTwitterElement.checked,
-    disableYoutube: !disableYoutubeElement.checked,
-    disableYoutubeMusic: !disableYoutubeMusicElement.checked,
-    disableInstagram: !disableInstagramElement.checked,
-    disableMaps: !disableMapsElement.checked,
-    disableReddit: !disableRedditElement.checked,
-    disableSearch: !disableSearchElement.checked,
-    translateDisable: !disableElement.checked,
-    disableWikipedia: !disableWikipediaElement.checked,
-    disableImgur: !disableImgurElement.checked,
-    disableTiktok: !disableTiktokElement.checked,
-    disableMedium: !disableMediumElement.checked,
-    disableQuora: !disableQuoraElement.checked,
-    disableImdb: !disableImdbElement.checked,
-    disableReuters: !disableReutersElement.checked,
-    disablePeertubeTargets: !disablePeertubeElement.checked,
-    disableLbryTargets: !disableLbryElement.checked,
-    disableSendTarget: !disableSendTargetsElement.checked,
-  });
+  browser.storage.local.get(
+    [
+      "disableTwitter",
+      "disableYoutube",
+      "disableYoutubeMusic",
+      "disableInstagram",
+      "disableMaps",
+      "disableReddit",
+      "disableSearch",
+      "translateDisable",
+      "disableWikipedia",
+      "disableImgur",
+      "disableTiktok",
+      "disableMedium",
+      "disableQuora",
+      "disableImdb",
+      "disableReuters",
+      "disablePeertubeTargets",
+      "disableLbryTargets",
+      "disableSendTarget",
+    ],
+    r => {
+      if (!r.disableTwitter != disableTwitterCurrentSite.checked) browser.storage.local.set({ disableTwitter: !disableTwitterCurrentSite.checked })
+      else if (!r.disableTwitter != disableTwitterAllSites.checked) browser.storage.local.set({ disableTwitter: !disableTwitterAllSites.checked })
+
+      if (!r.disableYoutube != disableYoutubeCurrentSite.checked) browser.storage.local.set({ disableYoutube: !disableYoutubeCurrentSite.checked })
+      else if (!r.disableYoutube != disableYoutubeAllSites.checked) browser.storage.local.set({ disableYoutube: !disableYoutubeAllSites.checked })
+
+      if (!r.disableYoutubeMusic != disableYoutubeMusicCurrentSite.checked) browser.storage.local.set({ disableYoutubeMusic: !disableYoutubeMusicCurrentSite.checked })
+      else if (!r.disableYoutubeMusic != disableYoutubeMusicAllSites.checked) browser.storage.local.set({ disableYoutubeMusic: !disableYoutubeMusicAllSites.checked })
+
+      if (!r.disableInstagram != disableInstagramCurrentSite.checked) browser.storage.local.set({ disableInstagram: !disableInstagramCurrentSite.checked })
+      else if (!r.disableInstagram != disableInstagramAllSites.checked) browser.storage.local.set({ disableInstagram: !disableInstagramAllSites.checked })
+
+      if (!r.disableMaps != disableMapsCurrentSite.checked) browser.storage.local.set({ disableMaps: !disableMapsCurrentSite.checked })
+      else if (!r.disableMaps != disableMapsAllSites.checked) browser.storage.local.set({ disableMaps: !disableMapsAllSites.checked })
+
+      if (!r.disableReddit != disableRedditCurrentSite.checked) browser.storage.local.set({ disableReddit: !disableRedditCurrentSite.checked })
+      else if (!r.disableReddit != disableRedditAllSites.checked) browser.storage.local.set({ disableReddit: !disableRedditAllSites.checked })
+
+      if (!r.disableSearch != disableSearchCurrentSite.checked) browser.storage.local.set({ disableSearch: !disableSearchCurrentSite.checked })
+      else if (!r.disableSearch != disableSearchAllSites.checked) browser.storage.local.set({ disableSearch: !disableSearchAllSites.checked })
+
+      if (!r.translateDisable != disableTranslateCurrentSite.checked) browser.storage.local.set({ translateDisable: !disableTranslateCurrentSite.checked })
+      else if (!r.translateDisable != disableTranslateAllSites.checked) browser.storage.local.set({ translateDisable: !disableTranslateAllSites.checked })
+
+      if (!r.disableWikipedia != disableWikipediaCurrentSite.checked) browser.storage.local.set({ disableWikipedia: !disableWikipediaCurrentSite.checked })
+      else if (!r.disableWikipedia != disableWikipediaAllSites.checked) browser.storage.local.set({ disableWikipedia: !disableWikipediaAllSites.checked })
+
+      if (!r.disableImgur != disableImgurCurrentSite.checked) browser.storage.local.set({ disableImgur: !disableImgurCurrentSite.checked })
+      else if (!r.disableImgur != disableImgurAllSites.checked) browser.storage.local.set({ disableImgur: !disableImgurAllSites.checked })
+
+      if (!r.disableTiktok != disableTiktokCurrentSite.checked) browser.storage.local.set({ disableTiktok: !disableTiktokCurrentSite.checked })
+      else if (!r.disableTiktok != disableTiktokAllSites.checked) browser.storage.local.set({ disableTiktok: !disableTiktokAllSites.checked })
+
+      if (!r.disableMedium != disableMediumCurrentSite.checked) browser.storage.local.set({ disableMedium: !disableMediumCurrentSite.checked })
+      else if (!r.disableMedium != disableMediumAllSites.checked) browser.storage.local.set({ disableMedium: !disableMediumAllSites.checked })
+
+      if (!r.disableQuora != disableQuoraCurrentSite.checked) browser.storage.local.set({ disableQuora: !disableQuoraCurrentSite.checked })
+      else if (!r.disableQuora != disableQuoraAllSites.checked) browser.storage.local.set({ disableQuora: !disableQuoraAllSites.checked })
+
+      if (!r.disableImdb != disableImdbCurrentSite.checked) browser.storage.local.set({ disableImdb: !disableImdbCurrentSite.checked })
+      else if (!r.disableImdb != disableImdbAllSites.checked) browser.storage.local.set({ disableImdb: !disableImdbAllSites.checked })
+
+      if (!r.disableReuters != disableReutersCurrentSite.checked) browser.storage.local.set({ disableReuters: !disableReutersCurrentSite.checked })
+      else if (!r.disableReuters != disableReutersAllSites.checked) browser.storage.local.set({ disableReuters: !disableReutersAllSites.checked })
+
+      if (!r.disablePeertubeTargets != disablePeertubeTargetsCurrentSite.checked) browser.storage.local.set({ disablePeertubeTargets: !disablePeertubeTargetsCurrentSite.checked })
+      else if (!r.disablePeertubeTargets != disablePeertubeTargetsAllSites.checked) browser.storage.local.set({ disablePeertubeTargets: !disablePeertubeTargetsAllSites.checked })
+
+      if (!r.disableLbryTargets != disableLbryTargetsCurrentSite.checked) browser.storage.local.set({ disableLbryTargets: !disableLbryTargetsCurrentSite.checked })
+      else if (!r.disableLbryTargets != disableLbryTargetsAllSites.checked) browser.storage.local.set({ disableLbryTargets: !disableLbryTargetsAllSites.checked })
+
+      if (!r.disableSendTarget != disableSendTargetsCurrentSite.checked) browser.storage.local.set({ disableSendTarget: !disableSendTargetsCurrentSite.checked })
+      else if (!r.disableSendTarget != disableSendTargetsAllSites.checked) browser.storage.local.set({ disableSendTarget: !disableSendTargetsAllSites.checked })
+    })
 })
 
 for (const a of document.getElementsByTagName('a')) {