Compare commits
13 Commits
spotify-se
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d68d7a2caa | |||
| 75e8c29a56 | |||
| a2502350bc | |||
| 792ec1f128 | |||
| 42138fe1a8 | |||
| 2e94753bfc | |||
| fcd923bb30 | |||
| c25570d691 | |||
| ab5e08ea5d | |||
| 58eec5b741 | |||
| 7bcfe81266 | |||
| fd5aa146b8 | |||
| 9b9b350629 |
80
README.txt
Normal file
80
README.txt
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
spotify playlist: https://open.spotify.com/playlist/5uJ1AO6PBOHrG9M3XK521M
|
||||||
|
|
||||||
|
|
||||||
|
Aplikace pro verejne viditelny monitor:
|
||||||
|
|
||||||
|
Priprava pro aplikaci:
|
||||||
|
1. stahnout a naistalovat python main/spotify.exe a zakliknout "Add python.exe to PATH"
|
||||||
|
2. extrahovat spotify-sender/spotify-sender.zip do nove slozky
|
||||||
|
3. extrahovanou slozku vlozit do chrome extentions tim ze v chromu: (tri tecky, rozsireni, nacist rozbalene) a vybrat tu slozku s tema souborama
|
||||||
|
4. udelat jsi nekde slozku treba "sweb" a do ni extrahovat sweb/node.zip a sweb/katalog+zvuky.zip
|
||||||
|
5. do sweb dat soubor sweb/server.js a soubor sweb/spotify_widget.py
|
||||||
|
|
||||||
|
Spousteni aplikace:
|
||||||
|
1. otevrit spotify playlist "https://open.spotify.com/playlist/5uJ1AO6PBOHrG9M3XK521M"
|
||||||
|
2. spustit nove cmdcko a vejit do slozky sweb
|
||||||
|
3. napsat "node server.js" (spusti jse server pro odesilani spotify dat)
|
||||||
|
4. spustit dalsi cmdcko v sweb
|
||||||
|
5. napsat "py spotidy_widget" (spusti jse samostatna aplikace)
|
||||||
|
|
||||||
|
Ovladani aplikace:
|
||||||
|
1. F2 – Zobrazení nebo skrytí vstupního pole pro psaní vlastních zpráv.
|
||||||
|
2. Enter (při zobrazeném vstupním poli) – Odeslání zprávy. Pokud odešlete prázdnou zprávu (nebo výchozí text), stará zpráva se okamžitě odstraní z obrazovky.
|
||||||
|
3. Esc – Pokud je otevřené pole pro zprávu, zavře ho. Pokud je zpráva zavřená, ukončí celou aplikaci (režim celé obrazovky).
|
||||||
|
4. Šipka vpravo (Right) – Přeskočení na následující produkt v katalogu.
|
||||||
|
5. Šipka vlevo (Left) – Návrat na předchozí produkt v katalogu.
|
||||||
|
6. Mezerník (Space) – Pozastavení (PAUSE) nebo opětovné spuštění automatického cyklování produktů.
|
||||||
|
7. Klávesa R nebo r – Ruční načtení / aktualizace katalogu produktů ze složky
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Aplikace pro monitor videtelny jenom v stanku:
|
||||||
|
|
||||||
|
Priprava pro aplikaci:
|
||||||
|
|
||||||
|
|
||||||
|
Spousteni aplikace:
|
||||||
|
|
||||||
|
|
||||||
|
Ovladani aplikace:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Webovka:
|
||||||
|
|
||||||
|
-webovka
|
||||||
|
|
||||||
|
Priprava pro webovku:
|
||||||
|
|
||||||
|
|
||||||
|
Spousteni webovky:
|
||||||
|
|
||||||
|
|
||||||
|
Ovladani webovky:
|
||||||
|
|
||||||
|
-panel
|
||||||
|
|
||||||
|
Priprava pro panel:
|
||||||
|
|
||||||
|
|
||||||
|
Spousteni panelu:
|
||||||
|
|
||||||
|
|
||||||
|
Ovladani panelu:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Katalog access:
|
||||||
|
|
||||||
|
Priprava pro access:
|
||||||
|
1. nainstalovat nejaky prohlizec souboru(pokud mas windows, mas ho predinstalovany)
|
||||||
|
|
||||||
|
Spousteni accessu:
|
||||||
|
1. spusti nejaky prohlizec souboru
|
||||||
|
2. zadej cestu "\\123.456.789.123\katalog\"(jenom priklad)
|
||||||
|
|
||||||
|
Ovladani accessu:
|
||||||
|
1. kurva asi umis prochazet soubory ne?
|
||||||
|
2. ta vole proste vyber jsi slozku treba "3d-spiral" a v ni najdes soubor menem "info.txt" a ten proste upravuj.
|
||||||
15
co_delat.txt
Normal file
15
co_delat.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
aplikace ktera pobezi na monitoru pro verejnost a bude ukazovat katalog s spotify
|
||||||
|
hotovo
|
||||||
|
|
||||||
|
aplikace ktera pobezi na obrazovce pro pracovniky v stanku ktera bude ukazovat spotify s moznosti ovladat hudbu a prichazajici objednavky ktere bude taky moct potvrzovat
|
||||||
|
zatim jenom napad
|
||||||
|
|
||||||
|
moznost menit katalog/sklad pomoci admin panelu
|
||||||
|
zatim jenom napad
|
||||||
|
|
||||||
|
WEBOVKA
|
||||||
|
verejna webova stranka kde bude moznost objednavani online, online platba a dalsi informace o stanku
|
||||||
|
jenom zaklad(UI)
|
||||||
|
|
||||||
|
admin panel ktery bude moct menit katalog, hudbu, osvetleni a stav objednavek
|
||||||
|
zatim jenom napad
|
||||||
62
content.js
62
content.js
@@ -1,62 +0,0 @@
|
|||||||
const TARGET_URL = "http://localhost:8080/endpoint";
|
|
||||||
let lastSentSignature = "";
|
|
||||||
|
|
||||||
function extractAndSendSong() {
|
|
||||||
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";
|
|
||||||
|
|
||||||
// Získání obrázku alba
|
|
||||||
const imgElement = trackInfo.querySelector('img');
|
|
||||||
const albumCoverUrl = imgElement ? imgElement.src : null;
|
|
||||||
|
|
||||||
// Získání času
|
|
||||||
const currentTimeEl = document.querySelector('[data-testid="playback-position"]');
|
|
||||||
const durationEl = document.querySelector('[data-testid="playback-duration"]');
|
|
||||||
|
|
||||||
const currentTime = currentTimeEl ? currentTimeEl.innerText : "0:00";
|
|
||||||
const duration = durationEl ? durationEl.innerText : "0:00";
|
|
||||||
|
|
||||||
const progressFull = `${currentTime}/${duration}`;
|
|
||||||
|
|
||||||
// Spolehlivější detekce reklamy:
|
|
||||||
// Reklamy na Spotify trvají vždy přesně 30 vteřin (0:30) nebo nemají běžné odkazy na skladbu
|
|
||||||
const isAd = (duration === "0:30") || (links.length < 2) || (songTitle === null);
|
|
||||||
|
|
||||||
const finalTitle = isAd ? "Reklama" : songTitle;
|
|
||||||
const finalArtist = isAd ? "Spotify" : artistName;
|
|
||||||
|
|
||||||
if (finalTitle || isAd) {
|
|
||||||
const currentSignature = `${finalArtist}-${finalTitle}-${currentTime}-${isAd}`;
|
|
||||||
|
|
||||||
if (currentSignature !== lastSentSignature) {
|
|
||||||
lastSentSignature = currentSignature;
|
|
||||||
|
|
||||||
console.log("Odesílám data:", finalArtist, "-", finalTitle, `[${progressFull}]`, "Reklama:", isAd);
|
|
||||||
|
|
||||||
fetch(TARGET_URL, {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json"
|
|
||||||
},
|
|
||||||
body: JSON.stringify({
|
|
||||||
artist: finalArtist,
|
|
||||||
title: finalTitle,
|
|
||||||
coverImg: albumCoverUrl,
|
|
||||||
progressTime: progressFull,
|
|
||||||
ad: isAd ? "true" : "false",
|
|
||||||
timestamp: new Date().toISOString()
|
|
||||||
})
|
|
||||||
}).catch(err => {
|
|
||||||
console.error("Chyba při odesílání:", err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Kontrola každou vteřinu
|
|
||||||
setInterval(extractAndSendSong, 1000);
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"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"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
BIN
python.exe
Normal file
BIN
python.exe
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user