diff --git a/bridge/whatsappmulti/handlers.go b/bridge/whatsappmulti/handlers.go index 34dce471..d860b38d 100644 --- a/bridge/whatsappmulti/handlers.go +++ b/bridge/whatsappmulti/handlers.go @@ -1,3 +1,4 @@ +//go:build whatsappmulti // +build whatsappmulti package bwhatsapp @@ -43,6 +44,8 @@ func (b *Bwhatsapp) handleMessage(message *events.Message) { b.handleDocumentMessage(message) case msg.ImageMessage != nil: b.handleImageMessage(message) + case msg.ProtocolMessage != nil && *msg.ProtocolMessage.Type == proto.ProtocolMessage_REVOKE: + b.handleDelete(msg.ProtocolMessage) } } @@ -336,3 +339,20 @@ func (b *Bwhatsapp) handleDocumentMessage(msg *events.Message) { b.Remote <- rmsg } + +func (b *Bwhatsapp) handleDelete(messageInfo *proto.ProtocolMessage) { + sender, _ := types.ParseJID(*messageInfo.Key.Participant) + + rmsg := config.Message{ + Account: b.Account, + Protocol: b.Protocol, + ID: getMessageIdFormat(sender, *messageInfo.Key.Id), + Event: config.EventMsgDelete, + Text: config.EventMsgDelete, + Channel: *messageInfo.Key.RemoteJid, + } + + b.Log.Debugf("<= Sending message from %s to gateway", b.Account) + b.Log.Debugf("<= Message is %#v", rmsg) + b.Remote <- rmsg +}