diff --git a/client/client.js b/client/client.js index 54eff97..bdf41dc 100644 --- a/client/client.js +++ b/client/client.js @@ -49,6 +49,7 @@ var myNick = localStorageGet('my-nick') var myChannel = window.location.search.replace(/^\?/, '') var lastSent = [""] var lastSentPos = 0 +var banned = localStorageGet('banned') == 'true'; // Ping server every 50 seconds to retain WebSocket connection @@ -75,7 +76,9 @@ function join(channel) { } if (myNick) { localStorageSet('my-nick', myNick) - send({cmd: 'join', channel: channel, nick: myNick}) + if (!banned) { + send({cmd: 'join', channel: channel, nick: myNick}) + } } wasConnected = true } @@ -135,6 +138,12 @@ var COMMANDS = { pushMessage({nick: '*', text: nick + " left"}) } }, + data: function(args) { + if (args.banned) { + banned = true; + localStorageSet('banned', banned) + } + } } @@ -184,7 +193,7 @@ function pushMessage(args) { textEl.classList.add('text') textEl.textContent = args.text || '' - textEl.innerHTML = textEl.innerHTML.replace(/(\?|https?:\/\/)\S+?(?=[,.!?:)]?\s|$)/g, parseLinks) + textEl.innerHTML = textEl.innerHTML.replace(/(\s|^)(\?|https?:\/\/|www\.)\S+/g, parseLinks) if ($('#parse-latex').checked) { // Temporary hotfix for \rule spamming, see https://github.com/Khan/KaTeX/issues/109 diff --git a/server.js b/server.js index a1fc8d6..db67d9d 100644 --- a/server.js +++ b/server.js @@ -305,6 +305,7 @@ var COMMANDS = { } POLICE.arrest(getAddress(badClient)) + send({cmd: 'data', banned: true}, badClient); console.log(this.nick + " [" + this.trip + "] banned " + nick + " in " + this.channel) broadcast({cmd: 'info', text: "Banned " + nick}, this.channel) },