diff --git a/src/analytics.js b/src/analytics.js index a0fadeab68..773f7088af 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -102,8 +102,17 @@ Analytics.pageView = async function (payload) { local.pageViewsGuest += 1; } - if (payload.ip) { - const score = await db.sortedSetScore('ip:recent', payload.ip); + await incrementUniqueVisitors(payload.ip); +}; + +Analytics.apPageView = async function ({ ip }) { + local.apPageViews += 1; + await incrementUniqueVisitors(ip); +}; + +async function incrementUniqueVisitors(ip) { + if (ip) { + const score = await db.sortedSetScore('ip:recent', ip); let record = !score; if (score) { const today = new Date(); @@ -113,14 +122,10 @@ Analytics.pageView = async function (payload) { if (record) { local.uniquevisitors += 1; - await db.sortedSetAdd('ip:recent', Date.now(), payload.ip); + await db.sortedSetAdd('ip:recent', Date.now(), ip); } } -}; - -Analytics.apPageView = function () { - local.apPageViews += 1; -}; +} Analytics.writeData = async function () { const today = new Date(); diff --git a/src/middleware/activitypub.js b/src/middleware/activitypub.js index 4390335c0b..f1e78a1cd6 100644 --- a/src/middleware/activitypub.js +++ b/src/middleware/activitypub.js @@ -10,7 +10,7 @@ const middleware = module.exports; middleware.enabled = async (req, res, next) => next(!meta.config.activitypubEnabled ? 'route' : undefined); middleware.pageview = async (req, res, next) => { - analytics.apPageView(); + await analytics.apPageView({ ip: req.ip }); next(); };