mirror of
https://codeberg.org/june64/mrvc.git
synced 2026-01-10 16:06:33 +01:00
move counters into RoomInfoTree structure
This bundles all the information nicely in one place.
This commit is contained in:
parent
77d5d33c45
commit
d7ca2f4a00
1 changed files with 16 additions and 36 deletions
52
main.go
52
main.go
|
|
@ -23,39 +23,25 @@ type HomeserverServerVersionInfo struct {
|
|||
ServerVersionInfo fclient.Version
|
||||
}
|
||||
|
||||
type MaxRoomVersionPath struct {
|
||||
RoomID id.RoomID
|
||||
MaxRoomVersion string
|
||||
}
|
||||
|
||||
type ServerPath struct {
|
||||
RoomID id.RoomID
|
||||
MaxRoomVersion string
|
||||
Server string
|
||||
}
|
||||
|
||||
type VersionPath struct {
|
||||
RoomID id.RoomID
|
||||
MaxRoomVersion string
|
||||
Server string
|
||||
Version string
|
||||
}
|
||||
|
||||
type RoomInfoTree map[id.RoomID](*RoomInfo)
|
||||
|
||||
type RoomInfo struct {
|
||||
MemberCount uint
|
||||
MaxRoomVersions map[string](*MaxRoomVersionInfo)
|
||||
}
|
||||
|
||||
type MaxRoomVersionInfo struct {
|
||||
Servers map[string](*ServerInfo)
|
||||
MemberCount uint
|
||||
Servers map[string](*ServerInfo)
|
||||
}
|
||||
|
||||
type ServerInfo struct {
|
||||
Versions map[string](*VersionInfo)
|
||||
MemberCount uint
|
||||
Versions map[string](*VersionInfo)
|
||||
}
|
||||
|
||||
type VersionInfo struct {
|
||||
MemberCount uint
|
||||
Homeservers map[string](*HomeserverInfo)
|
||||
}
|
||||
|
||||
|
|
@ -385,11 +371,6 @@ func main() {
|
|||
|
||||
// Info map tree.
|
||||
roomInfoTree := make(RoomInfoTree)
|
||||
// Member counters.
|
||||
membersByRoomID := make(map[id.RoomID]uint)
|
||||
membersByMaxRoomVersion := make(map[MaxRoomVersionPath]uint)
|
||||
membersByServerPath := make(map[ServerPath]uint)
|
||||
membersByVersionPath := make(map[VersionPath]uint)
|
||||
|
||||
for roomID, membersByHomeserver := range membersByHomeserverByRoomID {
|
||||
for hs, members := range membersByHomeserver {
|
||||
|
|
@ -397,13 +378,7 @@ func main() {
|
|||
|
||||
maxRoomVersion := getMaxRoomVersion(serverVersionInfo)
|
||||
|
||||
// Add to counters.
|
||||
membersByRoomID[roomID] += members
|
||||
membersByMaxRoomVersion[MaxRoomVersionPath{roomID, maxRoomVersion}] += members
|
||||
membersByServerPath[ServerPath{roomID, maxRoomVersion, serverVersionInfo.Server.Name}] += members
|
||||
membersByVersionPath[VersionPath{roomID, maxRoomVersion, serverVersionInfo.Server.Name, serverVersionInfo.Server.Version}] += members
|
||||
|
||||
// Sort into roomInfoTree.
|
||||
// Sort into roomInfoTree and add to counters.
|
||||
roomInfo, ok := roomInfoTree[roomID]
|
||||
if !ok {
|
||||
roomInfo = &RoomInfo{MaxRoomVersions: make(map[string]*MaxRoomVersionInfo)}
|
||||
|
|
@ -429,13 +404,18 @@ func main() {
|
|||
homeserverInfo = &HomeserverInfo{}
|
||||
versionInfo.Homeservers[hs] = homeserverInfo
|
||||
}
|
||||
|
||||
homeserverInfo.MemberCount = members
|
||||
versionInfo.MemberCount += members
|
||||
serverInfo.MemberCount += members
|
||||
maxRoomVersionInfo.MemberCount += members
|
||||
roomInfo.MemberCount += members
|
||||
}
|
||||
}
|
||||
|
||||
for roomID, roomInfo := range roomInfoTree {
|
||||
fmt.Println("Room:")
|
||||
fmt.Printf(" %s -> %d\n", givenRoomsByRoomID[roomID], membersByRoomID[roomID])
|
||||
fmt.Printf(" %s -> %d\n", givenRoomsByRoomID[roomID], roomInfo.MemberCount)
|
||||
|
||||
fmt.Println("Version Support:")
|
||||
|
||||
|
|
@ -447,7 +427,7 @@ func main() {
|
|||
for _, maxRoomVersionKey := range maxRoomVersionKeys {
|
||||
maxRoomVersionInfo := roomInfo.MaxRoomVersions[maxRoomVersionKey]
|
||||
|
||||
fmt.Printf(" %s -> %d\n", maxRoomVersionKey, membersByMaxRoomVersion[MaxRoomVersionPath{roomID, maxRoomVersionKey}])
|
||||
fmt.Printf(" %s -> %d\n", maxRoomVersionKey, maxRoomVersionInfo.MemberCount)
|
||||
|
||||
serverKeys := make([]string, 0, len(maxRoomVersionInfo.Servers))
|
||||
for key := range maxRoomVersionInfo.Servers {
|
||||
|
|
@ -457,7 +437,7 @@ func main() {
|
|||
for _, serverKey := range serverKeys {
|
||||
serverInfo := maxRoomVersionInfo.Servers[serverKey]
|
||||
|
||||
fmt.Printf(" %s -> %d\n", serverKey, membersByServerPath[ServerPath{roomID, maxRoomVersionKey, serverKey}])
|
||||
fmt.Printf(" %s -> %d\n", serverKey, serverInfo.MemberCount)
|
||||
|
||||
versionKeys := make([]string, 0, len(serverInfo.Versions))
|
||||
for key := range serverInfo.Versions {
|
||||
|
|
@ -467,7 +447,7 @@ func main() {
|
|||
for _, versionKey := range versionKeys {
|
||||
versionInfo := serverInfo.Versions[versionKey]
|
||||
|
||||
fmt.Printf(" %s -> %d\n", versionKey, membersByVersionPath[VersionPath{roomID, maxRoomVersionKey, serverKey, versionKey}])
|
||||
fmt.Printf(" %s -> %d\n", versionKey, versionInfo.MemberCount)
|
||||
|
||||
if config.PrintHomeserverMemberCount {
|
||||
homeserverKeys := make([]string, 0, len(versionInfo.Homeservers))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue