(groupUin uint32, elements []message2.IMessageElement)
| 194 | } |
| 195 | |
| 196 | func (c *QQClient) preProcessGroupMessage(groupUin uint32, elements []message2.IMessageElement) []message2.IMessageElement { |
| 197 | for _, element := range elements { |
| 198 | switch elem := element.(type) { |
| 199 | case *message2.AtElement: |
| 200 | member := c.GetCachedMemberInfo(elem.TargetUin, groupUin) |
| 201 | if member != nil { |
| 202 | elem.TargetUID = member.UID |
| 203 | elem.Display = "@" + member.DisplayName() |
| 204 | } |
| 205 | case *message2.ImageElement: |
| 206 | if elem.MsgInfo != nil { |
| 207 | continue |
| 208 | } |
| 209 | _, err := c.UploadGroupImage(groupUin, elem) |
| 210 | if err != nil { |
| 211 | c.errorln(err) |
| 212 | } |
| 213 | if elem.MsgInfo == nil { |
| 214 | c.errorln("UploadGroupImage failed") |
| 215 | continue |
| 216 | } |
| 217 | case *message2.VoiceElement: |
| 218 | if elem.MsgInfo != nil { |
| 219 | continue |
| 220 | } |
| 221 | _, err := c.UploadGroupRecord(groupUin, elem) |
| 222 | if err != nil { |
| 223 | c.errorln(err) |
| 224 | } |
| 225 | if elem.MsgInfo == nil { |
| 226 | c.errorln("UploadGroupRecord failed") |
| 227 | continue |
| 228 | } |
| 229 | case *message2.ShortVideoElement: |
| 230 | if elem.MsgInfo != nil { |
| 231 | continue |
| 232 | } |
| 233 | _, err := c.UploadGroupVideo(groupUin, elem) |
| 234 | if err != nil { |
| 235 | c.errorln(err) |
| 236 | } |
| 237 | if elem.MsgInfo == nil { |
| 238 | c.errorln("UploadGroupVideo failed") |
| 239 | continue |
| 240 | } |
| 241 | case *message2.ForwardMessage: |
| 242 | if elem.ResID != "" && len(elem.Nodes) == 0 { |
| 243 | forward, _ := c.FetchForwardMsg(elem.ResID) |
| 244 | elem.IsGroup = true |
| 245 | elem.Nodes = forward.Nodes |
| 246 | } |
| 247 | if elem.ResID == "" && len(elem.Nodes) != 0 { |
| 248 | _, err := c.UploadForwardMsg(elem, groupUin) |
| 249 | if err != nil { |
| 250 | c.errorln(err) |
| 251 | } |
| 252 | } |
| 253 | default: |
no test coverage detected