diff options
Diffstat (limited to 'static/js/waddlers.js')
| -rw-r--r-- | static/js/waddlers.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/static/js/waddlers.js b/static/js/waddlers.js new file mode 100644 index 0000000..d1dbd63 --- /dev/null +++ b/static/js/waddlers.js @@ -0,0 +1,30 @@ +(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) => + `<li><span class="dot ${w.status}"></span> <strong>${escape(w.username)}</strong> <span class="muted">— last seen ${escape(w.lastSeen)}</span></li>` + ) + .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); +})(); |
