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

move building of membersByHomeserversByRoomID map into separate function

Move building of membersByHomeserversByRoomID map into separate function
to make Get function easier to follow.
This commit is contained in:
June 2025-08-17 22:59:42 +02:00
commit 94a7f7140d
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0

View file

@ -52,6 +52,28 @@ var unknownServerVersionInfo = fclient.Version{
},
}
func getMembersByHomeserverByRoomID(roomIDs []id.RoomID, client *mautrix.Client) map[id.RoomID](map[string]uint) {
joinedMembersByRoomID := make(map[id.RoomID]*mautrix.RespJoinedMembers)
for _, roomID := range roomIDs {
joinedMembers, err := client.JoinedMembers(context.Background(), roomID)
if err != nil {
log.Fatal(err)
}
joinedMembersByRoomID[roomID] = joinedMembers
}
membersByHomeserverByRoomID := make(map[id.RoomID](map[string]uint))
for roomID, joinedMembers := range joinedMembersByRoomID {
membersByHomeserver := make(map[string]uint)
for userID := range joinedMembers.Joined {
membersByHomeserver[userID.Homeserver()]++
}
membersByHomeserverByRoomID[roomID] = membersByHomeserver
}
return membersByHomeserverByRoomID
}
func getServerVersionInfoByHomeserver(homeservers []string, federationClient *fclient.Client) map[string](fclient.Version) {
homeserverChannel := make(chan string)
go func() {
@ -91,23 +113,7 @@ func getServerVersionInfoByHomeserver(homeservers []string, federationClient *fc
}
func Get(roomIDs []id.RoomID, client *mautrix.Client, federationClient *fclient.Client) RoomInfoTree {
joinedMembersByRoomID := make(map[id.RoomID]*mautrix.RespJoinedMembers)
for _, roomID := range roomIDs {
joinedMembers, err := client.JoinedMembers(context.Background(), roomID)
if err != nil {
log.Fatal(err)
}
joinedMembersByRoomID[roomID] = joinedMembers
}
membersByHomeserverByRoomID := make(map[id.RoomID](map[string]uint))
for roomID, joinedMembers := range joinedMembersByRoomID {
membersByHomeserver := make(map[string]uint)
for key := range joinedMembers.Joined {
membersByHomeserver[key.Homeserver()]++
}
membersByHomeserverByRoomID[roomID] = membersByHomeserver
}
membersByHomeserverByRoomID := getMembersByHomeserverByRoomID(roomIDs, client)
homeserverSet := make(map[string]bool)
for _, membersByHomeserver := range membersByHomeserverByRoomID {