mirror of
https://codeberg.org/june64/mrvc.git
synced 2026-01-10 16:06:33 +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 {
|
for roomID, roomInfo := range roomInfoTree {
|
||||||
fmt.Println("Room:")
|
fmt.Println("Room:")
|
||||||
fmt.Printf(" %s -> %d\n", roomID, roomInfo.MemberCount)
|
fmt.Printf(" %s -> %d\n", roomID, roomInfo.MemberCount)
|
||||||
aliases := roomInfo.GivenAliases
|
givenAliases := roomInfo.GivenAliases
|
||||||
if len(aliases) > 0 {
|
if len(givenAliases) > 0 {
|
||||||
fmt.Println("Given Aliases:")
|
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 {
|
for _, alias := range aliases {
|
||||||
fmt.Printf(" %s\n", alias)
|
fmt.Printf(" %s\n", alias)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ type RoomInfoTree map[id.RoomID](*RoomInfo)
|
||||||
type RoomInfo struct {
|
type RoomInfo struct {
|
||||||
MemberCount uint
|
MemberCount uint
|
||||||
GivenAliases []string
|
GivenAliases []string
|
||||||
|
Aliases []string
|
||||||
MaxRoomVersions map[string](*MaxRoomVersionInfo)
|
MaxRoomVersions map[string](*MaxRoomVersionInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -147,6 +148,21 @@ func addChildRooms(givenRoomIDs []id.RoomID, recursionMaxDepth *int, recursionSu
|
||||||
return roomIDs
|
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) {
|
func getMembersByHomeserverByRoomID(roomIDs []id.RoomID, client *mautrix.Client) map[id.RoomID](map[string]uint) {
|
||||||
joinedMembersByRoomID := make(map[id.RoomID]*mautrix.RespJoinedMembers)
|
joinedMembersByRoomID := make(map[id.RoomID]*mautrix.RespJoinedMembers)
|
||||||
for _, roomID := range roomIDs {
|
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 {
|
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 {
|
if recursive {
|
||||||
roomIDs = addChildRooms(roomIDs, recursionMaxDepth, recursionSuggestedOnly, client)
|
roomIDs = addChildRooms(roomIDs, recursionMaxDepth, recursionSuggestedOnly, client)
|
||||||
}
|
}
|
||||||
|
aliasesByRoomID := getAliasesByRoomID(roomIDs, client)
|
||||||
membersByHomeserverByRoomID := getMembersByHomeserverByRoomID(roomIDs, client)
|
membersByHomeserverByRoomID := getMembersByHomeserverByRoomID(roomIDs, client)
|
||||||
homeservers := getHomeservers(membersByHomeserverByRoomID)
|
homeservers := getHomeservers(membersByHomeserverByRoomID)
|
||||||
serverVersionInfoByHomeserver := getServerVersionInfoByHomeserver(homeservers, federationClient)
|
serverVersionInfoByHomeserver := getServerVersionInfoByHomeserver(homeservers, federationClient)
|
||||||
|
|
@ -239,9 +256,17 @@ func Get(rooms []string, recursive bool, recursionMaxDepth *int, recursionSugges
|
||||||
roomInfo, ok := roomInfoTree[roomID]
|
roomInfo, ok := roomInfoTree[roomID]
|
||||||
if !ok {
|
if !ok {
|
||||||
roomInfo = &RoomInfo{
|
roomInfo = &RoomInfo{
|
||||||
GivenAliases: aliasesByRoomID[roomID],
|
GivenAliases: givenAliasesByRoomID[roomID],
|
||||||
MaxRoomVersions: make(map[string]*MaxRoomVersionInfo),
|
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
|
roomInfoTree[roomID] = roomInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue