mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 06:00:56 +02:00
💽 feat: Add Script for User Stats (#2224)
This commit is contained in:
parent
b5d25f5e4f
commit
84656b9812
2 changed files with 55 additions and 0 deletions
54
config/user-stats.js
Normal file
54
config/user-stats.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
const path = require('path');
|
||||
require('module-alias')({ base: path.resolve(__dirname, '..', 'api') });
|
||||
const { silentExit } = require('./helpers');
|
||||
const Conversation = require('~/models/schema/convoSchema');
|
||||
const Message = require('~/models/schema/messageSchema');
|
||||
const User = require('~/models/User');
|
||||
const connect = require('./connect');
|
||||
|
||||
(async () => {
|
||||
await connect();
|
||||
|
||||
/**
|
||||
* Show the welcome / help menu
|
||||
*/
|
||||
console.purple('-----------------------------');
|
||||
console.purple('Show the stats of all users');
|
||||
console.purple('-----------------------------');
|
||||
|
||||
let users = await User.find({});
|
||||
let userData = [];
|
||||
for (const user of users) {
|
||||
let conversationsCount = (await Conversation.count({ user: user._id })) ?? 0;
|
||||
let messagesCount = (await Message.count({ user: user._id })) ?? 0;
|
||||
|
||||
userData.push({
|
||||
User: user.name,
|
||||
Conversations: conversationsCount,
|
||||
Messages: messagesCount,
|
||||
});
|
||||
}
|
||||
|
||||
userData.sort((a, b) => {
|
||||
if (a.Conversations !== b.Conversations) {
|
||||
return b.Conversations - a.Conversations;
|
||||
}
|
||||
|
||||
return b.Messages - a.Messages;
|
||||
});
|
||||
|
||||
console.table(userData);
|
||||
|
||||
silentExit(0);
|
||||
})();
|
||||
|
||||
process.on('uncaughtException', (err) => {
|
||||
if (!err.message.includes('fetch failed')) {
|
||||
console.error('There was an uncaught error:');
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
if (!err.message.includes('fetch failed')) {
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
|
@ -11,6 +11,7 @@
|
|||
"update": "node config/update.js",
|
||||
"add-balance": "node config/add-balance.js",
|
||||
"list-balances": "node config/list-balances.js",
|
||||
"user-stats": "node config/user-stats.js",
|
||||
"rebuild:package-lock": "node config/packages",
|
||||
"reinstall": "node config/update.js -l -g",
|
||||
"b:reinstall": "bun config/update.js -b -l -g",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue