added chat messages

This commit is contained in:
2022-01-29 19:32:13 +01:00
parent 2e6c94de81
commit b036275665
48 changed files with 4167 additions and 353 deletions

View File

@@ -21,9 +21,10 @@ import (
)
type Demo struct {
ShareCode string
MatchId uint64
Url string
ShareCode string
MatchId uint64
Url string
DecryptionKey []byte
}
type DemoParser struct {
@@ -244,8 +245,25 @@ func (p *DemoParser) parseWorker() {
}, 0)
encounters := make([]*Encounter, 0)
spays := make([]*Sprays, 0)
cfg := demoinfocs.DefaultParserConfig
cfg.NetMessageDecryptionKey = demo.DecryptionKey
demoParser := demoinfocs.NewParser(fDemo)
// onChatMessage
demoParser.RegisterEventHandler(func(e events.ChatMessage) {
tAttacker, err := p.MatchPlayerBySteamID(tStats, e.Sender.SteamID64)
if err != nil {
log.Warningf("[DP] Unable to get player for id %d: %v", e.Sender.SteamID64, err)
return
}
tAttacker.Edges.Messages = append(tAttacker.Edges.Messages, &ent.Messages{
Message: e.Text,
AllChat: e.IsChatAll,
})
})
// onPlayerSpotted
demoParser.RegisterEventHandler(func(e events.PlayerSpottersChanged) {
gs := demoParser.GameState()
@@ -492,6 +510,15 @@ func (p *DemoParser) parseWorker() {
}
}
}
bulk := make([]*ent.MessagesCreate, len(tMatchPlayer.Edges.Messages))
for _, msg := range tMatchPlayer.Edges.Messages {
bulk = append(bulk, p.db.Messages.Create().SetMessage(msg.Message).SetAllChat(msg.AllChat).SetMatchPlayer(tMatchPlayer))
}
err = p.db.Messages.CreateBulk(bulk...).Exec(context.Background())
if err != nil {
log.Warningf("[DP] Failure adding messages to database: %v", err)
}
}
log.Infof("[DP] parsed match %d (took %s/%s)", demo.MatchId, downloadTime, time.Since(startTime))