55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
|
var songEndpoint = "https://stream.services.nez-cf.net.eu.org:1965/ntv_nowplaying.php";
|
||
|
|
||
|
function fetchSong() {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
var xhr = new XMLHttpRequest();
|
||
|
xhr.addEventListener("load", function() {
|
||
|
if (this.status == 200) resolve(this.responseText);
|
||
|
else reject(this);
|
||
|
});
|
||
|
xhr.open("GET", songEndpoint);
|
||
|
xhr.send();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function spacePad(i, c = " ", a = 32) {
|
||
|
var l = 32 - i.length;
|
||
|
if (l < 0) l = 0;
|
||
|
return i + c.repeat(l);
|
||
|
}
|
||
|
|
||
|
var scrollIndex = -1;
|
||
|
var scrollText = "";
|
||
|
var scrollElement = "null";
|
||
|
var skipTurns = 0;
|
||
|
var skipTurnsBegin = 5;
|
||
|
function scroller() {
|
||
|
if (scrollElement == "null") return;
|
||
|
if (skipTurns > 0) return skipTurns--;
|
||
|
if (skipTurnsBegin > 0) skipTurnsBegin--;
|
||
|
scrollIndex++;
|
||
|
if (scrollIndex > scrollText.length) {
|
||
|
scrollIndex = -1;
|
||
|
skipTurnsBegin = 5;
|
||
|
return skipTurns = 5;
|
||
|
}
|
||
|
if (scrollText.length > 32) scrollElement.innerHTML = spacePad(scrollText.substr(skipTurnsBegin > 0 ? 0 : scrollIndex, 32).replace(/ /g, " "));
|
||
|
else scrollElement.innerHTML = spacePad(scrollText.replace(/ /g, " "));
|
||
|
}
|
||
|
|
||
|
async function updateSongs() {
|
||
|
var song = await fetchSong();
|
||
|
song = "now playing: " + song;
|
||
|
if (scrollText != song) {
|
||
|
scrollText = song;
|
||
|
scrollIndex = -1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
document.addEventListener("DOMContentLoaded", function() {
|
||
|
scrollElement = document.getElementById("song-display");
|
||
|
setInterval(scroller, 200);
|
||
|
updateSongs();
|
||
|
setInterval(updateSongs, 20 * 1000);
|
||
|
});
|