impl public status endpoint

master
Bel LaPointe 2023-03-27 06:24:41 -06:00
parent a6a9b177e9
commit 8314bdc457
1 changed files with 13 additions and 1 deletions

View File

@ -13,6 +13,7 @@ import (
"strings" "strings"
"sync" "sync"
"syscall" "syscall"
"time"
"gopkg.in/yaml.v2" "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) { func (v01 *V01) serveGM(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path { switch r.URL.Path {
case "/gm/rpc/publicStatus": 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{}{ yaml.NewEncoder(w).Encode(map[string]interface{}{
"Players": len(v01.cfg.Players), "Players": len(v01.cfg.Players),
"Users": users,
}) })
panic("TODO")
case "/gm/rpc/markMessageRead": case "/gm/rpc/markMessageRead":
v01.cfg.Quiet = true v01.cfg.Quiet = true
for k, v := range v01.cfg.Users { for k, v := range v01.cfg.Users {