diff options
Diffstat (limited to 'webchat/public')
-rw-r--r-- | webchat/public/client.js | 100 | ||||
-rw-r--r-- | webchat/public/commands.js | 24 | ||||
-rw-r--r-- | webchat/public/functions.js | 8 | ||||
-rw-r--r-- | webchat/public/sockjs_client_transport.js | 2 |
4 files changed, 52 insertions, 82 deletions
diff --git a/webchat/public/client.js b/webchat/public/client.js index 58002f78..d7a5ecab 100644 --- a/webchat/public/client.js +++ b/webchat/public/client.js @@ -1,4 +1,50 @@ var settings = {} +settings.sock = new SockJS('/echo'); +settings.waiting_callbacks = {} + +var transport = make_sockjs_client_transport(settings.sock) +var rpc = new RPC(transport) + +rpc.register('msg', {type: 'string', nick: 'string', msg: 'string'}, function(params, callback) { + var safe_message = $('<div/>').text(params.msg).html(); + safe_message = replaceURLWithHTMLLinks(safe_message); + var safe_from = $('<div/>').text(params.nick).html(); + chatboxAppend(safe_from, safe_message, 'web_msg') + return callback(null) +}) +rpc.register('nick', {type: 'string', newnick: 'string', oldnick: 'string'}, function(params, callback) { + var safe_oldnick = $('<div/>').text(params.oldnick).html(); + var safe_newnick = $('<div/>').text(params.newnick).html(); + var safe_type = $('<div/>').text(params.type).html(); + if (safe_oldnick === settings.nick){ + settings.nick = safe_newnick + $('#nick').html(settings.nick) + } + $(getNicklistElement(safe_oldnick,safe_type)).remove(); + $('#nicklist').append('<div class="'+safe_type+'_name">' + safe_newnick + '</div>') ; + chatboxAppend(safe_oldnick, 'is now known as ' + safe_newnick, 'nick'); + return callback(null) +}) +rpc.register('your_nick', {nick: 'string'}, function(params, callback) { + var safe_nick = $('<div/>').text(params.nick).html(); + settings.nick = safe_nick + $('#nick').html(settings.nick) + return callback(null) +}) +rpc.register('join', {type: 'string', nick: 'string'}, function(params, callback) { + var safe_nick = $('<div/>').text(params.nick).html(); + var safe_type = $('<div/>').text(params.type).html(); + $('#nicklist').append('<div class="'+safe_type+'_name">' + safe_nick + '</div>') ; + chatboxAppend(safe_nick, 'has joined'); + return callback(null) +}) +rpc.register('part', {type: 'string', nick: 'string'}, function(params, callback) { + var safe_nick = $('<div/>').text(params.nick).html(); + var safe_type = $('<div/>').text(params.type).html(); + $(getNicklistElement(safe_nick,safe_type)).remove(); + chatboxAppend(safe_nick, 'has parted'); + return callback(null) +}) $(function updateTime () { $('#time').html(getCurTime()); @@ -6,53 +52,7 @@ $(function updateTime () { return true; }); -settings.waiting_callbacks = {} -$(function connect() { - settings.sock = new SockJS('/echo'); - var transport = make_sockjs_client_transport(settings.sock) - var rpc = new RPC(transport) - rpc.register('msg', {type: 'string', nick: 'string', msg: 'string'}, function(params, callback) { - var safe_message = $('<div/>').text(params.msg).html(); - safe_message = replaceURLWithHTMLLinks(safe_message); - var safe_from = $('<div/>').text(params.nick).html(); - chatboxAppend(safe_from, safe_message, 'web_msg') - return callback(null) - }) - rpc.register('nick', {type: 'string', newnick: 'string', oldnick: 'string'}, function(params, callback) { - var safe_oldnick = $('<div/>').text(params.oldnick).html(); - var safe_newnick = $('<div/>').text(params.newnick).html(); - var safe_type = $('<div/>').text(params.type).html(); - if (safe_oldnick === settings.nick){ - settings.nick = safe_newnick - $('#nick').html(settings.nick) - } - $(getNicklistElement(safe_oldnick,safe_type)).remove(); - $('#nicklist').append('<div class="'+safe_type+'_name">' + safe_newnick + '</div>') ; - chatboxAppend(safe_oldnick, 'is now known as ' + safe_newnick, 'nick'); - return callback(null) - }) - rpc.register('your_nick', {nick: 'string'}, function(params, callback) { - var safe_nick = $('<div/>').text(params.nick).html(); - settings.nick = safe_nick - $('#nick').html(settings.nick) - return callback(null) - }) - rpc.register('join', {type: 'string', nick: 'string'}, function(params, callback) { - var safe_nick = $('<div/>').text(params.nick).html(); - var safe_type = $('<div/>').text(params.type).html(); - $('#nicklist').append('<div class="'+safe_type+'_name">' + safe_nick + '</div>') ; - chatboxAppend(safe_nick, 'has joined'); - return callback(null) - }) - rpc.register('part', {type: 'string', nick: 'string'}, function(params, callback) { - var safe_nick = $('<div/>').text(params.nick).html(); - var safe_type = $('<div/>').text(params.type).html(); - $(getNicklistElement(safe_nick,safe_type)).remove(); - chatboxAppend(safe_nick, 'has parted'); - return callback(null) - }) -}); $(function() { $('#input').keydown(function(e) { if (e.keyCode === 13) { @@ -62,8 +62,12 @@ $(function() { var input = ($('#input').val()); $('#input').val(''); - var command = inputParser(input) - return (commands[command.method] || commands.badcommand)(settings, command.params) + var match = /^\/([a-z]+)(?:\s+(.*\S))?\s*$/.exec(input) + if (match) { + return rpc.send(match[1], match[2]) + } else { + return rpc.send('msg', input) + } } }); diff --git a/webchat/public/commands.js b/webchat/public/commands.js deleted file mode 100644 index f19c78dc..00000000 --- a/webchat/public/commands.js +++ /dev/null @@ -1,24 +0,0 @@ -var commands = {} - -commands.msg = function (settings, params) { - var sendObj = { - method: 'msg', - params: { msg: params } - } - settings.sock.send(JSON.stringify(sendObj)) -} - -commands.nick = function (settings, params) { - var sendObj = { - method: 'nick', - params: { nick: params }, - } - settings.sock.send(JSON.stringify(sendObj)) -} - -commands.badcommand = function (settings, params) { - console.log("error", params); - chatboxAppend( '<span class="from_system">error</span>', 'command not found' ) - - -} diff --git a/webchat/public/functions.js b/webchat/public/functions.js index 781fafce..318d0865 100644 --- a/webchat/public/functions.js +++ b/webchat/public/functions.js @@ -1,11 +1,3 @@ -function inputParser (str) { - var match = /^\/([a-z]+)(?:\s+(.*\S))?\s*$/.exec(str) - if (match) { - return { method: match[1], params: match[2] } - } else { - return { method: 'msg', params: str } - } -} function replaceURLWithHTMLLinks (text) { var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; diff --git a/webchat/public/sockjs_client_transport.js b/webchat/public/sockjs_client_transport.js index 4e525d0d..a7b76af3 100644 --- a/webchat/public/sockjs_client_transport.js +++ b/webchat/public/sockjs_client_transport.js @@ -23,5 +23,3 @@ function make_sockjs_client_transport (sock) { return transport } - - |