Merge pull request #718 from matrix-org/erikj/public_room_list

Don't return empty public rooms
This commit is contained in:
Erik Johnston 2016-04-13 14:07:26 +01:00
commit 5880bc5417

View File

@ -358,8 +358,6 @@ class RoomListHandler(BaseHandler):
@defer.inlineCallbacks @defer.inlineCallbacks
def handle_room(room_id): def handle_room(room_id):
aliases = yield self.store.get_aliases_for_room(room_id)
# We pull each bit of state out indvidually to avoid pulling the # We pull each bit of state out indvidually to avoid pulling the
# full state into memory. Due to how the caching works this should # full state into memory. Due to how the caching works this should
# be fairly quick, even if not originally in the cache. # be fairly quick, even if not originally in the cache.
@ -374,6 +372,14 @@ class RoomListHandler(BaseHandler):
defer.returnValue(None) defer.returnValue(None)
result = {"room_id": room_id} result = {"room_id": room_id}
joined_users = yield self.store.get_users_in_room(room_id)
if len(joined_users) == 0:
return
result["num_joined_members"] = len(joined_users)
aliases = yield self.store.get_aliases_for_room(room_id)
if aliases: if aliases:
result["aliases"] = aliases result["aliases"] = aliases
@ -413,9 +419,6 @@ class RoomListHandler(BaseHandler):
if avatar_url: if avatar_url:
result["avatar_url"] = avatar_url result["avatar_url"] = avatar_url
joined_users = yield self.store.get_users_in_room(room_id)
result["num_joined_members"] = len(joined_users)
results.append(result) results.append(result)
yield concurrently_execute(handle_room, room_ids, 10) yield concurrently_execute(handle_room, room_ids, 10)