Discord-Webhook für Streamer-Meldungen mit wählbaren Ereignissen
Meldungen zu Veto, Match-Start, Map- und Serienende, Matchende und Serverfehlern gehen an DISCORD_WEBHOOK_URL. Im Admin-Bereich wählt man, welche Ereignisse gemeldet werden, und kann eine Testmeldung senden.
This commit is contained in:
1 parent
eee4ceb315
commit
7bceceb31d
12 files changed
+254
-2
No files matched your search
@@ -76,6 +76,17 @@ export function createAdminRouter({ service, manager, config }) {
|
||||
|
||||
router.get('/session', requireAdmin, (req, res) => res.json({ ok: true }));
|
||||
|
||||
// Discord-Meldungen: welche Ereignisse gemeldet werden
|
||||
router.get('/notifications', requireAdmin, wrap(() => service.notificationSettings()));
|
||||
router.put('/notifications', requireAdmin, wrap((req) => service.setNotificationEvents(req.body?.events)));
|
||||
router.post('/notifications/test', requireAdmin, wrap(async () => {
|
||||
if (!service.notifier.enabled) throw new HttpError(409, 'Kein Discord-Webhook eingerichtet (DISCORD_WEBHOOK_URL)', 'not_configured');
|
||||
if (!(await service.notifier.send('Testmeldung aus CS2 Mapveto'))) {
|
||||
throw new HttpError(502, 'Discord hat die Meldung nicht angenommen (siehe Log)', 'send_failed');
|
||||
}
|
||||
return { ok: true };
|
||||
}));
|
||||
|
||||
// Alle Matches mit allen Details (Codes, Verbindungsdaten, Spieler, Veto, Serie, Ereignisse)
|
||||
router.get('/matches', requireAdmin, wrap(() => {
|
||||
const ids = service.db.prepare('SELECT id FROM matches ORDER BY created_at DESC LIMIT 100').all();
|
||||
|
||||
Reference in new issue
Block a user