Removed whois ending line, added seconds formatting
authorDarren <darren@darrenwhitlen.com>
Sat, 24 Sep 2011 20:22:35 +0000 (21:22 +0100)
committerDarren <darren@darrenwhitlen.com>
Sat, 24 Sep 2011 20:22:35 +0000 (21:22 +0100)
js/front.events.js
js/util.js
node/app.js

index d7c95cb90c0d0820144ceb51ce95143aaccb57da..a03b022a89f0a49eaab23a9cba8b61d219314401 100644 (file)
@@ -208,7 +208,15 @@ kiwi.front.events = {
         Tabview.getServerTab().addMsg(null, data.server, data.msg, 'motd');\r
     },\r
     onWhois: function (e, data) {\r
-        var d, tab;\r
+        var d, tab, idle_time = '';\r
+\r
+        if (data.end) return;\r
+\r
+        if (typeof data.idle !== 'undefined'){\r
+            idle_time = secondsToTime(parseInt(data.idle, 10));\r
+            idle_time = idle_time.h.toString().lpad(2, "0") + ':' + idle_time.m.toString().lpad(2, "0") + ':' + idle_time.s.toString().lpad(2, "0");\r
+        }\r
+\r
         tab = Tabview.getCurrentTab();\r
         if (data.msg) {\r
             tab.addMsg(null, data.nick, data.msg, 'whois');\r
@@ -216,9 +224,10 @@ kiwi.front.events = {
             d = new Date();\r
             d.setTime(data.logon * 1000);\r
             d = d.toLocaleString();\r
-            tab.addMsg(null, data.nick, 'idle for ' + data.idle + ' second' + ((data.idle !== 1) ? 's' : '') + ', signed on ' + d, 'whois');\r
+\r
+            tab.addMsg(null, data.nick, 'idle for ' + idle_time + ', signed on ' + d, 'whois');\r
         } else {\r
-            tab.addMsg(null, data.nick, 'idle for ' + data.idle + ' seconds', 'whois');\r
+            tab.addMsg(null, data.nick, 'idle for ' + idle_time, 'whois');\r
         }\r
     },\r
     onMode: function (e, data) {\r
index a98cdc51ef823dcd5dbfcb05afc1f74564de1315..419c4a4844f428d63c62b2f329e26cf1c9c25350 100644 (file)
@@ -58,6 +58,25 @@ if (typeof String.prototype.lpad === 'undefined') {
 }
 
 
+
+function secondsToTime(secs){
+    var hours = Math.floor(secs / (60 * 60));
+   
+    var divisor_for_minutes = secs % (60 * 60);
+    var minutes = Math.floor(divisor_for_minutes / 60);
+    var divisor_for_seconds = divisor_for_minutes % 60;
+    var seconds = Math.ceil(divisor_for_seconds);
+   
+    var obj = {
+        "h": hours,
+        "m": minutes,
+        "s": seconds
+    };
+    return obj;
+}
+
+
 /*
     PLUGINS
     Each function in each object is looped through and ran. The resulting text
index b000948c32acdf46b4a2270256221dfc0ac25819..7f0dec0116e1a633a628748c0212724d2a3fb04f 100644 (file)
@@ -112,7 +112,8 @@ var ircNumerics = {
 
 this.parseIRCMessage = function (websocket, ircSocket, data) {
     /*global ircSocketDataHandler */
-    var msg, regex, opts, options, opt, i, j, matches, nick, users, chan, channel, params, nicklist, caps, rtn, obj, tmp, namespace;
+    var msg, regex, opts, options, opt, i, j, matches, nick, users, chan, channel,
+        params, nicklist, caps, rtn, obj, tmp, namespace, whois_end = false;
     //regex = /^(?::(?:([a-z0-9\x5B-\x60\x7B-\x7D\.\-]+)|([a-z0-9\x5B-\x60\x7B-\x7D\.\-]+)!([a-z0-9~\.\-_|]+)@?([a-z0-9\.\-:\/]+)?) )?([a-z0-9]+)(?:(?: ([^:]+))?(?: :(.+))?)$/i;
     //regex = /^(?::(\S+) )?(\S+)(?: (?!:)(.+?))?(?: :(.+))?$/i;
     regex = /^(?::(?:([a-z0-9\x5B-\x60\x7B-\x7D\.\-]+)|([a-z0-9\x5B-\x60\x7B-\x7D\.\-]+)!([a-z0-9~\.\-_|]+)@?([a-z0-9\.\-:\/]+)?) )?(\S+)(?: (?!:)(.+?))?(?: :(.+))?$/i;
@@ -173,13 +174,15 @@ this.parseIRCMessage = function (websocket, ircSocket, data) {
 
             websocket.sendClientEvent('options', {server: '', "options": ircSocket.IRC.options});
             break;
+
+        case ircNumerics.RPL_ENDOFWHOIS:
+            whois_end = true;
         case ircNumerics.RPL_WHOISUSER:
         case ircNumerics.RPL_WHOISSERVER:
         case ircNumerics.RPL_WHOISOPERATOR:
-        case ircNumerics.RPL_ENDOFWHOIS:
         case ircNumerics.RPL_WHOISCHANNELS:
         case ircNumerics.RPL_WHOISMODES:
-            websocket.sendClientEvent('whois', {server: '', nick: msg.params.split(" ", 3)[1], "msg": msg.trailing});
+            websocket.sendClientEvent('whois', {server: '', nick: msg.params.split(" ", 3)[1], "msg": msg.trailing, end: whois_end});
             break;
 
         case ircNumerics.RPL_LISTSTART: