Nahrát soubory do „/“
This commit is contained in:
45
content.js
Normal file
45
content.js
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
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 });
|
||||||
20
manifest.json
Normal file
20
manifest.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"manifest_version": 3,
|
||||||
|
"name": "Spotify IP Sender",
|
||||||
|
"version": "1.0",
|
||||||
|
"permissions": [
|
||||||
|
"activeTab",
|
||||||
|
"storage"
|
||||||
|
],
|
||||||
|
"host_permissions": [
|
||||||
|
"https://open.spotify.com/*",
|
||||||
|
"http://*/*",
|
||||||
|
"https://*/*"
|
||||||
|
],
|
||||||
|
"content_scripts": [
|
||||||
|
{
|
||||||
|
"matches": ["https://open.spotify.com/*"],
|
||||||
|
"js": ["content.js"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user