get this to work a slight bit more

This commit is contained in:
Schrottkatze 2024-10-07 21:12:49 +02:00
parent ed87d3fb51
commit 5160929958
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
10 changed files with 484 additions and 108 deletions

26
static/chat.js Normal file
View file

@ -0,0 +1,26 @@
init_polling();
// terrible hack. uses polling.
function init_polling() {
let history_el = document.getElementById("history");
let msg_template = document.querySelector("#chatmessage");
setInterval(() => {
let messages = document.getElementsByClassName("message");
let last_msg_uuid = messages[messages.length - 1].id;
fetch(`/poll/${last_msg_uuid}`)
.then(data => data.text().then(bleh => {
let new_messages = JSON.parse(bleh);
for (const message of new_messages) {
const clone = msg_template.content.cloneNode(true);
let msgclone = clone.querySelector("div");
msgclone.id = message.id;
msgclone.classList.add(message.from_admin ? "from_admin" : "from_user");
let content = msgclone.querySelector("p");
content.textContent = message.content;
let ts = msgclone.querySelector(".timestamp");
ts.textContent = message.timestamp;
history_el.appendChild(msgclone);
}
}));
}, 5000)
}