added chat messages
This commit is contained in:
@@ -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))
|
||||
|
Reference in New Issue
Block a user