(function () {
const roster = document.getElementById("roster");
if (!roster) return;
function escape(s) {
const d = document.createElement("div");
d.textContent = s;
return d.innerHTML;
}
function render(list) {
roster.innerHTML = list
.map(
(w) =>
`
${escape(w.username)} — last seen ${escape(w.lastSeen)}`
)
.join("");
}
async function poll() {
try {
const r = await fetch("/waddlers", { headers: { Accept: "application/json" } });
if (r.ok) render(await r.json());
} catch (e) {
console.error(e);
}
}
setInterval(poll, 2000);
})();