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

Method preProcessGroupMessage

client/message.go:196–257  ·  view source on GitHub ↗
(groupUin uint32, elements []message2.IMessageElement)

Source from the content-addressed store, hash-verified

194}
195
196func (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:

Callers 2

SendGroupMessageMethod · 0.95
BuildFakeMessageMethod · 0.95

Calls 8

GetCachedMemberInfoMethod · 0.95
UploadGroupImageMethod · 0.95
errorlnMethod · 0.95
UploadGroupRecordMethod · 0.95
UploadGroupVideoMethod · 0.95
FetchForwardMsgMethod · 0.95
UploadForwardMsgMethod · 0.95
DisplayNameMethod · 0.80

Tested by

no test coverage detected