LogParser - wahke/etstats GitHub Wiki
📄 LogParser – Verarbeitung von ET-Logdateien
Der LogParser ist das Herzstück von ETStats Web: Er liest .log
-Dateien von deinem Wolfenstein: Enemy Territory Server aus und schreibt die Daten in die Datenbank.
🔁 Unterstützte Logdateien
etconsole.log
games.log
- Manuell exportierte Logs (Jaymod, ETPro, NQ, etc.)
✅ Der Parser ist flexibel – du kannst jede Datei hochladen, solange sie Events wie
Kill:
enthält.
📥 Wo wird geparst?
In der Datei:
core/LogParser.php
Die Datei wird z. B. von uploads/upload.php
automatisch genutzt.
🔍 Welche Events werden erkannt?
🎯 Kill-Events
0:23 Kill: 5 2 3: PlayerA killed PlayerB by MOD_MP40
➡️ Das Skript extrahiert:
- Killer-Name
- Opfer-Name
- Waffe (
MOD_MP40
etc.) - Zeit (bei Bedarf ergänzt)
- Speichert in
kills
-Tabelle - Zählt Kills/Deaths in
players
🧠 Logik des Parsers
- Datei einlesen (Zeile für Zeile)
preg_match()
auf relevante Zeilen (derzeitKill:
)- Spieler in DB anlegen oder ID finden
- Kill in
kills
eintragen - Statistiken in
players
aktualisieren - Waffe in
weapons
zählen
🧪 Beispiel-Code (vereinfacht)
if (preg_match('/Kill: .*: (.+) killed (.+) by (.+)/', $line, $matches)) {
$killer = sanitize($matches[1]);
$victim = sanitize($matches[2]);
$weapon = $matches[3];
// Eintrag speichern ...
}
📦 Tabellen, die der Parser aktualisiert:
Tabelle | Inhalt |
---|---|
players |
Spielername, Kills, Deaths, Timestamps |
kills |
Wer hat wen womit getötet |
weapons |
Waffennutzung & Killzähler |
maps (optional) |
Map-Tracking pro Event (zukünftig) |
🔄 Erweiterungen möglich
- Join-/Leave-Events erfassen
- Mapwechsel erkennen (
InitGame:
) - Killstreaks zählen
- Treffer/Schüsse analysieren (wenn im Log enthalten)
📂 Upload & Verarbeitung
Nutze /uploads/upload.php
, um eine .log
hochzuladen.
Nach dem Upload wird sie automatisch verarbeitet – Rückmeldung erfolgt per HTML.
📖 Weiter zu Live-Status