From 6c6405c13eb2216af1cc6f4cb71f5bfc65dcb1ed Mon Sep 17 00:00:00 2001 From: dchaofei Date: Sat, 17 May 2025 21:10:07 +0800 Subject: [PATCH 1/2] feat(message): support refer msg --- wechaty-puppet/puppet.go | 2 ++ wechaty-puppet/schemas/message.go | 12 ++++++++++++ wechaty/user/message.go | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/wechaty-puppet/puppet.go b/wechaty-puppet/puppet.go index f74911c..1a34dad 100644 --- a/wechaty-puppet/puppet.go +++ b/wechaty-puppet/puppet.go @@ -3,7 +3,9 @@ package wechatypuppet import ( "errors" "fmt" + lru "github.com/hashicorp/golang-lru" + "github.com/wechaty/go-wechaty/wechaty-puppet/events" "github.com/wechaty/go-wechaty/wechaty-puppet/filebox" "github.com/wechaty/go-wechaty/wechaty-puppet/helper" diff --git a/wechaty-puppet/schemas/message.go b/wechaty-puppet/schemas/message.go index 41d9dc3..696b57b 100644 --- a/wechaty-puppet/schemas/message.go +++ b/wechaty-puppet/schemas/message.go @@ -93,6 +93,18 @@ type MessagePayloadBase struct { // 小程序有些消息类型,wechaty服务端解析不处理,框架端解析。 xml type 36 是小程序 FixMiniApp bool + + ReferMessage *ReferMessagePayload +} + +type ReferMessagePayload struct { + Type MessageType // TODO: 确认是否和 MessageType 一致 + SourceMsgId string + TalkerId string + RoomId string + DisplayName string + Content string + Timestamp time.Time } type MessagePayloadRoom struct { diff --git a/wechaty/user/message.go b/wechaty/user/message.go index 822b517..ef7d7bb 100644 --- a/wechaty/user/message.go +++ b/wechaty/user/message.go @@ -147,6 +147,10 @@ func (m *Message) Date() time.Time { return m.payload.Timestamp } +func (m *Message) ReferMessage() *schemas.ReferMessagePayload { + return &(*m.payload.ReferMessage) // 不希望能被修改原数据 +} + // Say reply a Text or Media File message to the sender. // Support msg: // string From c47fe4fc10d748c19cb28cf7c09ab807dcacd25f Mon Sep 17 00:00:00 2001 From: dchaofei Date: Sat, 17 May 2025 21:12:02 +0800 Subject: [PATCH 2/2] fix&comment --- wechaty-puppet/schemas/message.go | 3 ++- wechaty/user/message.go | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/wechaty-puppet/schemas/message.go b/wechaty-puppet/schemas/message.go index 696b57b..1936cb0 100644 --- a/wechaty-puppet/schemas/message.go +++ b/wechaty-puppet/schemas/message.go @@ -97,9 +97,10 @@ type MessagePayloadBase struct { ReferMessage *ReferMessagePayload } +// ReferMessagePayload refer message payload type ReferMessagePayload struct { Type MessageType // TODO: 确认是否和 MessageType 一致 - SourceMsgId string + SourceMsgID string TalkerId string RoomId string DisplayName string diff --git a/wechaty/user/message.go b/wechaty/user/message.go index ef7d7bb..38a95c6 100644 --- a/wechaty/user/message.go +++ b/wechaty/user/message.go @@ -147,8 +147,14 @@ func (m *Message) Date() time.Time { return m.payload.Timestamp } +// ReferMessage get the refer message func (m *Message) ReferMessage() *schemas.ReferMessagePayload { - return &(*m.payload.ReferMessage) // 不希望能被修改原数据 + if m.payload.ReferMessage == nil { + return nil + } + + copy := *m.payload.ReferMessage + return © } // Say reply a Text or Media File message to the sender.