diff options
author | Bohdan Horbeshko <bodqhrohro@gmail.com> | 2023-08-02 23:41:18 +0300 |
---|---|---|
committer | Bohdan Horbeshko <bodqhrohro@gmail.com> | 2023-08-02 23:41:18 +0300 |
commit | 608f67551297a14e2e23603413bbce66f6ad5cd9 (patch) | |
tree | d89aca9f73cf9de1da86d527dc4d7055716469df /telegram/handlers.go | |
parent | 8fc9edd7e70aeca266ab2860198de49bdc2ab585 (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.go | 19 |
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) }() |