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

  1. Datei einlesen (Zeile für Zeile)
  2. preg_match() auf relevante Zeilen (derzeit Kill:)
  3. Spieler in DB anlegen oder ID finden
  4. Kill in kills eintragen
  5. Statistiken in players aktualisieren
  6. 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