This commit is contained in:
Barış Soner Uşaklı
2018-10-24 11:24:37 -04:00
parent 11c2a65b5a
commit 9f36ce3997
4 changed files with 82 additions and 13 deletions

View File

@@ -14,6 +14,9 @@ var Analytics = module.exports;
var counters = {};
var pageViews = 0;
var pageViewsRegistered = 0;
var pageViewsGuest = 0;
var pageViewsBot = 0;
var uniqueIPCount = 0;
var uniquevisitors = 0;
@@ -51,6 +54,14 @@ Analytics.increment = function (keys, callback) {
Analytics.pageView = function (payload) {
pageViews += 1;
if (payload.uid > 0) {
pageViewsRegistered += 1;
} else if (payload.uid < 0) {
pageViewsBot += 1;
} else {
pageViewsGuest += 1;
}
if (payload.ip) {
// Retrieve hash or calculate if not present
let hash = ipCache.get(payload.ip + nconf.get('secret'));
@@ -92,6 +103,24 @@ Analytics.writeData = function (callback) {
pageViews = 0;
}
if (pageViewsRegistered > 0) {
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:pageviews:registered', pageViewsRegistered, today.getTime()));
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:pageviews:month:registered', pageViewsRegistered, month.getTime()));
pageViewsRegistered = 0;
}
if (pageViewsGuest > 0) {
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:pageviews:guest', pageViewsGuest, today.getTime()));
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:pageviews:month:guest', pageViewsGuest, month.getTime()));
pageViewsGuest = 0;
}
if (pageViewsBot > 0) {
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:pageviews:bot', pageViewsBot, today.getTime()));
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:pageviews:month:bot', pageViewsBot, month.getTime()));
pageViewsBot = 0;
}
if (uniquevisitors > 0) {
dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:uniquevisitors', uniquevisitors, today.getTime()));
uniquevisitors = 0;