mirror of
https://github.com/lucaspalomodevelop/Party.git
synced 2026-03-16 17:24:36 +00:00
127 lines
3.8 KiB
HTML
127 lines
3.8 KiB
HTML
<html>
|
|
<head>
|
|
<style>
|
|
body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
font-family: Arial, sans-serif;
|
|
background-image: linear-gradient(to right, rgb(38, 134, 62), rgb(89, 89, 175))
|
|
}
|
|
|
|
#messages {
|
|
width: 50%;
|
|
height: 50%;
|
|
overflow-y: scroll;
|
|
border: 1px solid gray;
|
|
padding: 10px;
|
|
margin-bottom: 10px;
|
|
background-color: white;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.message {
|
|
margin-bottom: 10px;
|
|
animation: fadein 0.5s;
|
|
}
|
|
|
|
@keyframes fadein {
|
|
from { opacity: 0; }
|
|
to { opacity: 1; }
|
|
}
|
|
|
|
.username {
|
|
font-weight: bold;
|
|
color: blue;
|
|
}
|
|
|
|
.timestamp {
|
|
font-size: 12px;
|
|
color: gray;
|
|
}
|
|
|
|
input[type="text"] {
|
|
width: 50%;
|
|
padding: 10px;
|
|
margin-bottom: 10px;
|
|
font-size: 16px;
|
|
border-radius: 10px;
|
|
border: none;
|
|
}
|
|
|
|
button {
|
|
padding: 10px 20px;
|
|
font-size: 16px;
|
|
background-color: lightgray;
|
|
border: none;
|
|
border-radius: 10px;
|
|
cursor: pointer;
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
let unread = 0;
|
|
|
|
function updateTitle() {
|
|
document.title = "Chat (" + unread + ")";
|
|
}
|
|
|
|
function addMessage(username, message, timestamp) {
|
|
let messagesDiv = document.getElementById("messages");
|
|
let messageDiv = document.createElement("div");
|
|
messageDiv.classList.add("message");
|
|
let usernameSpan = document.createElement("span");
|
|
usernameSpan.classList.add("username");
|
|
usernameSpan.innerText = username;
|
|
let messageSpan = document.createElement("span");
|
|
messageSpan.innerText = message.substring(0, 80);
|
|
let timestampSpan = document.createElement("span");
|
|
timestampSpan.classList.add("timestamp");
|
|
timestampSpan.innerText = timestamp;
|
|
messageDiv.appendChild(usernameSpan);
|
|
messageDiv.appendChild(document.createTextNode(": "));
|
|
messageDiv.appendChild(messageSpan);
|
|
messageDiv.appendChild(document.createElement("br"));
|
|
messageDiv.appendChild(timestampSpan);
|
|
messagesDiv.appendChild(messageDiv);
|
|
messagesDiv.scrollTop = messagesDiv.scrollHeight;
|
|
unread += 1;
|
|
updateTitle();
|
|
}
|
|
|
|
let inputField = document.getElementById("input");
|
|
inputField.addEventListener("input", function() {
|
|
let value = inputField.value;
|
|
if (value.length > 80) {
|
|
inputField.value = value.substring(0, 80);
|
|
}
|
|
});
|
|
|
|
function getMessages() {
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open("GET", "/get");
|
|
xhr.onload = function() {
|
|
document.getElementById("messages").innerHTML = xhr.responseText;
|
|
};
|
|
xhr.send();
|
|
}
|
|
|
|
function sendMessage() {
|
|
var message = document.getElementById("message").value;
|
|
var username = document.getElementById("username").value;
|
|
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open("POST", "/send");
|
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
xhr.send("message=" + message + "&username=" + username);
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="getMessages(); setInterval(getMessages, 1000);">
|
|
<div id="messages"></div>
|
|
<input type="hidden" id="username" placeholder="Username">
|
|
<input type="text" id="message" placeholder="Message">
|
|
<button onclick="sendMessage();">Send</button>
|
|
</body>
|
|
</html>
|