Added /whois, /invite, /kick, /msg and /say

This commit is contained in:
khlieng 2015-02-10 02:25:28 +01:00
parent 5df364a3a4
commit ed09a97ade
7 changed files with 150 additions and 0 deletions

View file

@ -6,6 +6,8 @@ var socket = require('../socket');
var channelActions = Reflux.createActions([
'join',
'part',
'invite',
'kick',
'addUser',
'removeUser',
'removeUserAll',
@ -30,4 +32,20 @@ channelActions.part.preEmit = function(channels, server) {
});
};
channelActions.invite.preEmit = function(user, channel, server) {
socket.send('invite', {
server: server,
channel: channel,
user: user
});
};
channelActions.kick.preEmit = function(user, channel, server) {
socket.send('kick', {
server: server,
channel: channel,
user: user
});
};
module.exports = channelActions;

View file

@ -5,6 +5,7 @@ var socket = require('../socket');
var serverActions = Reflux.createActions([
'connect',
'disconnect',
'whois',
'setNick',
'load'
]);
@ -25,6 +26,13 @@ serverActions.disconnect.preEmit = function(server) {
socket.send('quit', { server: server });
};
serverActions.whois.preEmit = function(user, server) {
socket.send('whois', {
server: server,
user: user
});
};
serverActions.setNick.preEmit = function(nick, server) {
socket.send('nick', {
server: server,

View file

@ -1,4 +1,5 @@
var channelStore = require('./stores/channel');
var selectedTabStore = require('./stores/selectedTab');
var channelActions = require('./actions/channel');
var messageActions = require('./actions/message');
var serverActions = require('./actions/server');
@ -46,5 +47,43 @@ messageActions.command.listen(function(line, channel, server) {
messageActions.inform('No topic set', server, channel);
}
break;
case 'invite':
if (params[1] && params[2] && server) {
channelActions.invite(params[1], params[2], server);
} else if (params[1] && channel) {
channelActions.invite(params[1], channel, server);
}
break;
case 'kick':
if (params[1] && channel) {
channelActions.kick(params[1], channel, server);
}
break;
case 'msg':
if (params.length > 2) {
var dest = params[1];
var message = params.slice(2).join(' ');
messageActions.send(message, dest, server);
}
break;
case 'say':
if (params.length > 1) {
var message = params.slice(1).join(' ');
messageActions.send(message, channel, server);
}
break;
case 'whois':
if (params[1]) {
serverActions.whois(params[1], server);
}
break;
}
});

View file

@ -1,6 +1,7 @@
var _ = require('lodash');
var socket = require('./socket');
var selectedTabStore = require('./stores/selectedTab');
var channelActions = require('./actions/channel');
var messageActions = require('./actions/message');
var serverActions = require('./actions/server');
@ -55,6 +56,19 @@ socket.on('mode', function(data) {
channelActions.setMode(data);
});
socket.on('whois', function(data) {
var tab = selectedTabStore.getState();
console.log(data.channels);
messageActions.inform('Nick: ' + data.nick, tab.server, tab.channel);
messageActions.inform('Username: ' + data.username, tab.server, tab.channel);
messageActions.inform('Realname: ' + data.realname, tab.server, tab.channel);
messageActions.inform('Host: ' + data.host, tab.server, tab.channel);
messageActions.inform('Server: ' + data.server, tab.server, tab.channel);
messageActions.inform('Channels: ' + data.channels, tab.server, tab.channel);
});
socket.on('servers', function(data) {
serverActions.load(data);
});