Lumi/plugins/auto-vc/stats.js
2026-05-30 20:37:42 +02:00

54 lines
1.1 KiB
JavaScript

const { db } = require("../../src/services/db");
function getProfileStats({ userId }) {
if (!userId) {
return { stats: [] };
}
const row = db
.prepare("SELECT created_count FROM auto_vc_stats WHERE user_id = ?")
.get(userId);
if (!row) {
return { stats: [] };
}
return {
stats: [
{
label: "Rooms created",
value: row.created_count
}
]
};
}
function getLeaderboards({ limit = 10 }) {
const rows = db
.prepare(
"SELECT auto_vc_stats.user_id AS user_id, " +
"auto_vc_stats.created_count AS total, " +
"user_profiles.internal_username AS username " +
"FROM auto_vc_stats " +
"LEFT JOIN user_profiles ON user_profiles.id = auto_vc_stats.user_id " +
"ORDER BY auto_vc_stats.created_count DESC LIMIT ?"
)
.all(limit);
return {
boards: [
{
id: "rooms-created",
title: "Most rooms created",
valueLabel: "Rooms",
rows: rows.map((row) => ({
username: row.username || row.user_id,
value: row.total
}))
}
]
};
}
module.exports = {
getProfileStats,
getLeaderboards
};