switched to go-retry for steam login; moved match reparsing higher in housekeeping
This commit is contained in:
110
main.go
110
main.go
@@ -113,61 +113,6 @@ func housekeeping() {
|
||||
}
|
||||
}
|
||||
|
||||
// getting new sharecodes
|
||||
if !demoLoader.GCReady {
|
||||
log.Warningf("[HK] GC not ready, skipping sharecode refresh")
|
||||
continue
|
||||
}
|
||||
|
||||
dur, err = time.ParseDuration(conf.Csgowtfd.SharecodeUpdate)
|
||||
if err != nil {
|
||||
log.Warningf("[HK] Unable to parse config option sharecode_update %s: %v", conf.Csgowtfd.SharecodeUpdate, err)
|
||||
dur, _ = time.ParseDuration("30m")
|
||||
}
|
||||
|
||||
tPlayerNeedShareCodeUpdate, err := db.Player.Query().Where(
|
||||
player.And(
|
||||
player.Or(
|
||||
player.SharecodeUpdatedLTE(time.Now().UTC().Add(dur*-1)),
|
||||
player.SharecodeUpdatedIsNil(),
|
||||
),
|
||||
player.Not(player.AuthCodeIsNil()),
|
||||
)).All(context.Background())
|
||||
if err != nil {
|
||||
log.Errorf("[HK] Can't query players: %v", err)
|
||||
continue
|
||||
}
|
||||
|
||||
for _, tPlayer := range tPlayerNeedShareCodeUpdate {
|
||||
shareCodes, err := utils.GetNewShareCodesForPlayer(tPlayer, conf.Steam.APIKey, rL)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case utils.AuthcodeUnauthorizedError:
|
||||
log.Infof("[HK] authCode for player %d is no longer valid", tPlayer.ID)
|
||||
err = tPlayer.Update().ClearAuthCode().ClearSharecodeUpdated().Exec(context.Background())
|
||||
if err != nil {
|
||||
log.Errorf("[HK] Unable to clear authcode for player %d: %v", tPlayer.ID, err)
|
||||
}
|
||||
continue
|
||||
case utils.SharecodeNoMatchError:
|
||||
log.Warningf("[HK] last shareCode for player %d does not match player", tPlayer.ID)
|
||||
continue
|
||||
default:
|
||||
log.Errorf("[HK] Error while requesting sharecodes for %d: %v", tPlayer.ID, err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
for _, code := range shareCodes {
|
||||
err := demoLoader.LoadDemo(&csgo.Demo{
|
||||
ShareCode: code,
|
||||
})
|
||||
if err != nil {
|
||||
log.Warningf("[HK] Failure to queue match: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// try parsing demos not parsed
|
||||
tMatches, err := db.Match.Query().Where(match.And(match.DateGT(time.Now().UTC().AddDate(0, 0, -1*conf.Csgowtfd.DemosExpire)), match.DemoParsed(false))).All(context.Background())
|
||||
if err != nil {
|
||||
@@ -223,6 +168,61 @@ func housekeeping() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// getting new sharecodes
|
||||
if !demoLoader.GCReady {
|
||||
log.Warningf("[HK] GC not ready, skipping sharecode refresh")
|
||||
continue
|
||||
}
|
||||
|
||||
dur, err = time.ParseDuration(conf.Csgowtfd.SharecodeUpdate)
|
||||
if err != nil {
|
||||
log.Warningf("[HK] Unable to parse config option sharecode_update %s: %v", conf.Csgowtfd.SharecodeUpdate, err)
|
||||
dur, _ = time.ParseDuration("30m")
|
||||
}
|
||||
|
||||
tPlayerNeedShareCodeUpdate, err := db.Player.Query().Where(
|
||||
player.And(
|
||||
player.Or(
|
||||
player.SharecodeUpdatedLTE(time.Now().UTC().Add(dur*-1)),
|
||||
player.SharecodeUpdatedIsNil(),
|
||||
),
|
||||
player.Not(player.AuthCodeIsNil()),
|
||||
)).All(context.Background())
|
||||
if err != nil {
|
||||
log.Errorf("[HK] Can't query players: %v", err)
|
||||
continue
|
||||
}
|
||||
|
||||
for _, tPlayer := range tPlayerNeedShareCodeUpdate {
|
||||
shareCodes, err := utils.GetNewShareCodesForPlayer(tPlayer, conf.Steam.APIKey, rL)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case utils.AuthcodeUnauthorizedError:
|
||||
log.Infof("[HK] authCode for player %d is no longer valid", tPlayer.ID)
|
||||
err = tPlayer.Update().ClearAuthCode().ClearSharecodeUpdated().Exec(context.Background())
|
||||
if err != nil {
|
||||
log.Errorf("[HK] Unable to clear authcode for player %d: %v", tPlayer.ID, err)
|
||||
}
|
||||
continue
|
||||
case utils.SharecodeNoMatchError:
|
||||
log.Warningf("[HK] last shareCode for player %d does not match player", tPlayer.ID)
|
||||
continue
|
||||
default:
|
||||
log.Errorf("[HK] Error while requesting sharecodes for %d: %v", tPlayer.ID, err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
for _, code := range shareCodes {
|
||||
err := demoLoader.LoadDemo(&csgo.Demo{
|
||||
ShareCode: code,
|
||||
})
|
||||
if err != nil {
|
||||
log.Warningf("[HK] Failure to queue match: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user