diff options
author | Mark Haines <mark.haines@matrix.org> | 2015-12-02 10:40:22 +0000 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2015-12-02 10:40:22 +0000 |
commit | 2a0ec3b89d6b97e8a91ef5320d5e6675acacffdd (patch) | |
tree | bc022d01b40c2fdc701d4e1183931217cb6dfd6f /synapse/handlers/federation.py | |
parent | Only fire user_joined_room if the membership has changed (diff) | |
parent | Merge pull request #409 from MadsRC/develop (diff) | |
download | synapse-2a0ec3b89d6b97e8a91ef5320d5e6675acacffdd.tar.xz |
Merge branch 'develop' into markjh/edu_frequency
Conflicts: synapse/handlers/federation.py synapse/handlers/room.py
Diffstat (limited to 'synapse/handlers/federation.py')
-rw-r--r-- | synapse/handlers/federation.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index e5fb1dd3c9..a03a5f494c 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -44,6 +44,10 @@ import logging logger = logging.getLogger(__name__) +def user_joined_room(distributor, user, room_id): + return distributor.fire("user_joined_room", user, room_id) + + class FederationHandler(BaseHandler): """Handles events that originated from federation. Responsible for: @@ -60,10 +64,7 @@ class FederationHandler(BaseHandler): self.hs = hs - self.distributor.observe( - "user_joined_room", - self._on_user_joined - ) + self.distributor.observe("user_joined_room", self.user_joined_room) self.waiting_for_join_list = {} @@ -239,9 +240,7 @@ class FederationHandler(BaseHandler): prev_state = context.current_state.get((event.type, event.state_key)) if not prev_state or prev_state.membership != Membership.JOIN: user = UserID.from_string(event.state_key) - yield self.distributor.fire( - "user_joined_room", user=user, room_id=event.room_id - ) + yield user_joined_room(self.distributor, user, event.room_id) @defer.inlineCallbacks def _filter_events_for_server(self, server_name, room_id, events): @@ -738,9 +737,7 @@ class FederationHandler(BaseHandler): if event.type == EventTypes.Member: if event.content["membership"] == Membership.JOIN: user = UserID.from_string(event.state_key) - yield self.distributor.fire( - "user_joined_room", user=user, room_id=event.room_id - ) + yield user_joined_room(self.distributor, user, event.room_id) new_pdu = event @@ -1087,7 +1084,7 @@ class FederationHandler(BaseHandler): return self.store.get_min_depth(context) @log_function - def _on_user_joined(self, user, room_id): + def user_joined_room(self, user, room_id): waiters = self.waiting_for_join_list.get( (user.to_string(), room_id), [] |