1
0
dwelling-radio/web/assets/js/main.js

45 lines
1.5 KiB
JavaScript
Raw Normal View History

2022-03-08 01:17:24 +04:00
function $(id) { return document.getElementById(id); }
function updateRadioStatus() {
fetch("/status")
2022-03-08 01:17:24 +04:00
.then(r => r.json())
.then(r => {
$("radio-status").innerHTML =
`On-air since <time datetime="${r.server_start_iso8601}">${r.server_start_date}</time>`;
$("radio-song").textContent = r.song;
$("radio-listeners").textContent = r.listeners;
$("radio-listener-peak").textContent = r.listener_peak;
}).catch(() => {
$("radio-status").textContent = "Radio is offline.";
$("radio-song").textContent = "";
$("radio-listeners").textContent =
$("radio-listener-peak").textContent = "0";
2022-03-08 01:17:24 +04:00
});
}
function updateLastPlayedSong() {
fetch('/lastsong')
.then(r => r.json())
.then(last_played => {
if ($('last-played').firstChild === null)
$('last-played').appendChild(document.createElement("tbody"))
else if (last_played.time == $('last-played').firstChild.lastChild.firstChild.innerText)
return;
2022-03-08 01:17:24 +04:00
if ($('last-played').firstChild.children.length == 10)
$('last-played').firstChild.firstChild.remove();
2022-03-08 01:17:24 +04:00
let row = $('last-played').insertRow();
2022-04-01 18:42:13 +04:00
row.insertCell().appendChild(document.createTextNode(last_played.time));
row.insertCell().appendChild(document.createTextNode(last_played.listeners == 0 ? "" : last_played.listeners));
row.insertCell().appendChild(document.createTextNode(last_played.song));
2022-03-08 01:17:24 +04:00
});
}
document.getElementById("btn-update").addEventListener("click", () => {
updateLastPlayedSong();
updateRadioStatus();
})
setInterval(updateRadioStatus, 45000);
setInterval(updateLastPlayedSong, 45000);