Eliminate edit echos for outgoing messages

This commit is contained in:
Bohdan Horbeshko 2024-01-31 09:23:07 -05:00
parent 20e6d2558e
commit f56e6ac187
3 changed files with 12 additions and 4 deletions

View file

@ -2,7 +2,7 @@
COMMIT := $(shell git rev-parse --short HEAD)
TD_COMMIT := "5bbfc1cf5dab94f82e02f3430ded7241d4653551"
VERSION := "v1.9.0"
VERSION := "v1.9.1"
MAKEOPTS := "-j4"
all:

View file

@ -16,7 +16,7 @@ import (
goxmpp "gosrc.io/xmpp"
)
var version string = "1.9.0"
var version string = "1.9.1"
var commit string
var sm *goxmpp.StreamManager

View file

@ -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