diff --git a/lib/models/chan.js b/lib/models/chan.js index 907fd4b..da575cc 100644 --- a/lib/models/chan.js +++ b/lib/models/chan.js @@ -14,6 +14,14 @@ function Chan(attr) { }, attr)); }; +Chan.prototype.addMsg = function(msg) { + this.messages.push(msg); +}; + +Chan.prototype.addUser = function(user) { + this.users.push(user); +}; + Chan.prototype.sortUsers = function() { this.users = _.sortBy( this.users, diff --git a/lib/models/network.js b/lib/models/network.js index 7a8b5e2..0236f7c 100644 --- a/lib/models/network.js +++ b/lib/models/network.js @@ -19,6 +19,10 @@ function Network(attr) { ); }; +Network.prototype.addChan = function(chan) { + this.channels.push(chan); +}; + Network.prototype.toJSON = function() { var clone = _.omit(this, [ "client", diff --git a/lib/server.js b/lib/server.js index 239d45f..0bced72 100644 --- a/lib/server.js +++ b/lib/server.js @@ -158,7 +158,7 @@ function input(data) { from: user, text: text, }); - chan.messages.push(msg) + chan.addMsg(msg) sockets.emit("msg", { id: chan.id, msg: msg, @@ -189,7 +189,7 @@ function input(data) { from: user, text: text, }); - chan.messages.push(msg) + chan.addMsg(msg) sockets.emit("msg", { id: chan.id, msg: msg, @@ -210,7 +210,7 @@ function input(data) { from: user, text: text, }); - chan.messages.push(msg) + chan.addMsg(msg) sockets.emit("msg", { id: chan.id, msg: msg, @@ -376,7 +376,7 @@ function fetch(socket, data) { function event(e, data) { var data = _.last(data); - var channels = this.channels; + var network = this; switch (e) { case "errors": @@ -396,12 +396,12 @@ function event(e, data) { break; case "join": - var chan = _.findWhere(channels, {name: data.channel}); + var chan = _.findWhere(this.channels, {name: data.channel}); if (typeof chan === "undefined") { chan = new Chan({ name: data.channel, }); - channels.push(chan); + this.addChan(chan); sockets.emit("join", { id: this.id, chan: chan, @@ -418,7 +418,7 @@ function event(e, data) { from: data.nick, type: "join", }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -426,7 +426,7 @@ function event(e, data) { break; case "kick": - var chan = _.findWhere(channels, {name: data.channel}); + var chan = _.findWhere(this.channels, {name: data.channel}); if (typeof chan === "undefined") { break; } @@ -444,7 +444,7 @@ function event(e, data) { from: data.nick, text: data.client, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -452,7 +452,7 @@ function event(e, data) { break; case "mode": - var chan = _.findWhere(channels, {name: data.target}); + var chan = _.findWhere(this.channels, {name: data.target}); if (typeof chan !== "undefined") { clearTimeout(this.timer); this.timer = setTimeout((function() { @@ -467,7 +467,7 @@ function event(e, data) { from: nick, text: data.mode + " " + data.client, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -476,14 +476,14 @@ function event(e, data) { break; case "motd": - var chan = channels[0]; + var chan = this.channels[0]; data.motd.forEach(function(m) { var msg = new Msg({ type: "motd", from: "-!-", text: m, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -493,13 +493,13 @@ function event(e, data) { case "message": var target = data.to; - var chan = _.findWhere(channels, {name: target.charAt(0) == "#" ? target : data.from}); + var chan = _.findWhere(this.channels, {name: target.charAt(0) == "#" ? target : data.from}); if (typeof chan === "undefined") { chan = new Chan({ name: data.from, type: "query", }); - channels.push(chan); + this.addChan(chan); sockets.emit("join", { id: this.id, chan: chan, @@ -520,7 +520,7 @@ function event(e, data) { from: data.from, text: text, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -528,13 +528,13 @@ function event(e, data) { break; case "names": - var chan = _.findWhere(channels, {name: data.channel}); + var chan = _.findWhere(this.channels, {name: data.channel}); if (typeof chan === "undefined") { break; } chan.users = []; _.each(data.names, function(n) { - chan.users.push(new User(n)); + chan.addUser(new User(n)); }); chan.sortUsers(); sockets.emit("users", { @@ -545,18 +545,18 @@ function event(e, data) { case "nick": if (data["new"] == this.client.me) { - var chan = channels[0]; + var chan = this.channels[0]; var msg = new Msg({ from: "-!-", text: "You're now known as " + data["new"], }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, }); } - channels.forEach(function(chan) { + this.channels.forEach(function(chan) { var user = _.findWhere(chan.users, {name: data.nick}); if (!user) { return; @@ -572,7 +572,7 @@ function event(e, data) { from: data.nick, text: data["new"], }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -581,7 +581,7 @@ function event(e, data) { break; case "notice": - var chan = channels[0]; + var chan = this.channels[0]; var from = data.from || "-!-"; if (data.to == "*" || data.from.indexOf(".") !== -1) { from = "-!-"; @@ -591,7 +591,7 @@ function event(e, data) { from: from, text: data.message, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -599,7 +599,7 @@ function event(e, data) { break; case "part": - var chan = _.findWhere(channels, {name: data.channels[0]}); + var chan = _.findWhere(this.channels, {name: data.channels[0]}); if (typeof chan === "undefined") { break; } @@ -618,7 +618,7 @@ function event(e, data) { type: "part", from: data.nick, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -627,7 +627,7 @@ function event(e, data) { break; case "quit": - channels.forEach(function(chan) { + this.channels.forEach(function(chan) { var user = _.findWhere(chan.users, {name: data.nick}); if (!user) { return; @@ -641,7 +641,7 @@ function event(e, data) { type: "quit", from: data.nick, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -650,7 +650,7 @@ function event(e, data) { break; case "topic": - var chan = _.findWhere(channels, {name: data.channel}); + var chan = _.findWhere(this.channels, {name: data.channel}); if (typeof chan === "undefined") { break; } @@ -660,7 +660,7 @@ function event(e, data) { from: from, text: data.topic, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -669,12 +669,12 @@ function event(e, data) { case "welcome": this.connected = true; - var chan = channels[0]; + var chan = this.channels[0]; var msg = new Msg({ from: "-!-", text: "You're now known as " + data, }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -685,13 +685,13 @@ function event(e, data) { if (!data) { break; } - var chan = _.findWhere(channels, {name: data.nickname}); + var chan = _.findWhere(this.channels, {name: data.nickname}); if (typeof chan === "undefined") { chan = new Chan({ type: "query", name: data.nickname, }); - channels.push(chan); + this.addChan(chan); sockets.emit("join", { id: this.id, chan: chan, @@ -714,7 +714,7 @@ function event(e, data) { from: data.nickname, text: key + " " + data[k], }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg, @@ -725,7 +725,7 @@ function event(e, data) { from: data.nickname, text: "End of /WHOIS list.", }); - chan.messages.push(msg); + chan.addMsg(msg); sockets.emit("msg", { id: chan.id, msg: msg,