server: Add sync filters on initial sync and subsequents syncs.
This commit is contained in:
parent
4d299b19eb
commit
47b303e975
1 changed files with 7 additions and 5 deletions
|
@ -38,7 +38,7 @@ from matrix.plugin_options import Option, DebugType
|
||||||
from matrix.utils import (key_from_value, prnt_debug, server_buffer_prnt,
|
from matrix.utils import (key_from_value, prnt_debug, server_buffer_prnt,
|
||||||
create_server_buffer)
|
create_server_buffer)
|
||||||
from matrix.utf import utf8_decode
|
from matrix.utf import utf8_decode
|
||||||
from matrix.globals import W, SERVERS, SCRIPT_NAME
|
from matrix.globals import W, SERVERS, SCRIPT_NAME, OPTIONS
|
||||||
from .buffer import RoomBuffer, OwnMessage, OwnAction
|
from .buffer import RoomBuffer, OwnMessage, OwnAction
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -459,10 +459,10 @@ class MatrixServer(object):
|
||||||
def schedule_sync(self):
|
def schedule_sync(self):
|
||||||
self.sync_time = time.time()
|
self.sync_time = time.time()
|
||||||
|
|
||||||
def sync(self, timeout=None):
|
def sync(self, timeout=None, filter=None):
|
||||||
# type: Optional[int] -> None
|
# type: Optional[int] -> None
|
||||||
self.sync_time = None
|
self.sync_time = None
|
||||||
_, request = self.client.sync(timeout)
|
_, request = self.client.sync(timeout, filter)
|
||||||
self.send_or_queue(request)
|
self.send_or_queue(request)
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
|
@ -553,7 +553,8 @@ class MatrixServer(object):
|
||||||
# self.store_olm()
|
# self.store_olm()
|
||||||
# self.upload_keys(device_keys=True, one_time_keys=False)
|
# self.upload_keys(device_keys=True, one_time_keys=False)
|
||||||
|
|
||||||
self.sync()
|
sync_filter = {"room": {"timeline": {"limit": OPTIONS.sync_limit}}}
|
||||||
|
self.sync(timeout=0, filter=sync_filter)
|
||||||
|
|
||||||
def _handle_room_info(self, response):
|
def _handle_room_info(self, response):
|
||||||
for room_id, join_info in response.rooms.join.items():
|
for room_id, join_info in response.rooms.join.items():
|
||||||
|
@ -706,7 +707,8 @@ def matrix_timer_cb(server_name, remaining_calls):
|
||||||
|
|
||||||
if server.sync_time and current_time > (server.sync_time + 2):
|
if server.sync_time and current_time > (server.sync_time + 2):
|
||||||
timeout = 0 if server.transport_type == TransportType.HTTP else 30000
|
timeout = 0 if server.transport_type == TransportType.HTTP else 30000
|
||||||
server.sync(timeout)
|
sync_filter = {"room": {"timeline": {"limit": 5000}}}
|
||||||
|
server.sync(timeout, sync_filter)
|
||||||
|
|
||||||
while server.send_queue:
|
while server.send_queue:
|
||||||
message = server.send_queue.popleft()
|
message = server.send_queue.popleft()
|
||||||
|
|
Loading…
Add table
Reference in a new issue