playBtn.textContent = '▶ Play'; nowText.textContent = 'Pausado'; } }catch(e){ nowText.textContent = 'Erro ao tocar — verifica permissões do navegador'; console.error(e); } }); muteBtn.addEventListener('click', ()=>{ radio.muted = !radio.muted; muteBtn.textContent = radio.muted ? '🔇 Mudo' : '🔊 Som'; }); // Chat UI const messagesEl = document.getElementById('messages'); const msgInput = document.getElementById('msgInput'); const sendBtn = document.getElementById('sendBtn'); const nickInput = document.getElementById('nick'); const setNickBtn = document.getElementById('setNick'); let nick = localStorage.getItem('miku_nick') || ''; if(nick){nickInput.value = nick;} setNickBtn.addEventListener('click', ()=>{nick = nickInput.value.trim() || ('Visitante'+Math.floor(Math.random()*999)); localStorage.setItem('miku_nick', nick); nickInput.blur(); nickInput.value = nick;}); function appendMessage(data, mine=false){ const wrap = document.createElement('div'); wrap.className = 'msg'; // sanitize text simply const safeText = String(data.text).replace(//g,'>'); const meta = document.createElement('div'); meta.className='meta'; meta.textContent = `${data.nick || 'Visitante'} • ${new Date(data.time).toLocaleTimeString()}`; const body = document.createElement('div'); body.innerHTML = safeText; wrap.appendChild(meta); wrap.appendChild(body); messagesEl.appendChild(wrap); messagesEl.scrollTop = messagesEl.scrollHeight; } // receber mensagens do servidor socket.on('chat-message', (data)=>{ appendMessage(data); }); sendBtn.addEventListener('click', sendMessage); msgInput.addEventListener('keydown', (e)=>{ if(e.key === 'Enter') sendMessage(); }); function sendMessage(){ const text = msgInput.value.trim(); if(!text) return; if(!nick){ nick = 'Visitante'+Math.floor(Math.random()*999); localStorage.setItem('miku_nick', nick); nickInput.value = nick; } const payload = {nick, text, time: Date.now()}; socket.emit('new-message', payload); // opcional: mostrar imediatamente appendMessage(payload, true); msgInput.value = ''; } // system messages socket.on('system', (txt)=>{ appendMessage({nick:'Sistema',text:txt,time:Date.now()}); }); })();