mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-11-14 19:10:39 -05:00
Have EventSource's get_new_events_for_user() API work only on keys within that source, not overall eventstream tokens
This commit is contained in:
parent
56424eca5c
commit
eec67a675f
5 changed files with 33 additions and 30 deletions
|
|
@ -727,8 +727,8 @@ class PresenceEventSource(object):
|
|||
self.hs = hs
|
||||
self.clock = hs.get_clock()
|
||||
|
||||
def get_new_events_for_user(self, user, from_token, limit):
|
||||
from_key = int(from_token.presence_key)
|
||||
def get_new_events_for_user(self, user, from_key, limit):
|
||||
from_key = int(from_key)
|
||||
|
||||
presence = self.hs.get_handlers().presence_handler
|
||||
cachemap = presence._user_cachemap
|
||||
|
|
@ -743,15 +743,9 @@ class PresenceEventSource(object):
|
|||
latest_serial = max([x[1].serial for x in updates])
|
||||
data = [x[1].make_event(user=x[0], clock=clock) for x in updates]
|
||||
|
||||
end_token = from_token.copy_and_replace(
|
||||
"presence_key", latest_serial
|
||||
)
|
||||
return ((data, end_token))
|
||||
return ((data, latest_serial))
|
||||
else:
|
||||
end_token = from_token.copy_and_replace(
|
||||
"presence_key", presence._user_cachemap_latest_serial
|
||||
)
|
||||
return (([], end_token))
|
||||
return (([], presence._user_cachemap_latest_serial))
|
||||
|
||||
def get_current_token_part(self):
|
||||
presence = self.hs.get_handlers().presence_handler
|
||||
|
|
|
|||
|
|
@ -469,22 +469,20 @@ class RoomEventSource(object):
|
|||
self.store = hs.get_datastore()
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_new_events_for_user(self, user, from_token, limit):
|
||||
def get_new_events_for_user(self, user, from_key, limit):
|
||||
# We just ignore the key for now.
|
||||
|
||||
to_key = yield self.get_current_token_part()
|
||||
|
||||
events, end_key = yield self.store.get_room_events_stream(
|
||||
user_id=user.to_string(),
|
||||
from_key=from_token.room_key,
|
||||
from_key=from_key,
|
||||
to_key=to_key,
|
||||
room_id=None,
|
||||
limit=limit,
|
||||
)
|
||||
|
||||
end_token = from_token.copy_and_replace("room_key", end_key)
|
||||
|
||||
defer.returnValue((events, end_token))
|
||||
defer.returnValue((events, end_key))
|
||||
|
||||
def get_current_token_part(self):
|
||||
return self.store.get_room_events_max_id()
|
||||
|
|
|
|||
|
|
@ -151,8 +151,8 @@ class TypingNotificationEventSource(object):
|
|||
def __init__(self, hs):
|
||||
self.hs = hs
|
||||
|
||||
def get_new_events_for_user(self, user, from_token, limit):
|
||||
return ([], from_token)
|
||||
def get_new_events_for_user(self, user, from_key, limit):
|
||||
return ([], from_key)
|
||||
|
||||
def get_current_token_part(self):
|
||||
return 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue