1 files changed, 12 insertions, 3 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py
index 351ff305dc..049891eaf8 100644
--- a/synapse/handlers/presence.py
+++ b/synapse/handlers/presence.py
@@ -380,14 +380,23 @@ class PresenceHandler(BaseHandler):
logger.debug("Start polling for presence from %s", user)
if target_user:
- target_users = [target_user]
+ target_users = set(target_user)
else:
presence = yield self.store.get_presence_list(
user.localpart, accepted=True
)
- target_users = [
+ target_users = set([
self.hs.parse_userid(x["observed_user_id"]) for x in presence
- ]
+ ])
+
+ # Also include people in all my rooms
+
+ rm_handler = self.homeserver.get_handlers().room_member_handler
+ room_ids = yield rm_handler.get_rooms_for_user(user)
+
+ for room_id in room_ids:
+ for member in (yield rm_handler.get_room_members(room_id)):
+ target_users.add(member)
if state is None:
state = yield self.store.get_presence_state(user.localpart)
|