Filter rooms list before chunking
This commit is contained in:
parent
c42f46ab7d
commit
35bb465b86
|
@ -252,6 +252,18 @@ class SyncHandler(BaseHandler):
|
||||||
archived = []
|
archived = []
|
||||||
deferreds = []
|
deferreds = []
|
||||||
|
|
||||||
|
user_id = sync_config.user.to_string()
|
||||||
|
|
||||||
|
def _should_include_room(event):
|
||||||
|
# Always send down rooms we were banned or kicked from.
|
||||||
|
if not sync_config.filter_collection.include_leave:
|
||||||
|
if event.membership == Membership.LEAVE:
|
||||||
|
if user_id == event.sender:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
room_list = filter(_should_include_room, room_list)
|
||||||
|
|
||||||
room_list_chunks = [room_list[i:i + 10] for i in xrange(0, len(room_list), 10)]
|
room_list_chunks = [room_list[i:i + 10] for i in xrange(0, len(room_list), 10)]
|
||||||
for room_list_chunk in room_list_chunks:
|
for room_list_chunk in room_list_chunks:
|
||||||
for event in room_list_chunk:
|
for event in room_list_chunk:
|
||||||
|
@ -276,12 +288,6 @@ class SyncHandler(BaseHandler):
|
||||||
invite=invite,
|
invite=invite,
|
||||||
))
|
))
|
||||||
elif event.membership in (Membership.LEAVE, Membership.BAN):
|
elif event.membership in (Membership.LEAVE, Membership.BAN):
|
||||||
# Always send down rooms we were banned or kicked from.
|
|
||||||
if not sync_config.filter_collection.include_leave:
|
|
||||||
if event.membership == Membership.LEAVE:
|
|
||||||
if sync_config.user.to_string() == event.sender:
|
|
||||||
continue
|
|
||||||
|
|
||||||
leave_token = now_token.copy_and_replace(
|
leave_token = now_token.copy_and_replace(
|
||||||
"room_key", "s%d" % (event.stream_ordering,)
|
"room_key", "s%d" % (event.stream_ordering,)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue