1
0
Fork 0
mirror of https://codeberg.org/june64/mrvc.git synced 2026-01-11 08:16:33 +01:00

introduce option for JSON output

Also rename printHomeserverMemberCount option accordingly to fit new
output type.
This commit is contained in:
June 2025-08-19 21:21:39 +02:00
commit 4964485d29
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0
6 changed files with 67 additions and 20 deletions

30
output/json.go Normal file
View file

@ -0,0 +1,30 @@
package output
import (
"encoding/json"
"log"
"os"
"codeberg.org/june64/mrvc/roominfotree"
)
func PrintJSON(roomInfoTree roominfotree.RoomInfoTree, outputHomeserverMemberCount bool) {
if !outputHomeserverMemberCount {
for _, roomInfo := range roomInfoTree {
for _, maxRoomVersionInfo := range roomInfo.MaxRoomVersions {
for _, serverInfo := range maxRoomVersionInfo.Servers {
for _, versionInfo := range serverInfo.Versions {
versionInfo.Homeservers = nil
}
}
}
}
}
json, err := json.Marshal(roomInfoTree)
if err != nil {
log.Fatal(err)
}
os.Stdout.Write(json)
}

View file

@ -39,7 +39,7 @@ func compareVersionStrings(a, b string) int {
}
}
func Print(roomInfoTree roominfotree.RoomInfoTree, printHomeserverMemberCount bool) {
func Print(roomInfoTree roominfotree.RoomInfoTree, outputHomeserverMemberCount bool) {
for roomID, roomInfo := range roomInfoTree {
fmt.Println("Room:")
fmt.Printf(" %s -> %d\n", roomID, roomInfo.MemberCount)
@ -90,7 +90,7 @@ func Print(roomInfoTree roominfotree.RoomInfoTree, printHomeserverMemberCount bo
fmt.Printf(" %s -> %d\n", versionKey, versionInfo.MemberCount)
if printHomeserverMemberCount {
if outputHomeserverMemberCount {
homeserverKeys := make([]string, 0, len(versionInfo.Homeservers))
for key := range versionInfo.Homeservers {
homeserverKeys = append(homeserverKeys, key)