(body *message.MessageBody, isGroup bool)
| 437 | } |
| 438 | |
| 439 | func 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 | |
| 483 | func (msg *GroupMessage) ToString() string { |
| 484 | //var strBuilder strings.Builder |
no test coverage detected