From 0c9d1cfe18545c81bd2f3b9154743df6c983ba92 Mon Sep 17 00:00:00 2001 From: Till Faelligen Date: Wed, 27 Apr 2022 21:30:30 +0200 Subject: [PATCH] More limiting --- syncapi/storage/postgres/presence_table.go | 2 +- syncapi/storage/sqlite3/presence_table.go | 2 +- syncapi/streams/stream_presence.go | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/syncapi/storage/postgres/presence_table.go b/syncapi/storage/postgres/presence_table.go index d53360427..112270628 100644 --- a/syncapi/storage/postgres/presence_table.go +++ b/syncapi/storage/postgres/presence_table.go @@ -72,7 +72,7 @@ const selectMaxPresenceSQL = "" + const selectPresenceAfter = "" + " SELECT id, user_id, presence, status_msg, last_active_ts" + " FROM syncapi_presence" + - " WHERE id > $1 ORDER BY last_active_ts DESC LIMIT $2" + " WHERE id > $1 ORDER BY id DESC, last_active_ts DESC LIMIT $2" type presenceStatements struct { upsertPresenceStmt *sql.Stmt diff --git a/syncapi/storage/sqlite3/presence_table.go b/syncapi/storage/sqlite3/presence_table.go index 4e4b04df5..63d2820ac 100644 --- a/syncapi/storage/sqlite3/presence_table.go +++ b/syncapi/storage/sqlite3/presence_table.go @@ -71,7 +71,7 @@ const selectMaxPresenceSQL = "" + const selectPresenceAfter = "" + " SELECT id, user_id, presence, status_msg, last_active_ts" + " FROM syncapi_presence" + - " WHERE id > $1 ORDER BY last_active_ts DESC LIMIT $2" + " WHERE id > $1 ORDER BY id DESC, last_active_ts DESC LIMIT $2" type presenceStatements struct { db *sql.DB diff --git a/syncapi/streams/stream_presence.go b/syncapi/streams/stream_presence.go index 2b4d896c6..432486f8d 100644 --- a/syncapi/streams/stream_presence.go +++ b/syncapi/streams/stream_presence.go @@ -135,6 +135,9 @@ func (p *PresenceStreamProvider) IncrementalSync( if presence.StreamPos > lastPos { lastPos = presence.StreamPos } + if len(req.Response.Presence.Events) == req.Filter.Presence.Limit { + break + } p.cache.Store(cacheKey, presence) }