let currentHistoryId = 0; let currentChatID = null; document.addEventListener("DOMContentLoaded", async function() { currentChatID = await getChatID(); }); async function sendMessage() { const chatMessages = document.getElementById('chat-messages'); const chatInput = document.getElementById('chat-input'); const message = chatInput.value; if (message.trim() !== '') { const request = { 'chatId': currentChatID, 'LocalHistoryId': currentHistoryId, 'content': { 'text': message } }; const response = await fetch("/internalapi/sendMessage", { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) }); const res = await response.json(); if (res.update) { const update = res.update[0]; currentHistoryId = update.HistoryId; const messageElement = document.createElement('div'); messageElement.classList.add('chat-message'); const avatarElement = document.createElement('div'); avatarElement.classList.add('avatar'); const avatarImage = document.createElement('img'); avatarImage.src = 'https://sun9-59.userapi.com/impg/t8GhZ7FkynVifY1FQCnaf31tGprbV_rfauZzgg/fSq4lyc6V0U.jpg?size=1280x1280&quality=96&sign=e3c309a125cb570d2e18465eba65f940&type=album'; avatarElement.appendChild(avatarImage); const messageContentElement = document.createElement('div'); messageContentElement.classList.add('message-content'); const usernameElement = document.createElement('div'); usernameElement.classList.add('username'); usernameElement.textContent = await getUserName(); const textElement = document.createElement('div'); textElement.classList.add('text'); textElement.textContent = message; messageContentElement.appendChild(usernameElement); messageContentElement.appendChild(textElement); messageElement.appendChild(avatarElement); messageElement.appendChild(messageContentElement); chatMessages.appendChild(messageElement); chatInput.value = ''; chatMessages.scrollTop = chatMessages.scrollHeight; } } } document.getElementById('chat-input').addEventListener('keydown', function (event) { if (event.key === 'Enter') { sendMessage(); } }); async function getUserName() { const userID = await getUserID(); const request = { "id": userID }; const response = await fetch('/internalapi/getUserInfo', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(request) }); const res = await response.json(); return res.content.name; } async function getUserID() { const response = await fetch('/internalapi/mirror', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({}) }); const res = await response.json(); return res.id; } async function getChatID() { const chatNickname = window.location.pathname.split('/').pop(); const response = await fetch('/internalapi/getChatList', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({}) }); const res = await response.json(); for (const chat of res.chats) { if (chat.content.nickname === chatNickname) { return chat.id; } } return -1; } async function editMessage(new_message) { const req = { 'chatId': currentChatID, 'LocalHistoryId': currentHistoryId, 'id': getUserID(), 'content': { 'text': new_message } }; const res = await fetch('/internalapi/editMessage', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(req) }); const response = await res.json(); if (response.update) { currentHistoryId = response.update[0].HistoryId; } } function openMembersList() { document.getElementById("members-list").style.display = "block"; document.getElementById("overlay").style.display = "flex"; } function closeMembersList() { document.getElementById("members-list").style.display = "none"; document.getElementById("overlay").style.display = "none"; } document.getElementById('chat-input').addEventListener('keydown', function (event) { if (event.key === 'Enter') { sendMessage(); } });