From 5d79d2a75a49db08cb05b388204063b0332a037c Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 9 Oct 2014 15:06:20 -0400 Subject: [PATCH] closes #2191 added unique visitors analytics only update it every hour --- src/middleware/middleware.js | 13 ++++++++++++- src/socket.io/admin.js | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 66f5852a9a..1690a29959 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -45,7 +45,18 @@ middleware.updateLastOnlineTime = function(req, res, next) { user.updateLastOnlineTime(req.user.uid); } - db.sortedSetAdd('ip:recent', Date.now(), req.ip || 'Unknown'); + db.sortedSetScore('ip:recent', req.ip, function(err, score) { + if (err) { + return; + } + var today = new Date(); + today.setHours(today.getHours(), 0, 0, 0); + + if (!score || score < today.getTime()) { + db.sortedSetIncrBy('analytics:uniquevisitors', 1, today.getTime()); + db.sortedSetAdd('ip:recent', Date.now(), req.ip || 'Unknown'); + } + }); next(); }; diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index e0af07fdb5..47d38378f3 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -188,7 +188,7 @@ SocketAdmin.analytics.get = function(socket, data, callback) { if (data.graph === 'traffic') { async.parallel({ uniqueVisitors: function(next) { - getHourlyStatsForSet('ip:recent', data.amount, next); + getHourlyStatsForSet('analytics:uniquevisitors', data.amount, next); }, pageviews: function(next) { getHourlyStatsForSet('analytics:pageviews', data.amount, next);