From e98d58a8cc83271fc2df3e60d0384ffda61521a8 Mon Sep 17 00:00:00 2001 From: Ulyssa Date: Tue, 21 Mar 2023 14:02:42 -0700 Subject: [PATCH] Emote messages should always show sender (#65) --- src/message/mod.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/message/mod.rs b/src/message/mod.rs index 8c46a03..53a789f 100644 --- a/src/message/mod.rs +++ b/src/message/mod.rs @@ -342,6 +342,23 @@ impl MessageEvent { } } + pub fn content(&self) -> Option<&RoomMessageEventContent> { + match self { + MessageEvent::EncryptedOriginal(_) => None, + MessageEvent::Original(ev) => Some(&ev.content), + MessageEvent::EncryptedRedacted(_) => None, + MessageEvent::Redacted(_) => None, + MessageEvent::Local(_, content) => Some(content), + } + } + + pub fn is_emote(&self) -> bool { + matches!( + self.content(), + Some(RoomMessageEventContent { msgtype: MessageType::Emote(_), .. }) + ) + } + pub fn body(&self) -> Cow<'_, str> { match self { MessageEvent::EncryptedOriginal(_) => "[Unable to decrypt message]".into(), @@ -771,7 +788,10 @@ impl Message { settings: &ApplicationSettings, ) -> Option { if let Some(prev) = prev { - if self.sender == prev.sender && self.timestamp.same_day(&prev.timestamp) { + if self.sender == prev.sender && + self.timestamp.same_day(&prev.timestamp) && + !self.event.is_emote() + { return None; } }