summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/util/room_name.py31
1 files changed, 14 insertions, 17 deletions
diff --git a/synapse/util/room_name.py b/synapse/util/room_name.py
index 7e49b92bb4..30b7291369 100644
--- a/synapse/util/room_name.py
+++ b/synapse/util/room_name.py
@@ -71,9 +71,9 @@ def calculate_room_name(room_state, user_id):
     if "m.room.member" in room_state_bytype:
         all_members = [
             ev for ev in room_state_bytype["m.room.member"].values()
-            if ev.membership == "join" or ev.membership == "invite"
+            if ev.content['membership'] == "join" or ev.content['membership'] == "invite"
         ]
-        other_members = [m for m in all_members if m.sender != user_id]
+        other_members = [m for m in all_members if m.state_key != user_id]
     else:
         other_members = []
         all_members = []
@@ -113,30 +113,27 @@ def looks_like_an_alias(string):
 
 
 def descriptor_from_member_events(member_events):
-    #     else if (otherMembers.length === 1) {
-    #     return otherMembers[0].name;
-    # }
-    # else if (otherMembers.length === 2) {
-    #     return (
-    #         otherMembers[0].name + " and " + otherMembers[1].name
-    #     );
-    # }
-    # else {
-    #     return (
-    #         otherMembers[0].name + " and " + (otherMembers.length - 1) + " others"
-    #     );
-    # }
     if len(member_events) == 0:
         return "nobody"
     elif len(member_events) == 1:
         return name_from_member_event(member_events[0])
-    return "all the people, so many people. They all go hand in hand, hand in hand in their park life."
+    elif len(member_events) == 2:
+        return "%s and %s" % (
+            name_from_member_event(member_events[0]),
+            name_from_member_event(member_events[1]),
+        )
+    else:
+        return "%s and %d others" % (
+            name_from_member_event(member_events[0]),
+            len(member_events) - 1,
+        )
 
 
 def name_from_member_event(member_event):
+    # XXX: Need to look in invite state for invite display names.
     if (
         member_event.content and "displayname" in member_event.content and
         member_event.content["displayname"]
     ):
         return member_event.content["displayname"]
-    return member_event.sender
\ No newline at end of file
+    return member_event.state_key
\ No newline at end of file