From f56e6ac1870a946e2084edef0b496d645a826706 Mon Sep 17 00:00:00 2001 From: Bohdan Horbeshko Date: Wed, 31 Jan 2024 09:23:07 -0500 Subject: Eliminate edit echos for outgoing messages --- telegram/handlers.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'telegram/handlers.go') diff --git a/telegram/handlers.go b/telegram/handlers.go index dfdd3d5..425309e 100644 --- a/telegram/handlers.go +++ b/telegram/handlers.go @@ -244,6 +244,8 @@ func (c *Client) updateNewMessage(update *client.UpdateNewMessage) { lock.Lock() defer lock.Unlock() + c.updateLastMessageHash(update.Message.ChatId, update.Message.Id, update.Message.Content) + // ignore self outgoing messages if update.Message.IsOutgoing && update.Message.SendingState != nil && @@ -256,8 +258,6 @@ func (c *Client) updateNewMessage(update *client.UpdateNewMessage) { }).Warn("New message from chat") c.ProcessIncomingMessage(chatId, update.Message) - - c.updateLastMessageHash(update.Message.ChatId, update.Message.Id, update.Message.Content) }() } @@ -267,8 +267,14 @@ func (c *Client) updateMessageContent(update *client.UpdateMessageContent) { defer c.updateLastMessageHash(update.ChatId, update.MessageId, update.NewContent) + log.Debugf("newContent: %#v", update.NewContent) + + lock := c.getChatMessageLock(update.ChatId) + lock.Lock() + lock.Unlock() c.SendMessageLock.Lock() c.SendMessageLock.Unlock() + xmppId, xmppIdErr := gateway.IdsDB.GetByTgIds(c.Session.Login, c.jid, update.ChatId, update.MessageId) var ignoredResource string if xmppIdErr == nil { @@ -286,6 +292,8 @@ func (c *Client) updateMessageContent(update *client.UpdateMessageContent) { if update.NewContent.MessageContentType() == client.TypeMessageText && c.hasLastMessageHashChanged(update.ChatId, update.MessageId, update.NewContent) { textContent := update.NewContent.(*client.MessageText) + log.Debugf("textContent: %#v", textContent.Text) + var replaceId string sId := strconv.FormatInt(update.MessageId, 10) var isCarbon bool -- cgit v1.2.3