From 96281407994905d777c54f0052b2e041c0fe0f66 Mon Sep 17 00:00:00 2001 From: Michal Iskierko Date: Tue, 26 Mar 2024 15:54:06 +0100 Subject: [PATCH] fix: Send edit message Issue #14044 --- bridge/status/status.go | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/bridge/status/status.go b/bridge/status/status.go index 85321c7e..969cc000 100644 --- a/bridge/status/status.go +++ b/bridge/status/status.go @@ -287,9 +287,31 @@ func (b *Bstatus) Send(msg config.Message) (string, error) { b.Log.Debugf("=> Sending message %#v", msg) - _, err := b.messenger.SendChatMessage(context.Background(), b.toStatusMsg(msg)) + statusMessageToSend := b.toStatusMsg(msg) + statusMessageID, err := b.messenger.FindStatusMessageIdForBridgeMessageId(statusMessageToSend.GetBridgeMessage().MessageID) if err != nil { - return "", errors.Wrap(err, "failed to send message") + return "", errors.Wrap(err, "failed to get status message for bridge message") + } + + if statusMessageID != "" { + decodedStatusMessageID, err := types.DecodeHex(statusMessageID) + if err != nil { + return "", errors.Wrap(err, "failed to decode status message ID") + } + editedMessage := &requests.EditMessage{ + ID: decodedStatusMessageID, + Text: msg.Text, + ContentType: protobuf.ChatMessage_BRIDGE_MESSAGE, + } + _, err = b.messenger.EditMessage(context.Background(), editedMessage) + if err != nil { + return "", errors.Wrap(err, "failed to edit message") + } + } else { + _, err := b.messenger.SendChatMessage(context.Background(), statusMessageToSend) + if err != nil { + return "", errors.Wrap(err, "failed to send message") + } } return "", nil