summary refs log tree commit diff
path: root/synapse/storage/appservice.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/storage/appservice.py')
-rw-r--r--synapse/storage/appservice.py18
1 files changed, 7 insertions, 11 deletions
diff --git a/synapse/storage/appservice.py b/synapse/storage/appservice.py
index d0632d55d1..c6ca2ab04e 100644
--- a/synapse/storage/appservice.py
+++ b/synapse/storage/appservice.py
@@ -219,20 +219,17 @@ class ApplicationServiceStore(SQLBaseStore):
 
         # get all rooms matching the room ID regex.
         room_entries = yield self.get_all_rooms()  # RoomEntry list
-        matching_room_id_list = [
+        matching_room_list = set([
             r.room_id for r in room_entries if
             service.is_interested_in_room(r.room_id)
-        ]
+        ])
 
         # resolve room IDs for matching room alias regex.
         room_alias_mappings = yield self.get_all_associations()
-        matching_alias_list = [
+        matching_room_list |= set([
             r.room_id for r in room_alias_mappings if
             service.is_interested_in_alias(r.room_alias)
-        ]
-        room_ids_matching_alias_or_id = set(
-            matching_room_id_list + matching_alias_list
-        )
+        ])
 
         # get all rooms for every user for this AS. This is scoped to users on
         # this HS only.
@@ -241,11 +238,10 @@ class ApplicationServiceStore(SQLBaseStore):
             u["name"] for u in user_list if
             service.is_interested_in_user(u["name"])
         ]
-        rooms_for_user_matching_user_id = []  # RoomsForUser list
+        rooms_for_user_matching_user_id = set()  # RoomsForUser list
         for user_id in user_list:
             rooms_for_user = yield self.get_rooms_for_user(user_id)
-            rooms_for_user_matching_user_id += rooms_for_user
-        rooms_for_user_matching_user_id = set(rooms_for_user_matching_user_id)
+            rooms_for_user_matching_user_id |= set(rooms_for_user)
 
         # make RoomsForUser tuples for room ids and aliases which are not in the
         # main rooms_for_user_list - e.g. they are rooms which do not have AS
@@ -253,7 +249,7 @@ class ApplicationServiceStore(SQLBaseStore):
         known_room_ids = [r.room_id for r in rooms_for_user_matching_user_id]
         missing_rooms_for_user = [
             RoomsForUser(r, service.sender, "join") for r in
-            room_ids_matching_alias_or_id if r not in known_room_ids
+            matching_room_list if r not in known_room_ids
         ]
         rooms_for_user_matching_user_id |= set(missing_rooms_for_user)