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

Method BuildFakeMessage

client/message.go:149–194  ·  view source on GitHub ↗

BuildFakeMessage make a fake message

(msgElems []*message2.ForwardNode)

Source from the content-addressed store, hash-verified

147
148// BuildFakeMessage make a fake message
149func (c *QQClient) BuildFakeMessage(msgElems []*message2.ForwardNode) []*message.PushMsgBody {
150 body := make([]*message.PushMsgBody, len(msgElems))
151 for idx, elem := range msgElems {
152 avatar := fmt.Sprintf("https://q.qlogo.cn/headimg_dl?dst_uin=%d&spec=640&img_type=jpg", elem.SenderID)
153 body[idx] = &message.PushMsgBody{
154 ResponseHead: &message.ResponseHead{
155 FromUid: proto.String(""),
156 FromUin: elem.SenderID,
157 },
158 ContentHead: &message.ContentHead{
159 Type: utils.Ternary[uint32](elem.GroupID != 0, 82, 9),
160 MsgId: proto.Uint32(crypto.RandU32()),
161 Sequence: proto.Uint32(crypto.RandU32()),
162 TimeStamp: proto.Uint32(uint32(utils.TimeStamp())),
163 Field7: proto.Uint64(1),
164 Field8: proto.Uint32(0),
165 Field9: proto.Uint32(0),
166 Foward: &message.ForwardHead{
167 Field1: proto.Uint32(0),
168 Field2: proto.Uint32(0),
169 Field3: proto.Uint32(utils.Ternary[uint32](elem.GroupID != 0, 0, 2)),
170 UnknownBase64: proto.String(avatar),
171 Avatar: proto.String(avatar),
172 },
173 },
174 }
175 if elem.GroupID != 0 {
176 body[idx].ResponseHead.Grp = &message.ResponseGrp{
177 GroupUin: elem.GroupID,
178 MemberName: elem.SenderName,
179 Unknown5: 2,
180 }
181 c.preProcessGroupMessage(elem.GroupID, elem.Message)
182 } else {
183 body[idx].ResponseHead.ToUid = proto.String(c.GetUID(c.Uin))
184 body[idx].ResponseHead.Forward = &message.ResponseForward{
185 FriendName: proto.String(elem.SenderName),
186 }
187 body[idx].ContentHead.SubType = proto.Uint32(4)
188 body[idx].ContentHead.DivSeq = proto.Uint32(4)
189 c.preProcessPrivateMessage(c.Uin, elem.Message)
190 }
191 body[idx].Body = message2.PackElementsToBody(elem.Message)
192 }
193 return body
194}
195
196func (c *QQClient) preProcessGroupMessage(groupUin uint32, elements []message2.IMessageElement) []message2.IMessageElement {
197 for _, element := range elements {

Callers 1

UploadForwardMsgMethod · 0.95

Calls 6

GetUIDMethod · 0.95
RandU32Function · 0.92
TimeStampFunction · 0.92
StringMethod · 0.45

Tested by

no test coverage detected