diff --git a/providers/song-info-front.js b/providers/song-info-front.js index 25cea261..ccf0b764 100644 --- a/providers/song-info-front.js +++ b/providers/song-info-front.js @@ -4,30 +4,33 @@ const { getImage } = require("./song-info"); global.songInfo = {}; +let api = document.querySelector('#movie_player'); + ipcRenderer.on("update-song-info", async (_, extractedSongInfo) => { global.songInfo = JSON.parse(extractedSongInfo); global.songInfo.image = await getImage(global.songInfo.imageSrc); }); function setup() { - if (document.querySelector('#movie_player')) { - injectListener(); - return; - } + if (api) { + injectListener(); + return; + } - const observer = new MutationObserver(() => { - if (document.querySelector('#movie_player')) { - observer.disconnect(); - injectListener(); - } - }) + const observer = new MutationObserver(() => { + api = document.querySelector('#movie_player'); + if (api) { + observer.disconnect(); + injectListener(); + } + }) - observer.observe(document.documentElement, { childList: true, subtree: true }); + observer.observe(document.documentElement, { childList: true, subtree: true }); } function injectListener() { document.querySelector('video').addEventListener('loadedmetadata', () => { - const data = document.querySelector('#movie_player').getPlayerResponse(); + const data = api.getPlayerResponse(); ipcRenderer.send("song-info-request", JSON.stringify(data)); }); };