Messer-Server für die Seitenwahl: 5v5/2v2, im Admin startbar, setzen sich nach der Runde selbst zurück

This commit is contained in:
mregosar committed 2026-10-29 20:33:15 +01:00
1 parent 0bfac952b6
commit c6c39b914f
15 files changed
+717 -14

No files matched your search

+5 -2
View File
@@ -14,7 +14,7 @@ function accessTokens(req) {
return [bearer(req), req.get('x-player-token')?.trim() || null];
}
export function createApiRouter({ service, manager, config, pools, adapter, settings }) {
export function createApiRouter({ service, manager, config, pools, adapter, settings, knife }) {
const router = express.Router();
// Live-Logs vom CS2-Server (logaddress_add_http). Vor dem JSON-Parser, weil CS2 Klartext sendet.
@@ -32,7 +32,7 @@ export function createApiRouter({ service, manager, config, pools, adapter, sett
});
router.use(express.json({ limit: '32kb' }));
router.use('/admin', createAdminRouter({ service, manager, config, settings }));
router.use('/admin', createAdminRouter({ service, manager, config, settings, knife }));
const limiters = {
create: createRateLimiter({ windowMs: 60_000, max: 10 }),
@@ -71,6 +71,9 @@ export function createApiRouter({ service, manager, config, pools, adapter, sett
router.get('/matches', wrap(() => ({ matches: service.listMatches() })));
// Messer-Server für die Seitenwahl: offen, ohne Passwort, deshalb für alle sichtbar
router.get('/knife-servers', wrap(() => ({ servers: knife.list().filter((k) => k.status === 'running') })));
// Stream-Übersicht aller Matches; mit STREAM_KEY nur mit passendem ?key=
router.get('/stream/overview', wrap((req) => {
if (config.streamKey && !safeEqual(String(req.query.key ?? ''), config.streamKey)) {