Browse Source

feat: add condition, if message received with ExtendedTextMessage, then use it, else use Conversation attribute (#82)

* add condition, if message received with ExtendedTextMessage, then use it instead of Conversation

* Update go.mod

* Update whatsapp.go

fix webhook
pull/94/head
Itay Sharoni 3 years ago
committed by GitHub
parent
commit
456658faf9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/go.mod
  2. 57
      src/pkg/whatsapp/whatsapp.go

2
src/go.mod

@ -18,7 +18,7 @@ require (
github.com/stretchr/testify v1.8.4 github.com/stretchr/testify v1.8.4
github.com/valyala/fasthttp v1.47.0 github.com/valyala/fasthttp v1.47.0
go.mau.fi/libsignal v0.1.0 go.mau.fi/libsignal v0.1.0
go.mau.fi/whatsmeow v0.0.0-20230608204524-7aedaa1de108
go.mau.fi/whatsmeow v0.0.0-20230628230045-73f143bc9874
google.golang.org/protobuf v1.30.0 google.golang.org/protobuf v1.30.0
) )

57
src/pkg/whatsapp/whatsapp.go

@ -266,22 +266,47 @@ func sendAutoReplyWebhook(evt *events.Message) error {
audioMedia := evt.Message.GetAudioMessage() audioMedia := evt.Message.GetAudioMessage()
documentMedia := evt.Message.GetDocumentMessage() documentMedia := evt.Message.GetDocumentMessage()
body := map[string]any{
"message_id": evt.Info.ID,
"from": evt.Info.SourceString(),
"message": evt.Message.GetConversation(),
"image": imageMedia,
"video": videoMedia,
"audio": audioMedia,
"document": documentMedia,
"location": evt.Message.GetLocationMessage(),
"sticker": stickerMedia,
"live_location": evt.Message.GetLiveLocationMessage(),
"view_once": evt.Message.GetViewOnceMessage(),
"list": evt.Message.GetListMessage(),
"order": evt.Message.GetOrderMessage(),
"contact": evt.Message.GetContactMessage(),
"forwarded": evt.Message.GetGroupInviteMessage(),
message := evt.Message.GetConversation()
if extendedMessage := evt.Message.ExtendedTextMessage.GetText(); extendedMessage != "" {
message = extendedMessage
}
var quotedmessage interface{} = nil
if evt.Message.ExtendedTextMessage != nil {
quotedmessage = evt.Message.ExtendedTextMessage.ContextInfo.QuotedMessage.GetConversation()
if quotedmessage == "" {
quotedmessage = nil
}
}
var forwarded interface{} = nil
if evt.Message.ExtendedTextMessage != nil && evt.Message.ExtendedTextMessage.ContextInfo != nil {
forwarded = evt.Message.ExtendedTextMessage.ContextInfo.GetIsForwarded()
if forwarded == false {
forwarded = nil
}
}
body := map[string]any{
"message_id": evt.Info.ID,
"from": evt.Info.SourceString(),
"pushname": evt.Info.PushName,
"message": message,
"image": imageMedia,
"video": videoMedia,
"audio": audioMedia,
"document": documentMedia,
"location": evt.Message.GetLocationMessage(),
"sticker": stickerMedia,
"live_location": evt.Message.GetLiveLocationMessage(),
"view_once": evt.Message.GetViewOnceMessage(),
"list": evt.Message.GetListMessage(),
"order": evt.Message.GetOrderMessage(),
"contact": evt.Message.GetContactMessage(),
"forwarded": forwarded,
"quotedmessage": quotedmessage,
} }
if imageMedia != nil { if imageMedia != nil {

Loading…
Cancel
Save