update to new go-steam version
This commit is contained in:
@@ -7,19 +7,21 @@ import (
|
||||
"encoding/gob"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/aclements/go-moremath/stats"
|
||||
"github.com/golang/geo/r2"
|
||||
"github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs"
|
||||
"github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/common"
|
||||
"github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs/events"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/aclements/go-moremath/stats"
|
||||
"github.com/golang/geo/r2"
|
||||
"github.com/markus-wa/demoinfocs-golang/v5/pkg/demoinfocs"
|
||||
"github.com/markus-wa/demoinfocs-golang/v5/pkg/demoinfocs/common"
|
||||
"github.com/markus-wa/demoinfocs-golang/v5/pkg/demoinfocs/events"
|
||||
"github.com/markus-wa/demoinfocs-golang/v5/pkg/demoinfocs/msg"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"somegit.dev/csgowtf/csgowtfd/ent"
|
||||
"somegit.dev/csgowtf/csgowtfd/ent/matchplayer"
|
||||
"somegit.dev/csgowtf/csgowtfd/utils"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Demo struct {
|
||||
@@ -112,7 +114,7 @@ func (dp *DemoParser) Setup(db *ent.Client, worker, sprayTimeout int) error {
|
||||
dp.db = db
|
||||
dp.sprayTimeout = sprayTimeout
|
||||
dp.Done = make(chan *Demo, worker)
|
||||
for i := 0; i < worker; i++ {
|
||||
for range worker {
|
||||
go dp.parseWorker()
|
||||
}
|
||||
return nil
|
||||
@@ -123,14 +125,14 @@ func (dp *DemoParser) ParseDemo(demo *Demo) error {
|
||||
case dp.demoQueue <- demo:
|
||||
return nil
|
||||
default:
|
||||
return fmt.Errorf("queue full")
|
||||
return errors.New("queue full")
|
||||
}
|
||||
}
|
||||
|
||||
func (d *Demo) download() (io.Reader, error) {
|
||||
log.Debugf("[DP] Downloading replay for %d", d.MatchID)
|
||||
|
||||
r, err := http.Get(d.URL) //nolint:bodyclose,noctx
|
||||
r, err := http.Get(d.URL) //nolint:bodyclose
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -152,7 +154,7 @@ func (dp *DemoParser) MatchPlayerBySteamID(mStats []*ent.MatchPlayer, steamID ui
|
||||
}
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("player not found")
|
||||
return nil, errors.New("player not found")
|
||||
}
|
||||
|
||||
func setMatchPlayerColor(matchPlayer *ent.MatchPlayer, demoPlayer *common.Player) {
|
||||
@@ -255,9 +257,6 @@ workloop:
|
||||
pingMap := make(map[uint64][]float64)
|
||||
|
||||
cfg := demoinfocs.DefaultParserConfig
|
||||
if len(demo.DecryptionKey) == 16 { //nolint:gomnd
|
||||
cfg.NetMessageDecryptionKey = demo.DecryptionKey
|
||||
}
|
||||
demoParser := demoinfocs.NewParserWithConfig(fDemo, cfg)
|
||||
|
||||
// onChatMessage
|
||||
@@ -327,9 +326,9 @@ workloop:
|
||||
return
|
||||
}
|
||||
if e.Attacker.Team == e.Player.Team {
|
||||
tAttacker.DmgTeam += uint(e.HealthDamageTaken)
|
||||
tAttacker.DmgTeam += uint(e.HealthDamageTaken) //nolint:gosec
|
||||
} else {
|
||||
tAttacker.DmgEnemy += uint(e.HealthDamageTaken)
|
||||
tAttacker.DmgEnemy += uint(e.HealthDamageTaken) //nolint:gosec
|
||||
}
|
||||
|
||||
if _, ok := eqMap[e.Attacker.SteamID64]; !ok {
|
||||
@@ -344,7 +343,7 @@ workloop:
|
||||
found := false
|
||||
for _, di := range eqMap[e.Attacker.SteamID64] {
|
||||
if di.Eq == int(e.Weapon.Type) && di.HitGroup == int(e.HitGroup) {
|
||||
di.Dmg += uint(e.HealthDamageTaken)
|
||||
di.Dmg += uint(e.HealthDamageTaken) //nolint:gosec
|
||||
found = true
|
||||
}
|
||||
}
|
||||
@@ -355,12 +354,12 @@ workloop:
|
||||
HitGroup int
|
||||
Dmg uint
|
||||
To uint64
|
||||
}{Eq: int(e.Weapon.Type), HitGroup: int(e.HitGroup), Dmg: uint(e.HealthDamageTaken), To: e.Player.SteamID64})
|
||||
}{Eq: int(e.Weapon.Type), HitGroup: int(e.HitGroup), Dmg: uint(e.HealthDamageTaken), To: e.Player.SteamID64}) //nolint:gosec
|
||||
}
|
||||
})
|
||||
|
||||
// onRoundEnd
|
||||
demoParser.RegisterEventHandler(func(e events.RoundEnd) {
|
||||
demoParser.RegisterEventHandler(func(_ events.RoundEnd) {
|
||||
gs := demoParser.GameState()
|
||||
if !gs.IsMatchStarted() {
|
||||
return
|
||||
@@ -423,7 +422,7 @@ workloop:
|
||||
})
|
||||
|
||||
// onMatchStart
|
||||
demoParser.RegisterEventHandler(func(e events.MatchStart) {
|
||||
demoParser.RegisterEventHandler(func(_ events.MatchStart) {
|
||||
gs := demoParser.GameState()
|
||||
|
||||
for _, demoPlayer := range gs.Participants().Playing() {
|
||||
@@ -460,8 +459,13 @@ workloop:
|
||||
continue
|
||||
}
|
||||
|
||||
var mapName string
|
||||
demoParser.RegisterNetMessageHandler(func(m *msg.CDemoFileHeader) {
|
||||
mapName = m.GetMapName()
|
||||
})
|
||||
|
||||
err = tMatch.Update().
|
||||
SetMap(demoParser.Header().MapName).
|
||||
SetMap(mapName).
|
||||
SetDemoParsed(true).
|
||||
SetTickRate(demoParser.TickRate()).
|
||||
Exec(context.Background())
|
||||
@@ -526,10 +530,10 @@ workloop:
|
||||
for _, eco := range ecoMap[tMatchPlayer.PlayerStats] {
|
||||
err := tx.RoundStats.Create().
|
||||
SetMatchPlayer(nMatchPLayer).
|
||||
SetRound(uint(eco.Round)).
|
||||
SetBank(uint(eco.Bank)).
|
||||
SetEquipment(uint(eco.EqV)).
|
||||
SetSpent(uint(eco.Spent)).
|
||||
SetRound(uint(eco.Round)). //nolint:gosec
|
||||
SetBank(uint(eco.Bank)). //nolint:gosec
|
||||
SetEquipment(uint(eco.EqV)). //nolint:gosec
|
||||
SetSpent(uint(eco.Spent)). //nolint:gosec
|
||||
Exec(context.Background())
|
||||
if err != nil {
|
||||
err = utils.Rollback(tx, err)
|
||||
|
||||
Reference in New Issue
Block a user