Skip to content

Commit 329c233

Browse files
committed
Unwrap view-once v2 extension and lottie sticker messages
1 parent 8ebe981 commit 329c233

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

send.go

+8
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,10 @@ func getTypeFromMessage(msg *waProto.Message) string {
649649
return getTypeFromMessage(msg.ViewOnceMessage.Message)
650650
case msg.ViewOnceMessageV2 != nil:
651651
return getTypeFromMessage(msg.ViewOnceMessageV2.Message)
652+
case msg.ViewOnceMessageV2Extension != nil:
653+
return getTypeFromMessage(msg.ViewOnceMessageV2Extension.Message)
654+
case msg.LottieStickerMessage != nil:
655+
return getTypeFromMessage(msg.LottieStickerMessage.Message)
652656
case msg.EphemeralMessage != nil:
653657
return getTypeFromMessage(msg.EphemeralMessage.Message)
654658
case msg.DocumentWithCaptionMessage != nil:
@@ -672,6 +676,10 @@ func getMediaTypeFromMessage(msg *waProto.Message) string {
672676
return getMediaTypeFromMessage(msg.ViewOnceMessage.Message)
673677
case msg.ViewOnceMessageV2 != nil:
674678
return getMediaTypeFromMessage(msg.ViewOnceMessageV2.Message)
679+
case msg.ViewOnceMessageV2Extension != nil:
680+
return getMediaTypeFromMessage(msg.ViewOnceMessageV2Extension.Message)
681+
case msg.LottieStickerMessage != nil:
682+
return getMediaTypeFromMessage(msg.LottieStickerMessage.Message)
675683
case msg.EphemeralMessage != nil:
676684
return getMediaTypeFromMessage(msg.EphemeralMessage.Message)
677685
case msg.DocumentWithCaptionMessage != nil:

types/events/events.go

+14-2
Original file line numberDiff line numberDiff line change
@@ -269,9 +269,11 @@ type Message struct {
269269
Message *waProto.Message // The actual message struct
270270

271271
IsEphemeral bool // True if the message was unwrapped from an EphemeralMessage
272-
IsViewOnce bool // True if the message was unwrapped from a ViewOnceMessage or ViewOnceMessageV2
273-
IsViewOnceV2 bool // True if the message was unwrapped from a ViewOnceMessage
272+
IsViewOnce bool // True if the message was unwrapped from a ViewOnceMessage, ViewOnceMessageV2 or ViewOnceMessageV2Extension
273+
IsViewOnceV2 bool // True if the message was unwrapped from a ViewOnceMessageV2 or ViewOnceMessageV2Extension
274+
IsViewOnceV2Extension bool // True if the message was unwrapped from a ViewOnceMessageV2Extension
274275
IsDocumentWithCaption bool // True if the message was unwrapped from a DocumentWithCaptionMessage
276+
IsLottieSticker bool // True if the message was unwrapped from a LottieStickerMessage
275277
IsEdit bool // True if the message was unwrapped from an EditedMessage
276278

277279
// If this event was parsed from a WebMessageInfo (i.e. from a history sync or unavailable message request), the source data is here.
@@ -322,6 +324,16 @@ func (evt *Message) UnwrapRaw() *Message {
322324
evt.IsViewOnce = true
323325
evt.IsViewOnceV2 = true
324326
}
327+
if evt.Message.GetViewOnceMessageV2Extension().GetMessage() != nil {
328+
evt.Message = evt.Message.GetViewOnceMessageV2Extension().GetMessage()
329+
evt.IsViewOnce = true
330+
evt.IsViewOnceV2 = true
331+
evt.IsViewOnceV2Extension = true
332+
}
333+
if evt.Message.GetLottieStickerMessage().GetMessage() != nil {
334+
evt.Message = evt.Message.GetLottieStickerMessage().GetMessage()
335+
evt.IsLottieSticker = true
336+
}
325337
if evt.Message.GetDocumentWithCaptionMessage().GetMessage() != nil {
326338
evt.Message = evt.Message.GetDocumentWithCaptionMessage().GetMessage()
327339
evt.IsDocumentWithCaption = true

0 commit comments

Comments
 (0)