Make it more performant

This commit is contained in:
Hocuri
2025-02-24 14:12:10 +01:00
parent 2281f36ce5
commit 48c9945be5

View File

@@ -3134,12 +3134,7 @@ pub async fn send_text_msg(
/// Returns true if the message can be edited.
pub async fn can_send_edit_request(context: &Context, msg_id: MsgId) -> Result<bool> {
let msg = Message::load_from_db(context, msg_id).await?;
if msg.from_id != ContactId::SELF
|| msg.is_info()
|| msg.viewtype == Viewtype::VideochatInvitation
|| msg.has_html()
|| msg.text.is_empty()
{
if !can_send_edit_request_for_msg(&msg) {
return Ok(false);
}
let chat = Chat::load_from_db(context, msg.get_chat_id()).await?;
@@ -3147,15 +3142,28 @@ pub async fn can_send_edit_request(context: &Context, msg_id: MsgId) -> Result<b
Ok(can_send)
}
fn can_send_edit_request_for_msg(msg: &Message) -> bool {
if msg.from_id != ContactId::SELF
|| msg.is_info()
|| msg.viewtype == Viewtype::VideochatInvitation
|| msg.has_html()
|| msg.text.is_empty()
{
return false;
}
true
}
/// Sends chat members a request to edit the given message's text.
pub async fn send_edit_request(context: &Context, msg_id: MsgId, new_text: String) -> Result<()> {
ensure!(
can_send_edit_request(context, msg_id).await?,
"Message cannot be edited"
);
ensure!(!new_text.trim().is_empty(), "Edited text cannot be empty");
let mut original_msg = Message::load_from_db(context, msg_id).await?;
ensure!(
can_send_edit_request_for_msg(&original_msg),
"Message cannot be edited"
);
if original_msg.text == new_text {
info!(context, "Text unchanged.");
return Ok(());