summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Robinson <joe@lc8n.com>2016-10-16 21:05:57 +0100
committerJoe Robinson <joe@lc8n.com>2016-10-16 21:05:57 +0100
commitf13842bc63f002e456727d1a48239d4e044d0c75 (patch)
tree8bab949f76193239f274df703bc883b9ddd71e1a
parent63405f05a0406e55daf1fb4bfb00b324f2bf5f7e (diff)
Add join, part, and quit handlers
-rw-r--r--commands.js2
-rw-r--r--handlers.js41
-rw-r--r--index.js54
3 files changed, 46 insertions, 51 deletions
diff --git a/commands.js b/commands.js
index 5ab1d5e..59be364 100644
--- a/commands.js
+++ b/commands.js
@@ -62,7 +62,7 @@ module.exports.joinChannel = function (channel, sendJoin) {
chanTab.append("<div class='ui topic' data-id='"+numChans+"' data-tab='"+channel+"'></div>");
$('.menu .item').tab({history:false});
-
+ globals.channels.push(channel)
numChans++;
}
diff --git a/handlers.js b/handlers.js
index c4adbd7..e68a14d 100644
--- a/handlers.js
+++ b/handlers.js
@@ -95,6 +95,47 @@ module.exports.handleCommands = function(myClient) {
})
})
+
+ client.on('join', function(event) {
+ var channel = event.channel
+ var nick = event.nick
+ if($(".ui.users[data-tab='"+channel+"'] [data-nick="+nick+"]").length == 0) {
+ $(".ui.users[data-tab='"+channel+"']").append("<div class=item data-nick="+nick+">"+nick+"</div>")
+ }
+ var chatTab = $("[data-tab='"+ channel +"'].chat");
+ chatTab.append("<p class='chat-line'>"+nick+" joined "+channel+"</p>")
+ });
+
+ client.on('part', function(event) {
+ var channel = event.channel
+ var nick = event.nick
+ var message = event.message
+
+ if($(".ui.users[data-tab='"+channel+"'] [data-nick="+nick+"]").length > 0) {
+ $(".ui.users[data-tab='"+channel+"'] [data-nick="+nick+"]").remove();
+ }
+ var chatTab = $("[data-tab='"+ channel +"'].chat");
+
+ chatTab.append("<p class='chat-line'>"+nick+" left "+channel+" ("+message+")</p>")
+ chatTab.scrollTop(chatTab.prop("scrollHeight"));
+ });
+
+ client.on('quit', function(event) {
+ var nick = event.nick
+ var message = event.message
+
+
+ globals.channels.forEach(function(channel) {
+ if($(".ui.users[data-tab='"+channel+"'] [data-nick="+nick+"]").length > 0) {
+ $(".ui.users[data-tab='"+channel+"'] [data-nick="+nick+"]").remove();
+ var chatTab = $("[data-tab='"+ channel +"'].chat");
+ chatTab.append("<p class='chat-line'>"+nick+" quit ("+message+")</p>")
+ chatTab.scrollTop(chatTab.prop("scrollHeight"));
+ }
+
+ });
+ })
+
}
function receiveMsg(target, from, message) {
diff --git a/index.js b/index.js
index e9a6f7c..b4333e5 100644
--- a/index.js
+++ b/index.js
@@ -131,9 +131,9 @@ $("#send-message").keypress(function(e) {
topic = message.substring(7, message.length);
commands.setTopic(channel, topic);
} else if (message.indexOf("/") == 0) {
- command = message.split(" ")[0].replace("/","");
- commandArgs = message.replace(command + " ", "");
- client.send("kick", ["#wtest", "wjoe__", "test"]);
+ // command = message.split(" ")[0].replace("/","");
+ // commandArgs = message.replace(command + " ", "");
+ // client.send("kick", ["#wtest", "wjoe__", "test"]);
} else {
var tab = $(".tab.active").attr("data-tab");
if (tab.startsWith("#")) {
@@ -163,7 +163,7 @@ client.addListener('motd', function(motd) {
client.addListener('raw', function(message) {
var statusTab = $("[data-tab=status].chat");
- statusCmds = ["NOTICEAUTH", "rpl_welcome, rpl_yourhoust", "rpl_created", "rpl_myinfo", "rpl_isupport", "rpl_luserclient", "rpl_luserop", "rpl_luserme", "rpl_luserchannels", "rpl_localusers", "rpl_globalusers"];
+ statusCmds = ["NOTICEAUTH", "rpl_welcome, rpl_yourhost", "rpl_created", "rpl_myinfo", "rpl_isupport", "rpl_luserclient", "rpl_luserop", "rpl_luserme", "rpl_luserchannels", "rpl_localusers", "rpl_globalusers"];
if (statusCmds.indexOf(message.command) > -1 || message.command.startsWith("rpl_")) {
statusTab.append("<p class='chat-line'>"+message.command + ": " +message.args+"</p>")
statusTab.scrollTop(statusTab.prop("scrollHeight"));
@@ -174,39 +174,6 @@ client.addListener('ctcp-version', function(from, to, text, message) {
client.ctcp(from, "VERSION", "VERSION "+progName + " v"+ version)
});
-
-client.addListener('names', function(channel, nicks) {
- channel = channel.replace("#","")
- if($(".ui.tab[data-tab=chan-"+channel+"]").length == 0) {
- joinChannel(channel, false)
- }
- for(nick in nicks) {
- var mode = nicks[nick];
- if($(".ui.users[data-tab=chan-"+channel+"] [data-nick="+nick+"]").length == 0) {
- $(".ui.users[data-tab=chan-"+channel+"]").append("<div class=item data-nick="+nick+">"+mode+nick+"</div>")
- }
- }
-});
--
-client.addListener('join', function(channel, nick) {
- channel = channel.replace("#","")
- if($(".ui.users[data-tab=chan-"+channel+"] [data-nick="+nick+"]").length == 0) {
- $(".ui.users[data-tab=chan-"+channel+"]").append("<div class=item data-nick="+nick+">"+nick+"</div>")
- }
- var chatTab = $("[data-tab=chan-"+ channel +"].chat");
- chatTab.append("<p class='chat-line'>"+nick+" joined #"+channel+"</p>")
-});
-
-client.addListener('part', function(channel, nick) {
- channel = channel.replace("#","")
- if($(".ui.users[data-tab=chan-"+channel+"] [data-nick="+nick+"]").length > 0) {
- $(".ui.users[data-tab=chan-"+channel+"] [data-nick="+nick+"]").remove();
- }
- var chatTab = $("[data-tab=chan-"+ channel +"].chat");
- chatTab.append("<p class='chat-line'>"+nick+" left #"+channel+"</p>")
- chatTab.scrollTop(chatTab.prop("scrollHeight"));
-});
-
client.addListener('quit', function(nick, reason, channels, message) {
channels.forEach(function(channel) {
channel = channel.replace("#","")
@@ -296,17 +263,4 @@ client.addListener('-mode', function(channel, by, mode, argument, message) {
chatTab.scrollTop(chatTab.prop("scrollHeight"));
});
-client.addListener('channellist', function(channelList) {
- var statusTab = $("[data-tab=status].chat");
- statusTab.append("<p class='chat-line'>Channel List:</p>")
- for (i in channelList) {
- if (channelList[i].topic == null) {
- statusTab.append("<p class='chat-line'>"+channelList[i].name+" ("+channelList[i].users+")</p>");
- } else {
- statusTab.append("<p class='chat-line'>"+channelList[i].name+" ("+channelList[i].users+") : "+channelList[i].topic+"</p>");
- }
- statusTab.scrollTop(statusTab.prop("scrollHeight"));
- }
-});
-
}