@@ -46,6 +46,9 @@ def __init__(self, client, room_id):
4646 self .guest_access = None
4747 self ._prev_batch = None
4848 self ._members = {}
49+ self .members_displaynames = {
50+ # user_id: displayname
51+ }
4952 self .encrypted = False
5053
5154 def set_user_profile (self ,
@@ -83,7 +86,7 @@ def display_name(self):
8386 return self .canonical_alias
8487
8588 # Member display names without me
86- members = [u .get_display_name () for u in self .get_joined_members () if
89+ members = [u .get_display_name (self ) for u in self .get_joined_members () if
8790 self .client .user_id != u .user_id ]
8891 members .sort ()
8992
@@ -478,10 +481,12 @@ def get_joined_members(self):
478481 response = self .client .api .get_room_members (self .room_id )
479482 for event in response ["chunk" ]:
480483 if event ["content" ]["membership" ] == "join" :
481- self ._add_member (event ["state_key" ], event ["content" ].get ("displayname" ))
484+ user_id = event ["state_key" ]
485+ self ._add_member (user_id , event ["content" ].get ("displayname" ))
482486 return list (self ._members .values ())
483487
484488 def _add_member (self , user_id , displayname = None ):
489+ self .members_displaynames [user_id ] = displayname
485490 if user_id in self ._members :
486491 return
487492 if user_id in self .client .users :
@@ -655,8 +660,8 @@ def _process_state_event(self, state_event):
655660 elif etype == "m.room.member" and clevel == clevel .ALL :
656661 # tracking room members can be large e.g. #matrix:matrix.org
657662 if econtent ["membership" ] == "join" :
658- self . _add_member (
659- state_event [ "state_key" ] , econtent .get ("displayname" ))
663+ user_id = state_event [ "state_key" ]
664+ self . _add_member ( user_id , econtent .get ("displayname" ))
660665 elif econtent ["membership" ] in ("leave" , "kick" , "invite" ):
661666 self ._members .pop (state_event ["state_key" ], None )
662667
0 commit comments