Files
Webovka-pro-Jarmark/content.js

45 lines
1.5 KiB
JavaScript

const TARGET_URL = "http://localhost:8080/endpoint";
let lastSentSong = "";
function extractAndSendSong() {
// Najdeme widget "Now Playing" v levém dolním rohu Spotify
const trackInfo = document.querySelector('[data-testid="now-playing-widget"]');
if (trackInfo) {
const links = trackInfo.querySelectorAll('a');
const songTitle = links[0] ? links[0].innerText : null;
const artistName = links[1] ? links[1].innerText : "Unknown Artist";
if (songTitle) {
const currentTrackString = `${artistName} - ${songTitle}`;
// Odesíláme pouze pokud se písnička změnila, abychom zbytečně nezatěžovali server
if (currentTrackString !== lastSentSong) {
lastSentSong = currentTrackString;
console.log("Odesílám skladbu:", currentTrackString);
fetch(TARGET_URL, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
artist: artistName,
title: songTitle,
timestamp: new Date().toISOString()
})
}).catch(err => {
console.error("Chyba při odesílání:", err);
});
}
}
}
}
// Sledujeme změny na stránce, protože Spotify funguje jako Single Page Application
const observer = new MutationObserver(() => {
extractAndSendSong();
});
observer.observe(document.body, { childList: true, subtree: true });