From 278ceeee9c08ee34bfde11041201202b33116ab9 Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Mon, 24 Aug 2015 22:13:33 +0100 Subject: [PATCH] added channel deletion monitoring and uptime --- lib/Client.js | 32 +++++++++++++++++++++++++++++--- src/Client.js | 32 +++++++++++++++++++++++++++++++- test/bot.js | 2 +- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/lib/Client.js b/lib/Client.js index d5b1125f0..a707d366d 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -50,6 +50,7 @@ var Client = (function () { this.userCache = []; this.channelCache = []; this.serverCache = []; + this.readyTime = null; } _createClass(Client, [{ @@ -230,6 +231,7 @@ var Client = (function () { } self.trigger("ready"); + self.readyTime = Date.now(); self.debug("cached " + self.serverCache.length + " servers, " + self.channelCache.length + " channels and " + self.userCache.length + " users."); setInterval(function () { @@ -353,6 +355,26 @@ var Client = (function () { break; + case "CHANNEL_DELETE": + + var channel = self.getChannel("id", data.id); + + if (channel) { + + var server = channel.server; + + if (server) { + + server.channels.splice(server.channels.indexOf(channel), 1); + } + + self.trigger("channelDelete", channel); + + self.serverCache.splice(self.serverCache.indexOf(channel), 1); + } + + break; + default: self.debug("received unknown packet"); self.trigger("unknown", dat); @@ -463,9 +485,7 @@ var Client = (function () { //def getServer }, { key: "getServer", - value: function getServer() { - var key = arguments.length <= 0 || arguments[0] === undefined ? "id" : arguments[0]; - var value = arguments.length <= 1 || arguments[1] === undefined ? "abc123" : arguments[1]; + value: function getServer(key, value) { var _iteratorNormalCompletion7 = true; var _didIteratorError7 = false; var _iteratorError7 = undefined; @@ -522,6 +542,12 @@ var Client = (function () { this.websocket.send(JSON.stringify(data)); } } + }, { + key: "uptime", + get: function get() { + + return this.readyTime ? Date.now() - this.readyTime : null; + } }, { key: "ready", get: function get() { diff --git a/src/Client.js b/src/Client.js index 9642c78c4..314136ac9 100644 --- a/src/Client.js +++ b/src/Client.js @@ -40,6 +40,13 @@ class Client { this.userCache = []; this.channelCache = []; this.serverCache = []; + this.readyTime = null; + } + + get uptime(){ + + return (this.readyTime ? Date.now() - this.readyTime : null); + } get ready() { @@ -194,6 +201,7 @@ class Client { } self.trigger("ready"); + self.readyTime = Date.now(); self.debug(`cached ${self.serverCache.length} servers, ${self.channelCache.length} channels and ${self.userCache.length} users.`); setInterval(function () { @@ -275,6 +283,28 @@ class Client { } break; + + case "CHANNEL_DELETE": + + var channel = self.getChannel("id", data.id); + + if(channel){ + + var server = channel.server; + + if(server){ + + server.channels.splice( server.channels.indexOf(channel), 1 ); + + } + + self.trigger("channelDelete", channel); + + self.serverCache.splice( self.serverCache.indexOf(channel), 1 ); + + } + + break; default: self.debug("received unknown packet"); @@ -332,7 +362,7 @@ class Client { } //def getServer - getServer(key = "id", value = "abc123") { + getServer(key, value) { for (var server of this.serverCache) { if (server[key] === value) { return server; diff --git a/test/bot.js b/test/bot.js index 3d87dccca..0ddda494d 100644 --- a/test/bot.js +++ b/test/bot.js @@ -11,7 +11,7 @@ mybot.on("ready", function(){ }) mybot.on("message", function(msg){ - console.log("Another message by "+msg.author.username+"... now I have "+mybot.messages.length); + console.log("Another message by "+msg.author.username+"... now I have "+mybot.messages.length + " I have been online for " + mybot.uptime); }) mybot.on("messageDelete", function(channel, message){