Files
2025-03-19 10:44:22 +09:00

67 lines
1.7 KiB
JavaScript

async function register({ registerHook }) {
registerHook({
target: "filter:api.server.stats.get.result",
handler: (data) => {
if (!data) return {};
let {
totalUsers,
totalDailyActiveUsers,
totalWeeklyActiveUsers,
totalMonthlyActiveUsers,
totalModerators,
totalAdmins,
} = data;
// Remove one from total users if there are more than one
if (totalUsers > 1) {
totalUsers = totalUsers - 1;
}
// Remove one from the moderator count if there are more than one
if (totalModerators > 1) {
totalModerators = totalModerators - 1;
}
// Remove one from the admin count if there are more than one
if (totalAdmins > 1) {
totalAdmins = totalAdmins - 1;
}
// Adjust daily active user count if there are more listed than there
// are total users.
if (totalDailyActiveUsers > totalUsers) {
totalDailyActiveUsers = totalUsers;
}
// Adjust weekly active user count if there are more listed than there
// are total users.
if (totalWeeklyActiveUsers > totalUsers) {
totalWeeklyActiveUsers = totalUsers;
}
// Adjust monthly active user count if there are more listed than there
// are total users.
if (totalMonthlyActiveUsers > totalUsers) {
totalMonthlyActiveUsers = totalUsers;
}
return {
...data,
totalAdmins,
totalModerators,
totalUsers,
totalDailyActiveUsers,
totalWeeklyActiveUsers,
totalMonthlyActiveUsers,
};
},
});
}
async function unregister() {
return;
}
export { register, unregister };