[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ement f2ba62c813: Add: (ement-room--format-membership-e
From: |
ELPA Syncer |
Subject: |
[elpa] externals/ement f2ba62c813: Add: (ement-room--format-membership-events) joined-and-left pairs |
Date: |
Wed, 2 Nov 2022 09:57:40 -0400 (EDT) |
branch: externals/ement
commit f2ba62c81387f1d54dae4873b46bcf1226503584
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Add: (ement-room--format-membership-events) joined-and-left pairs
---
README.org | 3 +++
ement-room.el | 25 +++++++++++++++++++++++--
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/README.org b/README.org
index ffceed5244..014b443005 100644
--- a/README.org
+++ b/README.org
@@ -289,6 +289,9 @@ Note that, while ~matrix-client~ remains usable, and
probably will for some time
** 0.5-pre
+*Additions*
++ Present "joined-and-left" and "rejoined-and-left" membership event pairs as
such.
+
*Changes*
+ When selecting a room to view with completion, don't offer spaces.
diff --git a/ement-room.el b/ement-room.el
index 112a3410f3..8610bb62cd 100644
--- a/ement-room.el
+++ b/ement-room.el
@@ -3688,7 +3688,8 @@ STRUCT should be an `ement-room-membership-events'
struct."
(not (equal
(alist-get 'avatar_url (ement-event-content event))
(map-nested-elt (ement-event-unsigned event)
'(prev_content avatar_url)))))))
- events)))
+ events))
+ join-and-leave-events rejoin-and-leave-events)
;; Remove apparent duplicates between join/rejoin events.
(setf join-events (cl-delete-if (lambda (event)
(cl-find (ement-event-state-key
event) rejoin-events
@@ -3697,12 +3698,32 @@ STRUCT should be an `ement-room-membership-events'
struct."
rejoin-events (cl-delete-if (lambda (event)
(cl-find
(ement-event-state-key event) join-events
:test #'equal :key
#'ement-event-state-key))
- rejoin-events))
+ rejoin-events)
+ join-and-leave-events (cl-loop for join-event in join-events
+ for left-event = (cl-find
(ement-event-state-key join-event) left-events
+
:test #'equal :key #'ement-event-state-key)
+ when left-event
+ collect left-event
+ and do (setf join-events
(cl-delete (ement-event-state-key join-event) join-events
+
:test #'equal :key #'ement-event-state-key)
+ left-events
(cl-delete (ement-event-state-key left-event) left-events
+
:test #'equal :key #'ement-event-state-key)))
+ rejoin-and-leave-events (cl-loop for rejoin-event in
rejoin-events
+ for left-event = (cl-find
(ement-event-state-key rejoin-event) left-events
+
:test #'equal :key #'ement-event-state-key)
+ when left-event
+ collect left-event
+ and do (setf rejoin-events
(cl-delete (ement-event-state-key rejoin-event) rejoin-events
+
:test #'equal :key #'ement-event-state-key)
+ left-events
(cl-delete (ement-event-state-key left-event) left-events
+
:test #'equal :key #'ement-event-state-key))))
(format "Membership: %s."
(string-join (cl-loop for (type . events)
in (ement-alist "rejoined"
rejoin-events
"joined" join-events
"left" left-events
+ "joined and left"
join-and-leave-events
+ "rejoined and left"
rejoin-and-leave-events
"invited"
invite-events
"banned" ban-events
"kicked and banned"
kick-and-ban-events
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/ement f2ba62c813: Add: (ement-room--format-membership-events) joined-and-left pairs,
ELPA Syncer <=