1 files changed, 12 insertions, 15 deletions
diff --git a/synapse/push/__init__.py b/synapse/push/__init__.py
index 5575c847f9..e3dd4ce76d 100644
--- a/synapse/push/__init__.py
+++ b/synapse/push/__init__.py
@@ -84,25 +84,20 @@ class Pusher(object):
rules = baserules.list_with_base_rules(rawrules, user)
+ room_id = ev['room_id']
+
# get *our* member event for display name matching
- member_events_for_room = yield self.store.get_current_state(
- room_id=ev['room_id'],
+ my_display_name = None
+ our_member_event = yield self.store.get_current_state(
+ room_id=room_id,
event_type='m.room.member',
- state_key=None
+ state_key=self.user_name,
)
- my_display_name = None
- room_member_count = 0
- for mev in member_events_for_room:
- if mev.content['membership'] != 'join':
- continue
-
- # This loop does two things:
- # 1) Find our current display name
- if mev.state_key == self.user_name and 'displayname' in mev.content:
- my_display_name = mev.content['displayname']
+ if our_member_event:
+ my_display_name = our_member_event[0].content.get("displayname")
- # and 2) Get the number of people in that room
- room_member_count += 1
+ room_members = yield self.store.get_users_in_room(room_id)
+ room_member_count = len(room_members)
for r in rules:
if r['rule_id'] in enabled_map:
@@ -287,9 +282,11 @@ class Pusher(object):
if len(actions) == 0:
logger.warn("Empty actions! Using default action.")
actions = Pusher.DEFAULT_ACTIONS
+
if 'notify' not in actions and 'dont_notify' not in actions:
logger.warn("Neither notify nor dont_notify in actions: adding default")
actions.extend(Pusher.DEFAULT_ACTIONS)
+
if 'dont_notify' in actions:
logger.debug(
"%s for %s: dont_notify",
|