client: Simplify the sync logic.

This commit is contained in:
Damir Jelić 2019-06-12 16:24:03 +02:00
parent 6092e27748
commit ba09f77cb6

View File

@ -397,51 +397,27 @@ class PanClient(AsyncClient):
self.history_fetcher_task = loop.create_task(self.fetcher_loop()) self.history_fetcher_task = loop.create_task(self.fetcher_loop())
task = loop.create_task(self.sync_loop())
self.task = task
return task
async def sync_loop(self):
timeout = 30000 timeout = 30000
sync_filter = { sync_filter = {
"room": { "room": {
"state": {"lazy_load_members": True} "state": {"lazy_load_members": True}
} }
} }
next_batch = self.pan_store.load_token(self.server_name, self.user_id)
next_batch = self.pan_store.load_token(
self.server_name,
self.user_id
)
# We don't store any room state so initial sync needs to be with the # We don't store any room state so initial sync needs to be with the
# full_state parameter. Subsequent ones are normal. # full_state parameter. Subsequent ones are normal.
while True: task = loop.create_task(
try: self.sync_forever(
response = await self.sync( timeout,
sync_filter=sync_filter, sync_filter,
full_state=True, full_state=True,
since=next_batch, since=next_batch
) )
)
self.task = task
if isinstance(response, SyncResponse): return task
await self.sync_tasks(response)
break
else:
await asyncio.sleep(3)
except asyncio.CancelledError:
return
except ClientConnectionError:
try:
await asyncio.sleep(3)
except asyncio.CancelledError:
return
await self.sync_forever(timeout, sync_filter)
async def start_sas(self, message, device): async def start_sas(self, message, device):
try: try: