this.newTargetOrActiveLine(nick, "CTCPREPLY", {"m": args, "x": type, "h": host, "n": nick, "-": this.nickname});
},
channelPrivmsg: function(user, channel, message) {
+ this.tracker.updateLastSpoke(user.hostToNick(), new Date().getTime());
this.newChanLine(channel, "CHANMSG", user, {"m": message});
},
channelNotice: function(user, channel, message) {
qwebirc.irc.NickChanEntry = function() {
this.prefixes = "";
+ this.lastSpoke = 0;
}
qwebirc.irc.IRCTracker = new Class({
return c;
},
getOrCreateNickOnChannel: function(nick, channel) {
- var n = this.getNick(nick);
+ var n = this.getOrCreateNick(nick);
var nc = n[channel];
if(!nc)
return nc;
},
+ getNickOnChannel: function(nick, channel) {
+ var n = this.getNick(nick);
+ if(!n)
+ return;
+
+ return n[channel];
+ }
addNickToChannel: function(nick, channel) {
var nc = new qwebirc.irc.NickChanEntry();
this.nicknames[newnick] = this.nicknames[oldnick];
delete this.nicknames[oldnick];
+ },
+ updateLastSpoke: function(nick, channel, time) {
+ var nc = this.getNickOnChannel(nick, channel);
+ if(nc)
+ nc.lastSpoke = time;
+ },
+ getSortedByLastSpoke: function(channel) {
+ var sorter = function(a, b) {
+ return b.lastSpoke - a.lastSpoke;
+ };
+
+ var c = getChannel(channel);
+ if(!c)
+ return;
+
+ var n = [];
+ for(var i=0;i<c.length;i++)
+ n.push(c[k]);
+
+ n.sort(sorter);
+
+ return n;
}
});
+
\ No newline at end of file