Fix: (defevent "m.room.member") Use membership

If the user is joined, add it to the tables; otherwise, remove it.

Previously, users who left the room remained in the tables.
This commit is contained in:
Adam Porter 2022-06-13 13:21:07 -05:00
parent 51b6c3a562
commit 0c791810b4

View file

@ -802,7 +802,7 @@ and `session' to the session. Adds function to
(ignore session)
(pcase-let* (((cl-struct ement-room members) room)
((cl-struct ement-event state-key
(content (map displayname
(content (map displayname membership
('avatar_url avatar-url))))
event)
(user (or (gethash state-key ement-users)
@ -814,9 +814,12 @@ and `session' to the session. Adds function to
;; in the struct anyway.
:displayname displayname)
ement-users))))
(puthash user displayname (ement-room-displaynames room))
(unless (gethash state-key members)
(puthash state-key user members))))
(pcase membership
("join"
(puthash state-key user members)
(puthash user displayname (ement-room-displaynames room)))
(_ (remhash state-key members)
(remhash user (ement-room-displaynames room))))))
(ement-defevent "m.room.name"
(ignore session)