function $(id) { return document.getElementById(id); } function updateRadioStatus() { fetch("/stats") .then(r => r.json()) .then(r => { $("radio-status").innerHTML = `On-air since `; $("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 = "n/a"; }); } function updateLastPlayedSong() { fetch('/lastsong') .then(r => r.json()) .then(last_played => { let cur_time = $('last-played').firstChild.lastChild.firstChild.innerText; if (last_played.time == cur_time) return; $('last-played').firstChild.firstChild.remove(); let row = $('last-played').insertRow(); let start_time = row.insertCell(); start_time.appendChild(document.createTextNode(last_played.time)); let listeners_cell = row.insertCell(); listeners_cell.appendChild(document.createTextNode(last_played.listeners == 0 ? "" : last_played.listeners)); let song_cell = row.insertCell(); song_cell.appendChild(document.createTextNode(last_played.song)); }); } document.getElementById("btn-update").addEventListener("click", () => { updateLastPlayedSong(); updateRadioStatus(); }) setInterval(updateRadioStatus, 45000); setInterval(updateLastPlayedSong, 45000);