mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-06-04 19:57:20 +02:00
Major changes around events, event log, etc.
* User event log is now functional & attached to various events * Add additional missing system events * Completely re-write last_callers to have new functionality, etc. * Events.addListenerMultipleEvents() * New 'moduleInitialize' export for module init vs Event specific registerEvents * Add docs on last_callers mod
This commit is contained in:
parent
c1ae3d88ba
commit
52585c78f0
16 changed files with 392 additions and 171 deletions
|
@ -252,10 +252,16 @@ class StatLog {
|
|||
|
||||
appendUserLogEntry(user, logName, logValue, keepDays, cb) {
|
||||
sysDb.run(
|
||||
`INSERT INTO user_event_log (timestamp, user_id, log_name, log_value)
|
||||
VALUES (?, ?, ?, ?);`,
|
||||
[ this.now, user.userId, logName, logValue ],
|
||||
() => {
|
||||
`INSERT INTO user_event_log (timestamp, user_id, session_id, log_name, log_value)
|
||||
VALUES (?, ?, ?, ?, ?);`,
|
||||
[ this.now, user.userId, user.sessionId, logName, logValue ],
|
||||
err => {
|
||||
if(err) {
|
||||
if(cb) {
|
||||
cb(err);
|
||||
}
|
||||
return;
|
||||
}
|
||||
//
|
||||
// Handle keepDays
|
||||
//
|
||||
|
@ -280,6 +286,33 @@ class StatLog {
|
|||
}
|
||||
);
|
||||
}
|
||||
|
||||
initUserEvents(cb) {
|
||||
//
|
||||
// We map some user events directly to user stat log entries such that they
|
||||
// are persisted for a time.
|
||||
//
|
||||
const Events = require('./events.js');
|
||||
const systemEvents = Events.getSystemEvents();
|
||||
|
||||
const interestedEvents = [
|
||||
systemEvents.NewUser,
|
||||
systemEvents.UserUpload, systemEvents.UserDownload,
|
||||
systemEvents.UserPostMessage, systemEvents.UserSendMail,
|
||||
systemEvents.UserRunDoor,
|
||||
];
|
||||
|
||||
Events.addListenerMultipleEvents(interestedEvents, (eventName, event) => {
|
||||
this.appendUserLogEntry(
|
||||
event.user,
|
||||
'system_event',
|
||||
eventName.replace(/^codes\.l33t\.enigma\.system\./, ''), // strip package name prefix
|
||||
90
|
||||
);
|
||||
});
|
||||
|
||||
return cb(null);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new StatLog();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue