Coder Social home page Coder Social logo

better-srcds-log-parser's Introduction

A better srcds (CS:GO, TF2, etc) Log Parser

A Typescript/Javascript library for reading log files from Valve's Source Dedicated Server (srcds), including Counter Strike: GO, Counter Strike: Source, Team Fortress 2, and so on.

Presently only the special events for CS:GO have been added so TF2 will not actually work, but the rest will be added soon.

More details to come.

Usage

npm install better-srcds-log-parser

Javascript:

var fs = require('fs'),
	SrcdsLogParser = require("better-srcds-log-parser").SrcdsLogParser;

var parser = new SrcdsLogParser();

fs.readFileSync("someFilename.log")
	.toString()
	.split("\n")
	.forEach(function(line) {
		console.log(parser.parseLine(line));
	});

Typescript:

import * as SrcdsLogParser from "better-srcds-log-parser";
import fs = require('fs');

var parser: SrcdsLogParser.SrcdsLogParser = new SrcdsLogParser.SrcdsLogParser();

fs.readFileSync("someFilename.log")
	.toString()
	.split("\n")
	.forEach((line) {
		let parsedLine: SrcdsLogParser.ISrcdsLog = parser.parseLine(line);
		console.log(parsedLine);
	});

Both will output something like the following:

SwitchedType {
  Player:
   Player {
     Name: 'Some Player Name',
     PlayerID: 21,
     SteamID: 'STEAM_1:0:1234567',
     Team: 4 },
  FromTeam: 3,
  ToTeam: 2,
  Type: 'Switched' }
ServerCvarType { Cvar: 'nextlevel', Value: '', Type: 'ServerCvar' }
PlayerTriggeredType {
  Type: 'PlayerTriggered',
  Player: Player { Name: 'World' },
  Value: 'de_cache',
  EventType: 9 }
PlayerTriggeredType {
  Type: 'PlayerTriggered',
  Player:
   Player {
     Name: 'Some Player Name',
     PlayerID: 21,
     SteamID: 'STEAM_1:0:1234567',
     Team: 2 },
  Value: '',
  EventType: 12 }

There are some Enums visible in this output. For example, EventType in the last entry. The enums are exported from the module, and they are:

ConnectionActions
PlayerTriggerType
TeamTriggerType
Team
ServerEvents

Example types

See warmod-types.json and srcds-types.json for, respectively, the log entry types that Warmod will emit, and the log entry types that a vanilla CS:GO server will emit. Both can be enabled on a server at the same time.

License

GPL 3.0. See LICENSE for more details.

better-srcds-log-parser's People

Contributors

sirsquidness avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.