diff --git a/src/analytics.js b/src/analytics.js index 903a520d18..5d71d161a8 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -238,26 +238,23 @@ Analytics.getDailyStatsForSet = async function (set, day, numDays) { set = `analytics:${set}`; } + const daysArr = []; day = new Date(day); // set the date to tomorrow, because getHourlyStatsForSet steps *backwards* 24 hours to sum up the values day.setDate(day.getDate() + 1); day.setHours(0, 0, 0, 0); - async function getHourlyStats(hour) { + while (numDays > 0) { + /* eslint-disable no-await-in-loop */ const dayData = await Analytics.getHourlyStatsForSet( set, - hour, + day.getTime() - (1000 * 60 * 60 * 24 * (numDays - 1)), 24 ); - return dayData.reduce((cur, next) => cur + next); - } - const hours = []; - while (numDays > 0) { - hours.push(day.getTime() - (1000 * 60 * 60 * 24 * (numDays - 1))); + daysArr.push(dayData.reduce((cur, next) => cur + next)); numDays -= 1; } - - return await Promise.all(hours.map(getHourlyStats)); + return daysArr; }; Analytics.getUnwrittenPageviews = function () { diff --git a/src/controllers/admin/dashboard.js b/src/controllers/admin/dashboard.js index 193476f1af..ac9f4fc130 100644 --- a/src/controllers/admin/dashboard.js +++ b/src/controllers/admin/dashboard.js @@ -128,13 +128,12 @@ async function getStats() { } let results = await Promise.all([ - getStatsFromAnalytics('uniquevisitors', 'uniqueIPCount'), + getStatsForSet('ip:recent', 'uniqueIPCount'), getStatsFromAnalytics('logins', 'loginCount'), getStatsForSet('users:joindate', 'userCount'), getStatsForSet('posts:pid', 'postCount'), getStatsForSet('topics:tid', 'topicCount'), ]); - results[0].name = '[[admin/dashboard:unique-visitors]]'; results[1].name = '[[admin/dashboard:logins]]';