diff options
| author | xengineering <me@xengineering.eu> | 2026-03-22 10:21:36 +0100 |
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2026-03-23 16:55:47 +0100 |
| commit | 5bae36f4ccee5e699969770948a02f70e8fed9b0 (patch) | |
| tree | 8d5e504b8cb230f8caed8834a7ea3652025f66c3 /tools | |
| parent | f4cdb605863c883f77ff3a6dab6a5ead8930b0fc (diff) | |
| download | sia-server-5bae36f4ccee5e699969770948a02f70e8fed9b0.tar sia-server-5bae36f4ccee5e699969770948a02f70e8fed9b0.tar.zst sia-server-5bae36f4ccee5e699969770948a02f70e8fed9b0.zip | |
tools: websocket: Quote and prettify RX JSON
This makes the responses from the Shelly device readable.
Diffstat (limited to 'tools')
| -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 { |
