mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 12:05:57 +01:00
feat: track incoming requests by id, analytics increment for some metrics, ignore repeated requests by id
closes #12574
This commit is contained in:
@@ -13,6 +13,7 @@ const ttl = require('../cache/ttl');
|
||||
const lru = require('../cache/lru');
|
||||
const batch = require('../batch');
|
||||
const pubsub = require('../pubsub');
|
||||
const analytics = require('../analytics');
|
||||
|
||||
const requestCache = ttl({ ttl: 1000 * 60 * 5 }); // 5 minutes
|
||||
const ActivityPub = module.exports;
|
||||
@@ -322,3 +323,14 @@ ActivityPub.send = async (type, id, targets, payload) => {
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
ActivityPub.record = async ({ id, type, actor }) => {
|
||||
const now = Date.now();
|
||||
const { hostname } = new URL(actor);
|
||||
|
||||
await Promise.all([
|
||||
db.sortedSetAdd(`activities:datetime`, now, id),
|
||||
db.sortedSetAdd('domains:lastSeen', now, hostname),
|
||||
analytics.increment(['activities', `activities:byType:${type}`, `activities:byHost:${hostname}`]),
|
||||
]);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user