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:
1 parent
34e5fc7d0e
commit
306b3aa7e5
11 files changed
+515
-11
No files matched your search
@@ -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}`);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user