diff --git a/src/message.rs b/src/message.rs index 47aa30b3e..74f9ff3b2 100644 --- a/src/message.rs +++ b/src/message.rs @@ -800,16 +800,21 @@ impl Message { pub async fn quoted_message(&self, context: &Context) -> Result> { if self.param.get(Param::Quote).is_some() && !self.is_forwarded() { - if let Some(in_reply_to) = &self.in_reply_to { - if let Some(msg_id) = rfc724_mid_exists(context, in_reply_to).await? { - let msg = Message::load_from_db(context, msg_id).await?; - return if msg.chat_id.is_trash() { - // If message is already moved to trash chat, pretend it does not exist. - Ok(None) - } else { - Ok(Some(msg)) - }; - } + return self.parent(context).await; + } + Ok(None) + } + + pub(crate) async fn parent(&self, context: &Context) -> Result> { + if let Some(in_reply_to) = &self.in_reply_to { + if let Some(msg_id) = rfc724_mid_exists(context, in_reply_to).await? { + let msg = Message::load_from_db(context, msg_id).await?; + return if msg.chat_id.is_trash() { + // If message is already moved to trash chat, pretend it does not exist. + Ok(None) + } else { + Ok(Some(msg)) + }; } } Ok(None)