aboutsummaryrefslogtreecommitdiff
path: root/telegram/handlers.go
diff options
context:
space:
mode:
authorBohdan Horbeshko <bodqhrohro@gmail.com>2023-08-02 23:41:18 +0300
committerBohdan Horbeshko <bodqhrohro@gmail.com>2023-08-02 23:41:18 +0300
commit608f67551297a14e2e23603413bbce66f6ad5cd9 (patch)
treed89aca9f73cf9de1da86d527dc4d7055716469df /telegram/handlers.go
parent8fc9edd7e70aeca266ab2860198de49bdc2ab585 (diff)
Revert sending carbons for outgoing messages to other resources (they duplicate what clients already send to each other)v1.7.3
Diffstat (limited to 'telegram/handlers.go')
-rw-r--r--telegram/handlers.go19
1 files changed, 8 insertions, 11 deletions
diff --git a/telegram/handlers.go b/telegram/handlers.go
index cedea63..0d1cda9 100644
--- a/telegram/handlers.go
+++ b/telegram/handlers.go
@@ -205,27 +205,24 @@ func (c *Client) updateChatLastMessage(update *client.UpdateChatLastMessage) {
func (c *Client) updateNewMessage(update *client.UpdateNewMessage) {
chatId := update.Message.ChatId
- c.SendMessageLock.Lock()
- c.SendMessageLock.Unlock()
- xmppId, err := gateway.IdsDB.GetByTgIds(c.Session.Login, c.jid, chatId, update.Message.Id)
- var ignoredResource string
- if err == nil {
- ignoredResource = c.popFromOutbox(xmppId)
- } else {
- log.Infof("Couldn't retrieve XMPP message ids for %v, an echo may happen", update.Message.Id)
- }
-
// guarantee sequential message delivering per chat
lock := c.getChatMessageLock(chatId)
go func() {
lock.Lock()
defer lock.Unlock()
+ // ignore self outgoing messages
+ if update.Message.IsOutgoing &&
+ update.Message.SendingState != nil &&
+ update.Message.SendingState.MessageSendingStateType() == client.TypeMessageSendingStatePending {
+ return
+ }
+
log.WithFields(log.Fields{
"chat_id": chatId,
}).Warn("New message from chat")
- c.ProcessIncomingMessage(chatId, update.Message, ignoredResource)
+ c.ProcessIncomingMessage(chatId, update.Message)
c.updateLastMessageHash(update.Message.ChatId, update.Message.Id, update.Message.Content)
}()