Live-Ergebnisse aus CS2-Serverlogs (Backend)
Server bekommt beim Konfigurieren logaddress_add_http mit geheimem Match-Schlüssel. Ein Parser wertet Rundenende, Seitenzuordnung, Matchstart und Spielende aus; Stand, Rundenverlauf und Sieger werden pro Map gespeichert und live verteilt. Der Demo-Adapter simuliert nach der Aufwärmphase einen Matchverlauf über dieselben Logzeilen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5ea5638115
commit
5fade769e7
11 files changed
+515
-11
No files matched your search
@@ -65,3 +65,18 @@ test('Konsolentexte können keine Befehle einschleusen', () => {
|
||||
assert.ok(afterMapChange.includes('mp_teamname_2 "Alphaquit"'));
|
||||
assert.ok(afterMapChange.includes('mp_maxrounds 16'));
|
||||
});
|
||||
|
||||
test('Log-Weiterleitung wird vor dem Mapwechsel gesetzt, unsichere URLs nicht', () => {
|
||||
const base = {
|
||||
match: { team_a_name: 'A', team_b_name: 'B' },
|
||||
pool: { mode: 'competitive', gameType: 0, gameMode: 1 },
|
||||
seriesMap: { map: 'de_nuke', ctTeam: 'A' },
|
||||
secrets: { serverPassword: 'abc', tvPassword: 'def' },
|
||||
settings: { tvEnabled: true, tvDelaySeconds: 90, maxRoundsWingman: 16, maxRoundsCompetitive: 24, overtime: true, extraCommands: [] },
|
||||
};
|
||||
const ok = buildMapCommands({ ...base, logUrl: 'http://192.168.178.31:3000/api/logs/abc_D-1/KEY123' }).beforeMapChange;
|
||||
assert.ok(ok.includes('logaddress_add_http "http://192.168.178.31:3000/api/logs/abc_D-1/KEY123"'));
|
||||
assert.ok(ok.indexOf('log on') < ok.indexOf('changelevel de_nuke'));
|
||||
const bad = buildMapCommands({ ...base, logUrl: 'http://x"; quit' }).beforeMapChange;
|
||||
assert.ok(!bad.some((c) => c.startsWith('logaddress')));
|
||||
});
|
||||
Reference in new issue
Block a user