Files
UltraChat/script.js
sShemet d114970eec fixes
2025-12-31 16:57:55 +05:00

131 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let messages = [
"I wondered why the baseball was getting bigger. Then it hit me.",
"Police were called to a day care, where a three-year-old was resisting a rest.",
"Did you hear about the guy whose whole left side was cut off? Hes all right now.",
"The roundest knight at King Arthurs round table was Sir Cumference.",
"To write with a broken pencil is pointless.",
"When fish are in schools they sometimes take debate.",
"The short fortune teller who escaped from prison was a small medium at large.",
"A thief who stole a calendar… got twelve months.",
"A thief fell and broke his leg in wet cement. He became a hardened criminal.",
"Thieves who steal corn from a garden could be charged with stalking.",
"When the smog lifts in Los Angeles , U. C. L. A.",
"The math professor went crazy with the blackboard. He did a number on it.",
"The professor discovered that his theory of earthquakes was on shaky ground.",
"The dead batteries were given out free of charge.",
"If you take a laptop computer for a run you could jog your memory.",
"A dentist and a manicurist fought tooth and nail.",
"A bicycle cant stand alone; it is two tired.",
"A will is a dead giveaway.",
"Time flies like an arrow; fruit flies like a banana.",
"A backward poet writes inverse.",
"In a democracy its your vote that counts; in feudalism, its your Count that votes.",
"A chicken crossing the road: poultry in motion.",
"If you dont pay your exorcist you can get repossessed.",
"With her marriage she got a new name and a dress.",
"Show me a piano falling down a mine shaft and Ill show you A-flat miner.",
"When a clock is hungry it goes back four seconds.",
"The guy who fell onto an upholstery machine was fully recovered.",
"A grenade fell onto a kitchen floor in France and resulted in Linoleum Blownapart.",
"You are stuck with your debt if you cant budge it.",
"Local Area Network in Australia : The LAN down under.",
"He broke into song because he couldnt find the key.",
"A calendars days are numbered."
];
let nicks = [
"Edvard Force",
"Диванный Воин",
"Yoshka's Cat",
"XAOSHammer",
"Kino Konformist" ];
const chatwin = document.getElementById("chatwin");
function randomMessage() {
return messages[(Math.random() * messages.length) | 0];
}
function randomNick() {
return nicks[(Math.random() * nicks.length) | 0];
}
function randomChat() {
return Math.random() > 0.5 ? "tg" : "yt";
}
function scrollToBottom() {
chatwin.scrollTop = chatwin.scrollHeight;
}
function removeOldMessages() {
const children = Array.from(chatwin.children);
while (children.length > 15) {
chatwin.removeChild(children[0]);
}
}
function createChatLine() {
const nm = document.createElement("div");
nm.className = "nameline " + randomChat();
nm.textContent = randomNick();
const msg = document.createElement("div");
msg.className = "msgline";
msg.textContent = randomMessage();
const rw = document.createElement("div");
rw.className = "chatRow";
rw.appendChild(nm);
rw.appendChild(msg);
chatwin.appendChild(rw);
scrollToBottom();
removeOldMessages();
}
function createNewLine(json) {
json.forEach(element => {
const existing = document.getElementById(element.id);
if (existing) {
existing.querySelector('.msgline').textContent = element.msg;
return;
}
const nm = document.createElement("div");
nm.className = "nameline " + element.type;
nm.textContent = element.sendr;
if (element.type === "donate") {
nm.innerHTML += `<br><p style="color: red">${element.amount}</p>`;
}
const msg = document.createElement("div");
msg.className = "msgline";
msg.textContent = element.msg;
msg.id = element.id;
if (element.type === "donate") {
msg.style.backgroundColor = "#0000FF20";
}
const rw = document.createElement("div");
rw.className = "chatRow";
rw.appendChild(nm);
rw.appendChild(msg);
chatwin.appendChild(rw);
scrollToBottom();
removeOldMessages();
});
}
function requestNewLines() {
fetch("http://localhost:8008/")
.then(response => response.json())
.then(data => createNewLine(data))
.catch(error => console.error('Ошибка:', error));
}
setInterval(requestNewLines, 1000);
// setInterval(createChatLine, 3000);