libredirect/src/pages/popup/popup.js

331 lines
20 KiB
JavaScript
Raw Normal View History

"use strict";
2022-02-12 20:28:36 +01:00
window.browser = window.browser || window.chrome;
2019-10-07 13:59:31 +02:00
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 {
const unify = document.getElementById('unify');
2022-06-01 23:13:08 +02:00
const textElement = document.getElementById('unify').getElementsByTagName('h4')[0]
unify.addEventListener("click", () => {
const oldHtml = textElement.innerHTML;
textElement.innerHTML = '...';
browser.runtime.sendMessage({ function: 'unify' },
2022-06-01 23:13:08 +02:00
response => { if (response && response.response) textElement.innerHTML = oldHtml })
}
);
}
})
utils.switchInstance(true).then(r => {
if (!r) document.getElementById("change_instance_div").style.display = 'none';
else document.getElementById("change_instance").addEventListener("click", () => utils.switchInstance(false));
});
utils.copyRaw(true).then(r => {
if (!r) document.getElementById('copy_raw_div').style.display = 'none';
else {
const copy_raw = document.getElementById('copy_raw');
copy_raw.addEventListener("click", () => utils.copyRaw(false, copy_raw));
}
})
document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage());
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];
2019-10-07 13:59:31 +02:00
2022-04-27 18:51:34 +02:00
browser.storage.local.get(
[
"disableTwitter",
"disableYoutube",
"disableYoutubeMusic",
"disableInstagram",
"disableMaps",
"disableReddit",
"disableSearch",
"translateDisable",
"disableWikipedia",
"disableImgur",
"disableTiktok",
"disableMedium",
2022-06-11 13:14:14 +02:00
"disableQuora",
"disableImdb",
2022-06-11 14:39:22 +02:00
"disableReuters",
2022-04-27 18:51:34 +02:00
"disablePeertubeTargets",
"disableLbryTargets",
"disableSendTarget",
"popupFrontends",
2022-04-27 18:51:34 +02:00
],
r => {
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");
}
})
2022-04-27 18:51:34 +02:00
}
)
document.addEventListener("change", () => {
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 })
})
2022-02-02 19:22:34 +01:00
})
2022-02-01 19:37:43 +01:00
for (const a of document.getElementsByTagName('a')) {
a.addEventListener('click', e => {
2022-06-28 09:31:34 +02:00
if (!a.classList.contains('prevent')) {
browser.tabs.create({ url: a.getAttribute('href') });
e.preventDefault();
}
})
}