diff options
author | Erik Johnston <erikj@jki.re> | 2016-08-26 13:41:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-26 13:41:57 +0100 |
commit | c943d8d2e8a08d3ec2cc17a466f8426058fb6246 (patch) | |
tree | ff4b826a956b0890727734063b2895c8e61cefbc /synapse/push/push_tools.py | |
parent | Merge pull request #1043 from matrix-org/erikj/backfill_fix (diff) | |
parent | Add is_host_joined to slave storage (diff) | |
download | synapse-c943d8d2e8a08d3ec2cc17a466f8426058fb6246.tar.xz |
Merge pull request #1047 from matrix-org/erikj/state_ids
Avoid pulling the full state of a room out so often.
Diffstat (limited to 'synapse/push/push_tools.py')
-rw-r--r-- | synapse/push/push_tools.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py index becb8ef1ae..b47bf1f92b 100644 --- a/synapse/push/push_tools.py +++ b/synapse/push/push_tools.py @@ -14,7 +14,7 @@ # limitations under the License. from twisted.internet import defer -from synapse.util.presentable_names import ( +from synapse.push.presentable_names import ( calculate_room_name, name_from_member_event ) from synapse.util.logcontext import preserve_fn, preserve_context_over_deferred @@ -49,21 +49,22 @@ def get_badge_count(store, user_id): @defer.inlineCallbacks -def get_context_for_event(state_handler, ev, user_id): +def get_context_for_event(store, state_handler, ev, user_id): ctx = {} - room_state = yield state_handler.get_current_state(ev.room_id) + room_state_ids = yield state_handler.get_current_state_ids(ev.room_id) # we no longer bother setting room_alias, and make room_name the # human-readable name instead, be that m.room.name, an alias or # a list of people in the room - name = calculate_room_name( - room_state, user_id, fallback_to_single_member=False + name = yield calculate_room_name( + store, room_state_ids, user_id, fallback_to_single_member=False ) if name: ctx['name'] = name - sender_state_event = room_state[("m.room.member", ev.sender)] + sender_state_event_id = room_state_ids[("m.room.member", ev.sender)] + sender_state_event = yield store.get_event(sender_state_event_id) ctx['sender_display_name'] = name_from_member_event(sender_state_event) defer.returnValue(ctx) |