let members = [ { username: 'Адель', nickname: 'cold_siemens52', avatar: 'https://sun9-59.userapi.com/impg/t8GhZ7FkynVifY1FQCnaf31tGprbV_rfauZzgg/fSq4lyc6V0U.jpg?size=1280x1280&quality=96&sign=e3c309a125cb570d2e18465eba65f940&type=album' }, { username: 'Антон', nickname: 'antyak_01', avatar: 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png' }, { username: 'Владимир', nickname: 'kkrkk2006', avatar: 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png' } ]; let currentHistoryId = 0; let currentChatID = null; function renderMembersList() { const membersListBody = document.getElementById('members-list-body'); membersListBody.innerHTML = ''; members.forEach((member, index) => { const memberItem = document.createElement('li'); memberItem.innerHTML = ` ${member.username} ${member.username} `; membersListBody.appendChild(memberItem); }); } function deleteMember(index) { members.splice(index, 1); renderMembersList(); } 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; } } } function openMembersList() { renderMembersList(); 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(); } }); 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; } } document.addEventListener("DOMContentLoaded", async function() { currentChatID = await getChatID(); });