diff options
Diffstat (limited to 'stats')
| -rw-r--r-- | stats/db.go | 13 | ||||
| -rw-r--r-- | stats/enrich.go | 5 |
2 files changed, 16 insertions, 2 deletions
diff --git a/stats/db.go b/stats/db.go index 327373f..397b5e9 100644 --- a/stats/db.go +++ b/stats/db.go @@ -14,6 +14,7 @@ type RunStat struct { FloorsClimbed int Abandoned bool InProgress bool + Character string } type RoomStat struct { @@ -21,7 +22,16 @@ type RoomStat struct { Floor int } -func NewRunStat(run model.Run) RunStat { +func NewRunStat(run model.Run, steamid int) RunStat { + var player *model.Player + for _, p := range run.Players { + if p.ID == steamid { + player = &p + } + } + if player == nil { + player = &run.Players[0] + } st := RunStat{ Version: run.BuildID, StartTime: time.Unix(int64(run.StartTime), 0), @@ -31,6 +41,7 @@ func NewRunStat(run model.Run) RunStat { Abandoned: run.WasAbandoned, FloorsClimbed: runLen(run), InProgress: run.KilledByEncounter != "" || run.KilledByEvent != "" || run.Win != true, + Character: player.Character, } return st } diff --git a/stats/enrich.go b/stats/enrich.go index 40e91ec..192729f 100644 --- a/stats/enrich.go +++ b/stats/enrich.go @@ -1,6 +1,7 @@ package stats import ( + "github.com/spf13/pflag" "sts2stats/model" "sts2stats/spool" "sts2stats/storage" @@ -36,11 +37,13 @@ var Enrichers = map[string]Enricher{ "card choice": EnrichWrap(EnrichCardChoice), } +var SteamId = pflag.IntP("steamid", "s", 0, "steamid to match players to") + func Enrich(run model.Run) error { startTime := time.Now() id := run.RunId[:4] wg := sync.WaitGroup{} - st := NewRunStat(run) + st := NewRunStat(run, *SteamId) for k, e := range Enrichers { wg.Go(func() { spool.Debug("[%v] Starting %v enrichment\n", id, k) |
