MCPcopy Create free account
hub / github.com/LagrangeDev/LagrangeGo / ParseMessageBody

Function ParseMessageBody

message/message.go:439–481  ·  view source on GitHub ↗
(body *message.MessageBody, isGroup bool)

Source from the content-addressed store, hash-verified

437}
438
439func ParseMessageBody(body *message.MessageBody, isGroup bool) []IMessageElement {
440 var res []IMessageElement
441 if body != nil {
442 if body.RichText != nil && body.RichText.Ptt != nil {
443 ptt := body.RichText.Ptt
444 if isGroup && ptt.FileId != 0 {
445 res = append(res, &VoiceElement{
446 Name: ptt.FileName,
447 UUID: ptt.FileUuid,
448 Md5: ptt.FileMd5,
449 Node: &oidb2.IndexNode{
450 FileUuid: ptt.GroupFileKey,
451 },
452 })
453 } else if !isGroup {
454 res = append(res, &VoiceElement{
455 Name: ptt.FileName,
456 UUID: ptt.FileUuid,
457 Md5: ptt.FileMd5,
458 Node: &oidb2.IndexNode{
459 FileUuid: ptt.FileUuid,
460 },
461 })
462 }
463 }
464 if body.MsgContent != nil {
465 extra := message.FileExtra{}
466 if err := proto.Unmarshal(body.MsgContent, &extra); err != nil {
467 return res
468 }
469 if extra.File.FileSize.IsSome() && extra.File.FileName.IsSome() && extra.File.FileMd5 != nil && extra.File.FileUuid.IsSome() && extra.File.FileHash.IsSome() {
470 res = append(res, &FileElement{
471 FileSize: uint64(extra.File.FileSize.Unwrap()),
472 FileName: extra.File.FileName.Unwrap(),
473 FileMd5: extra.File.FileMd5,
474 FileUUID: extra.File.FileUuid.Unwrap(),
475 FileHash: extra.File.FileHash.Unwrap(),
476 })
477 }
478 }
479 }
480 return res
481}
482
483func (msg *GroupMessage) ToString() string {
484 //var strBuilder strings.Builder

Callers 2

ParsePrivateMessageFunction · 0.85
ParseGroupMessageFunction · 0.85

Calls 1

UnmarshalFunction · 0.92

Tested by

no test coverage detected