| const path = require('path'); |
| const mongoose = require('mongoose'); |
| require('module-alias')({ base: path.resolve(__dirname, '..', 'api') }); |
| const { silentExit } = require('./helpers'); |
| const { User, Conversation, Message } = require('@librechat/data-schemas').createModels(mongoose); |
| const connect = require('./connect'); |
|
|
| (async () => { |
| await connect(); |
|
|
| |
| |
| |
| 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.countDocuments({ user: user._id })) ?? 0; |
| let messagesCount = (await Message.countDocuments({ user: user._id })) ?? 0; |
|
|
| userData.push({ |
| User: user.name, |
| Email: user.email, |
| 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); |
| } |
| }); |
|
|