use apiLoad event

This commit is contained in:
Araxeus
2021-10-23 18:28:38 +03:00
parent ce4580605d
commit 38449f003a

View File

@ -10,6 +10,8 @@ const setupSongInfo = require("./providers/song-info-front");
const plugins = config.plugins.getEnabled(); const plugins = config.plugins.getEnabled();
let api;
plugins.forEach(([plugin, options]) => { plugins.forEach(([plugin, options]) => {
const preloadPath = path.join(__dirname, "plugins", plugin, "preload.js"); const preloadPath = path.join(__dirname, "plugins", plugin, "preload.js");
fileExists(preloadPath, () => { fileExists(preloadPath, () => {
@ -38,10 +40,8 @@ document.addEventListener("DOMContentLoaded", () => {
}); });
}); });
// Remove upgrade button // wait for complete load of youtube api
if (config.get("options.removeUpgradeButton")) { listenForApiLoad();
document.querySelector('[tab-id*="SPunlimited"]').style.display = "none";
}
// inject song-info provider // inject song-info provider
setupSongInfo(); setupSongInfo();
@ -56,3 +56,30 @@ document.addEventListener("DOMContentLoaded", () => {
global.reload = () => global.reload = () =>
remote.getCurrentWindow().webContents.loadURL(config.get("url")); remote.getCurrentWindow().webContents.loadURL(config.get("url"));
}); });
function listenForApiLoad() {
api = document.querySelector('#movie_player');
if (api) {
onApiLoaded();
return;
}
const observer = new MutationObserver(() => {
api = document.querySelector('#movie_player');
if (api) {
observer.disconnect();
onApiLoaded();
}
})
observer.observe(document.documentElement, { childList: true, subtree: true });
}
function onApiLoaded() {
document.dispatchEvent(new CustomEvent('apiLoaded', { detail: api }));
// Remove upgrade button
if (config.get("options.removeUpgradeButton")) {
document.querySelector('ytmusic-pivot-bar-item-renderer[tab-id="SPunlimited"]').style.display = "none";
}
}