diff options
| author | xengineering <me@xengineering.eu> | 2026-03-22 10:21:36 +0100 |
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2026-03-22 10:23:46 +0100 |
| commit | e7f93692e0c605311c9e8568488e8bb416115319 (patch) | |
| tree | be69799b481c9d4c69666ae69bf64943efcc4079 | |
| parent | 637c168aa164b0420c3f63fa818019b171ac92fc (diff) | |
| download | sia-server-e7f93692e0c605311c9e8568488e8bb416115319.tar sia-server-e7f93692e0c605311c9e8568488e8bb416115319.tar.zst sia-server-e7f93692e0c605311c9e8568488e8bb416115319.zip | |
tools: websocket: Quote and prettify RX JSON
This makes the responses from the Shelly device readable.
| -rw-r--r-- | tools/websocket.go | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/tools/websocket.go b/tools/websocket.go index b956ee8..31c39fb 100644 --- a/tools/websocket.go +++ b/tools/websocket.go @@ -35,16 +35,7 @@ func main() { } defer c.Close() - go func() { - for { - _, message, err := c.ReadMessage() - if err != nil { - log.Println("read:", err) - return - } - log.Printf("recv: %s", message) - } - }() + go rx(c) getConfig(c) @@ -89,26 +80,40 @@ func getConfig(c *websocket.Conn) { tx(c, request) } -func tx(c *websocket.Conn, d string) { - input := []byte(d) +func rx(c *websocket.Conn) { + for { + _, message, err := c.ReadMessage() + if err != nil { + log.Println("read:", err) + return + } + log.Println(quote(prettify(string(message)), "< ")) + } +} - var parsed any +func tx(c *websocket.Conn, d string) { + log.Println(quote(prettify(d), "> ")) - err := json.Unmarshal(input, &parsed) + err := c.WriteMessage(websocket.TextMessage, []byte(d)) if err != nil { log.Fatal(err) } +} - pretty, err := json.MarshalIndent(parsed, "", " ") +func prettify(input string) string { + var parsed any + + err := json.Unmarshal([]byte(input), &parsed) if err != nil { log.Fatal(err) } - log.Println(quote(string(pretty), "> ")) - err = c.WriteMessage(websocket.TextMessage, pretty) + pretty, err := json.MarshalIndent(parsed, "", " ") if err != nil { log.Fatal(err) } + + return string(pretty) } func quote(input string, quotation string) string { |
