<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Minecraft Twitch Chat Overlay</title> <link rel="stylesheet" href="/static/css/style.css"> <!-- Link to external CSS --> </head> <body> <div id="chat"></div> <script> // Extract the channel name from the URL const channel = window.location.pathname.split('/')[2]; // Store the last set of messages to avoid reloading the same ones let lastMessages = []; // Function to fetch chat messages async function fetchChat() { const response = await fetch(`/chat/${channel}`); const data = await response.json(); const chat = document.getElementById('chat'); // Check if messages have changed if (JSON.stringify(data.messages) !== JSON.stringify(lastMessages)) { lastMessages = data.messages; // Clear existing messages chat.innerHTML = ''; // Add new messages with fade-in animation data.messages.forEach((msg, index) => { const messageElement = document.createElement('div'); messageElement.classList.add('message'); messageElement.textContent = msg; // Fade out older messages if there are more than 10 if (data.messages.length > 10 && index < data.messages.length - 10) { messageElement.classList.add('fade-out'); } chat.appendChild(messageElement); }); // Scroll to the bottom chat.scrollTop = chat.scrollHeight; } } // Fetch chat messages every second setInterval(fetchChat, 1000); </script> </body> </html>