mirror of
https://codeberg.org/june64/mrvc.git
synced 2026-01-09 23:52:54 +01:00
get and print the aliases for each room
This is especially useful when using the recursive option as it allows for easier identification of each child room.
This commit is contained in:
parent
6309b94498
commit
29e99b708c
2 changed files with 36 additions and 4 deletions
11
main.go
11
main.go
|
|
@ -78,9 +78,16 @@ func main() {
|
|||
for roomID, roomInfo := range roomInfoTree {
|
||||
fmt.Println("Room:")
|
||||
fmt.Printf(" %s -> %d\n", roomID, roomInfo.MemberCount)
|
||||
aliases := roomInfo.GivenAliases
|
||||
if len(aliases) > 0 {
|
||||
givenAliases := roomInfo.GivenAliases
|
||||
if len(givenAliases) > 0 {
|
||||
fmt.Println("Given Aliases:")
|
||||
for _, alias := range givenAliases {
|
||||
fmt.Printf(" %s\n", alias)
|
||||
}
|
||||
}
|
||||
aliases := roomInfo.Aliases
|
||||
if len(aliases) > 0 {
|
||||
fmt.Println("Aliases:")
|
||||
for _, alias := range aliases {
|
||||
fmt.Printf(" %s\n", alias)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ type RoomInfoTree map[id.RoomID](*RoomInfo)
|
|||
type RoomInfo struct {
|
||||
MemberCount uint
|
||||
GivenAliases []string
|
||||
Aliases []string
|
||||
MaxRoomVersions map[string](*MaxRoomVersionInfo)
|
||||
}
|
||||
|
||||
|
|
@ -147,6 +148,21 @@ func addChildRooms(givenRoomIDs []id.RoomID, recursionMaxDepth *int, recursionSu
|
|||
return roomIDs
|
||||
}
|
||||
|
||||
func getAliasesByRoomID(roomIDs []id.RoomID, client *mautrix.Client) map[id.RoomID]([]id.RoomAlias) {
|
||||
aliasesByRoomID := make(map[id.RoomID]([]id.RoomAlias))
|
||||
|
||||
for _, roomID := range roomIDs {
|
||||
aliasListResp, err := client.GetAliases(context.Background(), roomID)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
aliasesByRoomID[roomID] = aliasListResp.Aliases
|
||||
}
|
||||
|
||||
return aliasesByRoomID
|
||||
}
|
||||
|
||||
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 {
|
||||
|
|
@ -225,10 +241,11 @@ func getServerVersionInfoByHomeserver(homeservers []string, federationClient *fc
|
|||
}
|
||||
|
||||
func Get(rooms []string, recursive bool, recursionMaxDepth *int, recursionSuggestedOnly bool, client *mautrix.Client, federationClient *fclient.Client) RoomInfoTree {
|
||||
roomIDs, aliasesByRoomID := resolveRooms(rooms, client)
|
||||
roomIDs, givenAliasesByRoomID := resolveRooms(rooms, client)
|
||||
if recursive {
|
||||
roomIDs = addChildRooms(roomIDs, recursionMaxDepth, recursionSuggestedOnly, client)
|
||||
}
|
||||
aliasesByRoomID := getAliasesByRoomID(roomIDs, client)
|
||||
membersByHomeserverByRoomID := getMembersByHomeserverByRoomID(roomIDs, client)
|
||||
homeservers := getHomeservers(membersByHomeserverByRoomID)
|
||||
serverVersionInfoByHomeserver := getServerVersionInfoByHomeserver(homeservers, federationClient)
|
||||
|
|
@ -239,9 +256,17 @@ func Get(rooms []string, recursive bool, recursionMaxDepth *int, recursionSugges
|
|||
roomInfo, ok := roomInfoTree[roomID]
|
||||
if !ok {
|
||||
roomInfo = &RoomInfo{
|
||||
GivenAliases: aliasesByRoomID[roomID],
|
||||
GivenAliases: givenAliasesByRoomID[roomID],
|
||||
MaxRoomVersions: make(map[string]*MaxRoomVersionInfo),
|
||||
}
|
||||
|
||||
aliases := aliasesByRoomID[roomID]
|
||||
aliasStrings := make([]string, 0, len(aliases))
|
||||
for _, alias := range aliases {
|
||||
aliasStrings = append(aliasStrings, alias.String())
|
||||
}
|
||||
roomInfo.Aliases = aliasStrings
|
||||
|
||||
roomInfoTree[roomID] = roomInfo
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue