mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-03 12:13:09 -06:00
Don't refresh notifier, use the memberships from the join response instead so that it doesn't load presence for members we are ommitting due to LL
This commit is contained in:
parent
9d34f9738c
commit
7143ef20a1
|
|
@ -87,22 +87,27 @@ func (p *PresenceStreamProvider) populatePresence(
|
||||||
ignoreCache bool,
|
ignoreCache bool,
|
||||||
) error {
|
) error {
|
||||||
// add newly joined rooms user presences
|
// add newly joined rooms user presences
|
||||||
newlyJoined := joinedRooms(req.Response, req.Device.UserID)
|
if newlyJoined := joinedRooms(req.Response, req.Device.UserID); len(newlyJoined) > 0 {
|
||||||
if len(newlyJoined) > 0 {
|
|
||||||
// TODO: This refreshes all lists and is quite expensive
|
|
||||||
// The notifier should update the lists itself
|
|
||||||
if err := p.notifier.Load(ctx, p.DB); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for _, roomID := range newlyJoined {
|
for _, roomID := range newlyJoined {
|
||||||
roomUsers := p.notifier.JoinedUsers(roomID)
|
room, ok := req.Response.Rooms.Join[roomID]
|
||||||
for i := range roomUsers {
|
if !ok {
|
||||||
// we already got a presence from this user
|
continue
|
||||||
if _, ok := presences[roomUsers[i]]; ok {
|
}
|
||||||
|
for _, stateEvent := range room.State.Events {
|
||||||
|
switch {
|
||||||
|
case stateEvent.Type != gomatrixserverlib.MRoomMember:
|
||||||
|
fallthrough
|
||||||
|
case stateEvent.StateKey == nil:
|
||||||
|
fallthrough
|
||||||
|
case *stateEvent.StateKey == "":
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
userID := *stateEvent.StateKey
|
||||||
|
if _, ok := presences[userID]; ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
var err error
|
var err error
|
||||||
presences[roomUsers[i]], err = p.DB.GetPresence(ctx, roomUsers[i])
|
presences[userID], err = p.DB.GetPresence(ctx, userID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue