condense status

master
bel 2023-04-02 11:07:21 -06:00
parent 0903c01b9a
commit 5c3341e260
1 changed files with 19 additions and 8 deletions

View File

@ -199,19 +199,30 @@ func (v01 *V01) serveGM(w http.ResponseWriter, r *http.Request) {
}
func (v01 *V01) serveGMStatus(w io.Writer) {
users := map[string]struct {
type user struct {
Lag time.Duration `yaml:"lag,omitempty"`
Player int `yaml:"player,omitempty"`
IdleFor time.Duration `yaml:"idle_for,omitempty"`
}{}
for k, v := range v01.cfg.Users {
v2 := users[k]
v2.Lag = time.Duration(v.Meta.LastLag) * time.Millisecond
v2.Player = v.State.Player
if v.Meta.LastTSMS > 0 {
v2.IdleFor = time.Since(time.Unix(0, v.Meta.LastTSMS*int64(time.Millisecond)))
}
users[k] = v2
users := map[string]string{}
for k, v := range v01.cfg.Users {
player := ""
if v.State.Player > 0 {
player = fmt.Sprintf("Player %v", v.State.Player)
}
lag := ""
if v.Meta.LastLag > 0 && v.Meta.LastLag < 100000 {
lag = (time.Duration(v.Meta.LastLag) * time.Millisecond).String()
}
last := ""
if v.Meta.LastTSMS > 0 {
last = fmt.Sprintf("no activity for %s", time.Since(time.Unix(0, v.Meta.LastTSMS*int64(time.Millisecond))))
}
users[k] = fmt.Sprintf("%s %s %s", player, lag, last)
}
yaml.NewEncoder(w).Encode(map[string]interface{}{
"Players": len(v01.cfg.Players),