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.
This commit is contained in:
mregosar committed 2026-10-25 18:54:23 +01:00
1 parent 34e5fc7d0e
commit 306b3aa7e5
11 files changed
+515 -11

No files matched your search

+18
View File
@@ -105,5 +105,23 @@ export function openDatabase(file) {
db.pragma('journal_mode = WAL');
db.pragma('foreign_keys = ON');
db.exec(SCHEMA);
migrate(db);
return db;
}
/** Ergänzt Spalten, die in älteren Datenbanken noch fehlen. */
function migrate(db) {
const columns = (table) => new Set(db.prepare(`PRAGMA table_info(${table})`).all().map((c) => c.name));
const seriesColumns = columns('series_maps');
const add = [
['score_a', 'INTEGER NOT NULL DEFAULT 0'],
['score_b', 'INTEGER NOT NULL DEFAULT 0'],
['winner', 'TEXT'],
// Live-Zustand aus den Serverlogs (JSON, siehe liveScore.js)
['live', 'TEXT'],
['live_updated_at', 'INTEGER'],
];
for (const [name, type] of add) {
if (!seriesColumns.has(name)) db.exec(`ALTER TABLE series_maps ADD COLUMN ${name} ${type}`);
}
}