summaryrefslogtreecommitdiff
path: root/static/js/waddlers.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/waddlers.js')
-rw-r--r--static/js/waddlers.js30
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);
+})();