diff --git a/src/device/input/parse/v01/server.go b/src/device/input/parse/v01/server.go index 922eada..459682a 100644 --- a/src/device/input/parse/v01/server.go +++ b/src/device/input/parse/v01/server.go @@ -13,6 +13,7 @@ import ( "strings" "sync" "syscall" + "time" "gopkg.in/yaml.v2" ) @@ -148,10 +149,21 @@ func (v01 *V01) serveGlobalQueryRefresh(r *http.Request) { func (v01 *V01) serveGM(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case "/gm/rpc/publicStatus": + users := map[string]interface{}{} + for k, v := range v01.cfg.Users { + v2 := map[string]interface{}{ + "Last Activity": time.Since(time.Unix(0, v.LastTSMS/int64(time.Millisecond))), + "Lag": time.Duration(v.LastLag) / time.Millisecond, + } + if v.Player > 0 { + v2["Player"] = v.Player + } + users[k] = v2 + } yaml.NewEncoder(w).Encode(map[string]interface{}{ "Players": len(v01.cfg.Players), + "Users": users, }) - panic("TODO") case "/gm/rpc/markMessageRead": v01.cfg.Quiet = true for k, v := range v01.cfg.Users {