CANLI
0 kişi online
RADYO
ŞU AN ÇALIYOR
Radyo Kanka — Canlı Yayın
ONLİNE 0
🎵 Radyo Kanka lobisine hoş geldin!
😊 😂 ❤️ 🔥 🎵 🎶 👏 😍 🤣 💯 🎤 🎧 🎸 🥳 😎 👋 💪 🙏 😢 😴
// const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_PROJECT.firebaseapp.com", databaseURL: "https://YOUR_PROJECT-default-rtdb.firebaseio.com", projectId: "YOUR_PROJECT_ID" }; firebase.initializeApp(firebaseConfig); const db = firebase.database(); ============================= */ // ===== GİRİŞ ===== function girisYap() { const nick = document.getElementById('nickInput').value.trim(); if (!nick || nick.length < 2) { alert('En az 2 karakter gir kanka!'); return; } if (nick.length > 20) { alert('En fazla 20 karakter!'); return; } if (!/^[a-zA-Z0-9_çğıöşüÇĞİÖŞÜ]+$/.test(nick)) { alert('Sadece harf, rakam ve _ kullanabilirsin!'); return; } myNick = nick; myColor = COLORS[Math.floor(Math.random() * COLORS.length)]; document.getElementById('loginOverlay').style.display = 'none'; // Sisteme giriş mesajı addSystemMessage('🎵 ' + myNick + ' lobiye katıldı!'); addUser(myNick, myColor); updateOnlineCount(); } document.getElementById('nickInput').addEventListener('keypress', function(e) { if (e.key === 'Enter') girisYap(); }); // ===== MESAJ SİSTEMİ (LOCALSTORAGE) ===== // NOT: Gerçek çok kullanıcılı chat için Firebase kullanın // Bu örnek tek kullanıcı demo içindir function addMessage(nick, text, color, isMe) { const area = document.getElementById('messagesArea'); const now = new Date(); const time = now.getHours().toString().padStart(2,'0') + ':' + now.getMinutes().toString().padStart(2,'0'); const initials = nick.charAt(0).toUpperCase(); const wrap = document.createElement('div'); wrap.className = 'msg-wrap' + (isMe ? ' mine' : ''); wrap.innerHTML = `
${initials}
${nick} ${time}
${escapeHtml(text)}
`; area.appendChild(wrap); // Max mesaj sınırı const msgs = area.querySelectorAll('.msg-wrap'); if (msgs.length > MAX_MESSAGES) msgs[0].remove(); area.scrollTop = area.scrollHeight; } function addSystemMessage(text) { const area = document.getElementById('messagesArea'); const div = document.createElement('div'); div.className = 'sys-msg'; div.textContent = text; area.appendChild(div); area.scrollTop = area.scrollHeight; } function sendMessage() { if (!myNick) { alert('Önce giriş yapmalısın!'); return; } const input = document.getElementById('msgInput'); const text = input.value.trim(); if (!text) return; if (text.length > 300) { alert('Mesaj çok uzun!'); return; } addMessage(myNick, text, myColor, true); input.value = ''; // Firebase'e yaz: // db.ref('messages').push({ nick: myNick, text: text, color: myColor, time: Date.now() }); } // ===== EMOJİ ===== function toggleEmoji() { const panel = document.getElementById('emojiPanel'); panel.classList.toggle('open'); } function emojiEkle(emoji) { const input = document.getElementById('msgInput'); input.value += emoji; input.focus(); document.getElementById('emojiPanel').classList.remove('open'); } document.addEventListener('click', function(e) { const panel = document.getElementById('emojiPanel'); const btn = document.querySelector('.emoji-btn'); if (!panel.contains(e.target) && !btn.contains(e.target)) { panel.classList.remove('open'); } }); // ===== ONLİNE KULLANICI ===== function addUser(nick, color) { users[nick] = { nick, color }; renderUsers(); } function renderUsers() { const list = document.getElementById('userList'); const count = Object.keys(users).length; document.getElementById('onlineBadge').textContent = count; document.getElementById('onlineCount').textContent = count + ' kişi online'; list.innerHTML = ''; Object.values(users).forEach(u => { const div = document.createElement('div'); div.className = 'user-card'; div.innerHTML = `
${u.nick.charAt(0).toUpperCase()}
${u.nick}
Dinleyici
`; list.appendChild(div); }); } function updateOnlineCount() { renderUsers(); } // ===== VİZÜALİZER ===== const vis = document.getElementById('visualizer'); for(let i = 0; i < 20; i++) { const bar = document.createElement('div'); bar.className = 'viz-bar'; bar.style.animationDuration = (0.4 + Math.random() * 1.2) + 's'; bar.style.animationDelay = (Math.random() * 0.5) + 's'; vis.appendChild(bar); } // ===== YARDIMCI ===== function escapeHtml(text) { return text.replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } // ===== HOŞGELDIN ===== setTimeout(() => { addSystemMessage('📻 Radyo Kanka\'ya hoş geldin! Müziğin tadını çıkar.'); }, 500);