diff --git a/src/go.mod b/src/go.mod index 0a2086c..a9ee849 100644 --- a/src/go.mod +++ b/src/go.mod @@ -18,7 +18,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/valyala/fasthttp v1.47.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 ) diff --git a/src/pkg/whatsapp/whatsapp.go b/src/pkg/whatsapp/whatsapp.go index 92c776c..f4f2dcd 100644 --- a/src/pkg/whatsapp/whatsapp.go +++ b/src/pkg/whatsapp/whatsapp.go @@ -266,22 +266,47 @@ func sendAutoReplyWebhook(evt *events.Message) error { audioMedia := evt.Message.GetAudioMessage() 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 {