From f56e6ac1870a946e2084edef0b496d645a826706 Mon Sep 17 00:00:00 2001 From: Bohdan Horbeshko Date: Wed, 31 Jan 2024 09:23:07 -0500 Subject: [PATCH] Eliminate edit echos for outgoing messages --- Makefile | 2 +- telegabber.go | 2 +- telegram/handlers.go | 12 ++++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index cadda1c..c859606 100644 --- a/Makefile +++ b/Makefile @@ -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: diff --git a/telegabber.go b/telegabber.go index 8edd416..f42e266 100644 --- a/telegabber.go +++ b/telegabber.go @@ -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 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