diff options
Diffstat (limited to 'mod.js')
-rw-r--r-- | mod.js | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -0,0 +1,86 @@ +var s; +var antiflood = false; +var is_connected = false; +var chat_num = 0; + +function removeThis(e) { + e.target.parentElement.removeChild(e.target); +} + +function show_chat(msg, own) { + if(msg.startsWith("LOGIN:")) msg = "LOGIN:***"; + if(own) + msg = ">>> " + msg; + else + msg = "<<< " + msg; + + var chatbox = document.getElementById("chatbox"); + var chatbox_length = chatbox.children.length; + + if(chatbox_length >= CHATBOX_MAX) + chatbox.removeChild(chatbox.firstChild); + + var line = document.createElement('div'); + line.textContent = msg; + line.classList.add("l" + (chat_num ^= 1)); + if(own) + line.classList.add("own"); + chatbox.appendChild(line); + chatbox.scrollTop = chatbox.scrollHeight; +} + +function on_msg(line) { + /*var args = line.split(':'); + + if(args[0] == "MSG") { + var color = args[1]; + var msg = args[2].replace("%3A", ":"); + show_chat(msg, color, false); + } else if (args[0] == "COUNT") { + document.getElementById("viewers").textContent = "Viewers: " + args[1]; + }*/ + show_chat(line, false); +} + +function set_status(msg) { + document.getElementById("status").textContent = msg; +} + +function start() { + if(CONNECT) { + s = new WebSocket("wss://tv.bienvenidoainternet.org:6969"); + s.addEventListener("message", function(e) { on_msg(e.data); }); + s.addEventListener("open", function(e) { set_status("Conectado al chat."); is_connected = true; }); + s.addEventListener("close", function(e) { set_status("Desconectado del chat ("+ e.code + "|" + e.reason + ")"); is_connected = false; }); + } + + document.getElementById("sendchat").addEventListener("click", on_send); +} + +function enable_chat() { + antiflood = false; + document.getElementById("sendchat").disabled = false; +} + +function on_send(e) { + e.preventDefault(); + if(antiflood) return; + if(!is_connected) return; + + var msg = document.getElementById("chat_msg"); + var msg_str = msg.value.trim().substr(0, MAXCHAR); + var send = document.getElementById("sendchat"); + + if(!msg_str) return; + + s.send(msg_str); + show_chat(msg_str, true); + + msg.value = ""; + antiflood = true; + send.disabled = true; + setTimeout(enable_chat, FLOOD_TIME); +} + +window.addEventListener("load", start); + |