removed rateLimit from http router requests

improved logging
This commit is contained in:
2021-10-20 00:11:42 +02:00
parent 6e951183de
commit df33974b49
12 changed files with 49 additions and 2752 deletions

View File

@@ -109,7 +109,7 @@ func (p *DemoParser) parseWorker() {
}
p.lock.RLock()
tMatch, err := p.db.Match.Query().Where(match.ID(demo.MatchId)).Only(context.Background())
tMatch, err := p.db.Match.Get(context.Background(), demo.MatchId)
p.lock.RUnlock()
if err != nil {
log.Errorf("[DP] Unable to get match %d: %v", demo.MatchId, err)
@@ -129,7 +129,7 @@ func (p *DemoParser) parseWorker() {
if tMatch.Date.Before(time.Now().UTC().AddDate(0, 0, -30)) {
log.Infof("[DP] demo expired for match %d", tMatch.ID)
} else {
log.Infof("[DP] Demo 404 not found for %d. Trying again later.", demo.MatchId)
log.Infof("[DP] demo 404 not found for match %d. Trying again later.", demo.MatchId)
}
continue
default:
@@ -202,13 +202,14 @@ func (p *DemoParser) parseWorker() {
}
})
// onFreezeTimeEnd
// onRoundEnd
demoParser.RegisterEventHandler(func(e events.RoundEnd) {
gs := demoParser.GameState()
if !gs.IsMatchStarted() {
return
}
// track eco
for _, p := range gs.Participants().Playing() {
ecoMap[p.SteamID64] = append(ecoMap[p.SteamID64], &struct {
Round int
@@ -217,28 +218,24 @@ func (p *DemoParser) parseWorker() {
Spent int
}{Round: gs.TotalRoundsPlayed(), EqV: p.EquipmentValueCurrent(), Bank: p.Money(), Spent: p.MoneySpentThisRound()})
}
})
// onRoundEnd
demoParser.RegisterEventHandler(func(e events.RoundEnd) {
if demoParser.GameState().IsMatchStarted() {
for _, IGP := range demoParser.GameState().Participants().Playing() {
if IGP != nil && IGP.SteamID64 != 0 {
killDiff := IGP.Kills() - killMap[IGP.SteamID64]
tPlayer := p.getMatchPlayerBySteamID(tStats, IGP.SteamID64)
// track multikills
for _, igp := range gs.Participants().Playing() {
if igp != nil && igp.SteamID64 != 0 {
killDiff := igp.Kills() - killMap[igp.SteamID64]
tPlayer := p.getMatchPlayerBySteamID(tStats, igp.SteamID64)
switch killDiff {
case 2:
tPlayer.Mk2++
case 3:
tPlayer.Mk3++
case 4:
tPlayer.Mk4++
case 5:
tPlayer.Mk5++
}
killMap[IGP.SteamID64] = IGP.Kills()
switch killDiff {
case 2:
tPlayer.Mk2++
case 3:
tPlayer.Mk3++
case 4:
tPlayer.Mk4++
case 5:
tPlayer.Mk5++
}
killMap[igp.SteamID64] = igp.Kills()
}
}
})
@@ -302,11 +299,6 @@ func (p *DemoParser) parseWorker() {
}
})
// onMatchEnd?
demoParser.RegisterEventHandler(func(e events.AnnouncementWinPanelMatch) {
})
// onRankUpdate
demoParser.RegisterEventHandler(func(e events.RankUpdate) {
if e.Player != nil && e.SteamID64() != 0 {
@@ -363,7 +355,7 @@ func (p *DemoParser) parseWorker() {
Save(context.Background())
p.lock.Unlock()
if err != nil {
log.Errorf("[DP] Unable to update player %d in database: %v", tMatchPlayer.Edges.Players.ID, err)
log.Errorf("[DP] Unable to update stats %d in database: %v", tMatchPlayer.PlayerStats, err)
continue
}
@@ -381,12 +373,12 @@ func (p *DemoParser) parseWorker() {
err := p.db.RoundStats.Create().SetStat(nMatchPLayer).SetRound(uint(eco.Round)).SetBank(uint(eco.Bank)).SetEquipment(uint(eco.EqV)).SetSpent(uint(eco.Spent)).Exec(context.Background())
p.lock.Unlock()
if err != nil {
log.Errorf("[DP] Unable to create WeaponStat: %v", err)
log.Errorf("[DP] Unable to create RoundStat: %v", err)
}
}
}
log.Infof("[DP] Parsed %d (took %s/%s)", demo.MatchId, downloadTime, time.Now().Sub(startTime))
log.Infof("[DP] parsed match %d (took %s/%s)", demo.MatchId, downloadTime, time.Now().Sub(startTime))
err = demoParser.Close()
if err != nil {