aboutsummaryrefslogtreecommitdiff
path: root/matrix/matrix.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2020-02-22 00:03:57 +0200
committerTulir Asokan <tulir@maunium.net>2020-02-22 00:03:57 +0200
commit442fdac4d5b949e556e94b0be53f2208709e8bf3 (patch)
treef63cb447525cdc15a4d733f857aefc82a0c9a7b7 /matrix/matrix.go
parent032a83d70bec5b87605e04c755c678ec01a0de11 (diff)
Enable lazy loading of members
Diffstat (limited to 'matrix/matrix.go')
-rw-r--r--matrix/matrix.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/matrix/matrix.go b/matrix/matrix.go
index f0009bc..d3edde5 100644
--- a/matrix/matrix.go
+++ b/matrix/matrix.go
@@ -834,6 +834,18 @@ func (c *Container) LeaveRoom(roomID string) error {
return nil
}
+func (c *Container) FetchMembers(room *rooms.Room) error {
+ members, err := c.client.Members(room.ID, mautrix.ReqMembers{At: room.LastPrevBatch})
+ if err != nil {
+ return err
+ }
+ for _, evt := range members.Chunk {
+ room.UpdateState(evt)
+ }
+ room.MembersFetched = true
+ return nil
+}
+
// GetHistory fetches room history.
func (c *Container) GetHistory(room *rooms.Room, limit int) ([]*event.Event, error) {
events, err := c.history.Load(room, limit)
@@ -849,6 +861,9 @@ func (c *Container) GetHistory(room *rooms.Room, limit int) ([]*event.Event, err
return nil, err
}
debug.Printf("Loaded %d events for %s from server from %s to %s", len(resp.Chunk), room.ID, resp.Start, resp.End)
+ for _, evt := range resp.State {
+ room.UpdateState(evt)
+ }
room.PrevBatch = resp.End
c.config.Rooms.Put(room)
if len(resp.Chunk) == 0 {