summaryrefslogtreecommitdiff
path: root/mod.js
diff options
context:
space:
mode:
Diffstat (limited to 'mod.js')
-rw-r--r--mod.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/mod.js b/mod.js
new file mode 100644
index 0000000..f2d0741
--- /dev/null
+++ b/mod.js
@@ -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);
+