[deploy] Add server stats module with dashboard controls
All checks were successful
Deploy Discord Bot / deploy (push) Successful in 37s
All checks were successful
Deploy Discord Bot / deploy (push) Successful in 37s
This commit is contained in:
@@ -85,7 +85,8 @@ router.get('/guild/info', requireAuth, async (req, res) => {
|
||||
dynamicVoiceEnabled: modules.dynamicVoiceEnabled !== false,
|
||||
statuspageEnabled: (modules as any).statuspageEnabled !== false,
|
||||
birthdayEnabled: (modules as any).birthdayEnabled !== false,
|
||||
reactionRolesEnabled: (modules as any).reactionRolesEnabled !== false
|
||||
reactionRolesEnabled: (modules as any).reactionRolesEnabled !== false,
|
||||
serverStatsEnabled: (modules as any).serverStatsEnabled === true || (modules as any).serverStatsConfig?.enabled === true
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -754,6 +755,27 @@ router.delete('/statuspage/service/:id', requireAuth, async (req, res) => {
|
||||
res.json({ ok: true });
|
||||
});
|
||||
|
||||
router.get('/server-stats', requireAuth, async (req, res) => {
|
||||
const guildId = typeof req.query.guildId === 'string' ? req.query.guildId : undefined;
|
||||
if (!guildId) return res.status(400).json({ error: 'guildId required' });
|
||||
const cfg = await context.stats.getConfig(guildId);
|
||||
res.json({ config: cfg });
|
||||
});
|
||||
|
||||
router.post('/server-stats', requireAuth, async (req, res) => {
|
||||
const guildId = typeof req.body.guildId === 'string' ? req.body.guildId : undefined;
|
||||
if (!guildId) return res.status(400).json({ error: 'guildId required' });
|
||||
const cfg = await context.stats.saveConfig(guildId, req.body.config || {});
|
||||
res.json({ config: cfg });
|
||||
});
|
||||
|
||||
router.post('/server-stats/refresh', requireAuth, async (req, res) => {
|
||||
const guildId = typeof req.body.guildId === 'string' ? req.body.guildId : undefined;
|
||||
if (!guildId) return res.status(400).json({ error: 'guildId required' });
|
||||
await context.stats.refreshGuild(guildId);
|
||||
res.json({ ok: true });
|
||||
});
|
||||
|
||||
router.post('/settings', requireAuth, async (req, res) => {
|
||||
const current = req.body.guildId ? settingsStore.get(req.body.guildId) ?? {} : {};
|
||||
const {
|
||||
@@ -779,7 +801,9 @@ router.post('/settings', requireAuth, async (req, res) => {
|
||||
reactionRolesEnabled,
|
||||
reactionRolesConfig,
|
||||
registerEnabled,
|
||||
registerConfig
|
||||
registerConfig,
|
||||
serverStatsEnabled,
|
||||
serverStatsConfig
|
||||
} = req.body;
|
||||
if (!guildId) return res.status(400).json({ error: 'guildId required' });
|
||||
const normalizeArray = (val: any) =>
|
||||
@@ -913,7 +937,9 @@ router.post('/settings', requireAuth, async (req, res) => {
|
||||
reactionRolesEnabled: parsedReactionRoles.enabled,
|
||||
reactionRolesConfig: parsedReactionRoles,
|
||||
registerEnabled: parsedRegister.enabled,
|
||||
registerConfig: parsedRegister
|
||||
registerConfig: parsedRegister,
|
||||
serverStatsEnabled: typeof serverStatsEnabled === 'string' ? serverStatsEnabled === 'true' : serverStatsEnabled,
|
||||
serverStatsConfig: serverStatsConfig
|
||||
});
|
||||
// Live update logging target
|
||||
context.logging = new LoggingService(updated.logChannelId);
|
||||
|
||||
Reference in New Issue
Block a user