Skip to content

Commit d863dd7

Browse files
authored
element包含更详细的信息 (#145)
1 parent 67d2e08 commit d863dd7

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

message/message.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,12 @@ func ParsePrivateMessage(msg *message.PushMsgBody) *PrivateMessage {
102102
UID: msg.ResponseHead.FromUid.Unwrap(),
103103
IsFriend: true,
104104
},
105-
Time: msg.ContentHead.TimeStamp.Unwrap(),
106-
Elements: ParseMessageElements(msg.Body.RichText.Elems),
105+
Time: msg.ContentHead.TimeStamp.Unwrap(),
107106
}
108107
if msg.Body != nil {
108+
prvMsg.Elements = ParseMessageElements(msg.Body.RichText.Elems)
109109
prvMsg.Elements = append(prvMsg.Elements, ParseMessageBody(msg.Body, false)...)
110110
}
111-
112111
return prvMsg
113112
}
114113

@@ -125,11 +124,12 @@ func ParseGroupMessage(msg *message.PushMsgBody) *GroupMessage {
125124
CardName: msg.ResponseHead.Grp.MemberName,
126125
IsFriend: false,
127126
},
128-
Time: msg.ContentHead.TimeStamp.Unwrap(),
129-
Elements: ParseMessageElements(msg.Body.RichText.Elems),
127+
Time: msg.ContentHead.TimeStamp.Unwrap(),
128+
130129
OriginalObject: msg,
131130
}
132131
if msg.Body != nil {
132+
grpMsg.Elements = ParseMessageElements(msg.Body.RichText.Elems)
133133
grpMsg.Elements = append(grpMsg.Elements, ParseMessageBody(msg.Body, true)...)
134134
}
135135
return grpMsg
@@ -288,7 +288,7 @@ func ParseMessageElements(msg []*message.Elem) []IMessageElement {
288288
case 48:
289289
extra := &oidb2.MsgInfo{}
290290
err := proto.Unmarshal(elem.CommonElem.PbElem, extra)
291-
if err != nil {
291+
if err != nil || len(extra.MsgInfoBody) == 0 { // 不合理的合并转发会导致越界
292292
continue
293293
}
294294
index := extra.MsgInfoBody[0].Index
@@ -314,6 +314,7 @@ func ParseMessageElements(msg []*message.Elem) []IMessageElement {
314314
Sha1: utils.MustParseHexStr(index.Info.FileSha1),
315315
Duration: index.Info.Time,
316316
Node: index,
317+
MsgInfo: extra,
317318
})
318319
case 11, 21: // video
319320
var thumb = new(VideoThumb)
@@ -326,13 +327,14 @@ func ParseMessageElements(msg []*message.Elem) []IMessageElement {
326327
thumb.Sha1 = utils.MustParseHexStr(info.Info.FileSha1)
327328
}
328329
res = append(res, &ShortVideoElement{
329-
Name: index.Info.FileName,
330-
UUID: index.FileUuid,
331-
Md5: utils.MustParseHexStr(index.Info.FileHash),
332-
Sha1: utils.MustParseHexStr(index.Info.FileSha1),
333-
Size: index.Info.FileSize,
334-
Thumb: thumb,
335-
Node: index,
330+
Name: index.Info.FileName,
331+
UUID: index.FileUuid,
332+
Md5: utils.MustParseHexStr(index.Info.FileHash),
333+
Sha1: utils.MustParseHexStr(index.Info.FileSha1),
334+
Size: index.Info.FileSize,
335+
Thumb: thumb,
336+
Node: index,
337+
MsgInfo: extra,
336338
})
337339
}
338340
case 3: // 闪照

0 commit comments

Comments
 (0)