diff options
Diffstat (limited to 'src/pages/popup/popup.js')
-rw-r--r-- | src/pages/popup/popup.js | 320 |
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')) { |