libredirect/src/pages/popup/popup.js

182 lines
6.7 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
2022-01-29 12:00:30 +01:00
import commonHelper from "../../assets/javascripts/helpers/common.js";
2022-02-04 16:48:24 +01:00
import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js";
2022-02-23 22:19:09 +01:00
import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js";
2022-02-02 19:22:34 +01:00
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
2022-02-02 19:22:34 +01:00
import mapsHelper from "../../assets/javascripts/helpers/maps.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
2022-02-02 19:22:34 +01:00
import searchHelper from "../../assets/javascripts/helpers/search.js";
import translateHelper from "../../assets/javascripts/helpers/translate/translate.js";
import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
import mediumHelper from "../../assets/javascripts/helpers/medium.js";
2022-02-08 21:04:18 +01:00
import imgurHelper from "../../assets/javascripts/helpers/imgur.js";
2022-02-09 22:04:00 +01:00
import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
2022-03-08 17:12:09 +01:00
import pixivHelper from "../../assets/javascripts/helpers/pixiv.js";
2022-03-10 09:38:03 +01:00
import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
import generalHelper from "../../assets/javascripts/helpers/general.js";
2022-02-01 19:37:43 +01:00
2022-02-23 22:19:09 +01:00
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");
2022-03-10 09:38:03 +01:00
let disableSendTargetsElement = document.getElementById("disable-sendTargets");
2022-02-23 22:19:09 +01:00
let disableImgurElement = document.getElementById("disable-imgur");
let disableTiktokElement = document.getElementById("disable-tiktok");
2022-03-08 17:12:09 +01:00
let disablePixivElement = document.getElementById("disable-pixiv");
2019-10-07 13:59:31 +02:00
2022-02-02 19:22:34 +01:00
async function wholeInit() {
2022-03-08 17:12:09 +01:00
await youtubeHelper.init()
await youtubeMusicHelper.init()
await twitterHelper.init()
await instagramHelper.init()
await mapsHelper.init()
await redditHelper.init()
await searchHelper.init()
await translateHelper.init()
await wikipediaHelper.init()
await imgurHelper.init()
await tiktokHelper.init()
await pixivHelper.init()
2022-03-10 09:38:03 +01:00
await sendTargetsHelper.init()
2022-03-08 17:12:09 +01:00
await mediumHelper.init()
2022-02-02 19:22:34 +01:00
};
wholeInit().then(() => {
2022-02-16 04:41:24 +01:00
disableTwitterElement.checked = !twitterHelper.getDisable();
disableYoutubeElement.checked = !youtubeHelper.getDisable();
2022-02-23 22:19:09 +01:00
disableYoutubeMusicElement.checked = !youtubeMusicHelper.getDisable();
2022-02-16 04:41:24 +01:00
disableInstagramElement.checked = !instagramHelper.getDisable();
disableMapsElement.checked = !mapsHelper.getDisable();
2022-02-02 19:22:34 +01:00
disableRedditElement.checked = !redditHelper.getDisableReddit();
2022-02-16 04:41:24 +01:00
disableSearchElement.checked = !searchHelper.getDisable();
disableElement.checked = !translateHelper.getDisable();
2022-02-16 04:41:24 +01:00
disableWikipediaElement.checked = !wikipediaHelper.getDisable();
disableImgurElement.checked = !imgurHelper.getDisable();
disableTiktokElement.checked = !tiktokHelper.getDisable();
2022-03-08 17:12:09 +01:00
disablePixivElement.checked = !pixivHelper.getDisable();
2022-02-16 04:41:24 +01:00
disableMediumElement.checked = !mediumHelper.getDisable();
2022-02-02 19:22:34 +01:00
})
2022-02-01 19:37:43 +01:00
2022-02-03 11:16:34 +01:00
disableTwitterElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => twitterHelper.setDisable(!event.target.checked)
);
2019-10-07 13:59:31 +02:00
2022-02-03 11:16:34 +01:00
disableYoutubeElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => youtubeHelper.setDisable(!event.target.checked)
);
disableYoutubeMusicElement.addEventListener("change",
event => youtubeMusicHelper.setDisable(!event.target.checked)
);
2020-02-01 04:17:51 +01:00
2022-02-03 11:16:34 +01:00
disableInstagramElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => instagramHelper.setDisable(!event.target.checked)
);
2020-02-23 06:19:32 +01:00
2022-02-03 11:16:34 +01:00
disableMapsElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => mapsHelper.setDisable(!event.target.checked)
);
disableRedditElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => redditHelper.setDisableReddit(!event.target.checked)
);
disableSearchElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => searchHelper.setDisable(!event.target.checked)
);
2020-11-08 15:58:22 +01:00
disableElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => translateHelper.setDisable(!event.target.checked)
);
2021-02-25 16:20:23 +01:00
disableWikipediaElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => wikipediaHelper.setDisable(!event.target.checked)
);
2021-07-12 18:16:23 +02:00
2022-02-08 21:04:18 +01:00
disableImgurElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => imgurHelper.setDisable(!event.target.checked)
2022-02-08 21:04:18 +01:00
);
2022-02-09 22:04:00 +01:00
disableTiktokElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => tiktokHelper.setDisable(!event.target.checked)
2022-02-09 22:04:00 +01:00
);
2022-03-08 17:12:09 +01:00
disablePixivElement.addEventListener("change",
event => pixivHelper.setDisable(!event.target.checked)
);
2022-02-03 11:16:34 +01:00
disableMediumElement.addEventListener("change",
2022-02-23 22:19:09 +01:00
event => mediumHelper.setDisable(!event.target.checked)
);
2022-03-10 09:38:03 +01:00
disableSendTargetsElement.addEventListener("change",
event => sendTargetsHelper.setDisable(!event.target.checked)
);
2022-02-23 22:19:09 +01:00
document.getElementById("more-options").addEventListener("click",
() => browser.runtime.openOptionsPage()
);
2022-03-10 09:38:03 +01:00
function changeInstance() {
browser.tabs.query({ active: true, currentWindow: true }, function (tabs) {
let currTab = tabs[0];
if (currTab) {
2022-03-03 17:38:37 +01:00
let url = currTab.url;
let tabUrl
try { tabUrl = new URL(url); }
catch (_) { return false; }
2022-03-03 17:38:37 +01:00
let newUrl;
2022-03-03 17:38:37 +01:00
newUrl = youtubeHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = twitterHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = instagramHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = redditHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = searchHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = translateHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = mediumHelper.changeInstance(tabUrl);
2022-03-10 09:38:03 +01:00
if (!newUrl) newUrl = sendTargetsHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = imgurHelper.changeInstance(tabUrl);
2022-03-03 17:38:37 +01:00
if (!newUrl) newUrl = wikipediaHelper.changeInstance(tabUrl)
if (newUrl) {
browser.tabs.update({ url: newUrl });
return true;
}
2022-03-03 17:38:37 +01:00
}
})
return false;
}
let changeInstanceElement = document.getElementById("change-instance")
changeInstanceElement.disabled = !changeInstance();
changeInstanceElement.addEventListener("click", changeInstance);
let popupFrontends;
generalHelper.init().then(() => {
popupFrontends = generalHelper.getPopupFrontends();
for (const frontend of generalHelper.allPopupFrontends)
if (!popupFrontends.includes(frontend))
document.getElementById(frontend).classList.add("hide")
else
document.getElementById(frontend).classList.remove("hide")
});