diff options
author | David Baker <dbkr@users.noreply.github.com> | 2016-06-28 10:12:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-28 10:12:24 +0100 |
commit | db74dcda5b6e0fea3d80635283bcaea6355f3579 (patch) | |
tree | 6d97a0e7ac37e7d5f7c2337e7d4ea2b4efa79132 /synapse/push/push_tools.py | |
parent | remove vector.im from default secondary DS list (diff) | |
parent | Merge remote-tracking branch 'origin/develop' into dbkr/push_room_naming (diff) | |
download | synapse-db74dcda5b6e0fea3d80635283bcaea6355f3579.tar.xz |
Merge pull request #894 from matrix-org/dbkr/push_room_naming
Use similar naming we use in email notifs for push
Diffstat (limited to 'synapse/push/push_tools.py')
-rw-r--r-- | synapse/push/push_tools.py | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py index 89a3b5e90a..6f2d1ad57d 100644 --- a/synapse/push/push_tools.py +++ b/synapse/push/push_tools.py @@ -14,6 +14,9 @@ # limitations under the License. from twisted.internet import defer +from synapse.util.presentable_names import ( + calculate_room_name, name_from_member_event +) @defer.inlineCallbacks @@ -45,24 +48,21 @@ def get_badge_count(store, user_id): @defer.inlineCallbacks -def get_context_for_event(store, ev): - name_aliases = yield store.get_room_name_and_aliases( - ev.room_id - ) +def get_context_for_event(state_handler, ev, user_id): + ctx = {} - ctx = {'aliases': name_aliases[1]} - if name_aliases[0] is not None: - ctx['name'] = name_aliases[0] + room_state = yield state_handler.get_current_state(ev.room_id) - their_member_events_for_room = yield store.get_current_state( - room_id=ev.room_id, - event_type='m.room.member', - state_key=ev.user_id + # we no longer bother setting room_alias, and make room_name the + # human-readable name instead, be that m.room.namer, an alias or + # a list of people in the room + name = calculate_room_name( + room_state, user_id, fallback_to_single_member=False ) - for mev in their_member_events_for_room: - if mev.content['membership'] == 'join' and 'displayname' in mev.content: - dn = mev.content['displayname'] - if dn is not None: - ctx['sender_display_name'] = dn + if name: + ctx['name'] = name + + sender_state_event = room_state[("m.room.member", ev.sender)] + ctx['sender_display_name'] = name_from_member_event(sender_state_event) defer.returnValue(ctx) |