1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

supported on-way friend msg.

This commit is contained in:
Mrs4s 2020-08-28 00:22:17 +08:00
parent 3887056df8
commit d7e61afdfe
2 changed files with 15 additions and 22 deletions

View File

@ -234,20 +234,6 @@ func decodeMessageSvcPacket(c *QQClient, _ uint16, payload []byte) (interface{},
if message.Body.RichText == nil || message.Body.RichText.Elems == nil { if message.Body.RichText == nil || message.Body.RichText.Elems == nil {
continue continue
} }
//friend := c.FindFriend(message.Head.FromUin)
/*
if friend == nil {
return nil, nil
}
if friend.msgSeqList == nil {
friend.msgSeqList = utils.NewCache(time.Second * 5)
}
strSeq := strconv.FormatInt(int64(message.Head.MsgSeq), 10)
if _, ok := friend.msgSeqList.Get(strSeq); ok {
continue
}
friend.msgSeqList.Add(strSeq, 0, time.Minute*15)
*/
c.dispatchFriendMessage(c.parsePrivateMessage(message)) c.dispatchFriendMessage(c.parsePrivateMessage(message))
case 187: case 187:
_, pkt := c.buildSystemMsgNewFriendPacket() _, pkt := c.buildSystemMsgNewFriendPacket()

View File

@ -195,17 +195,24 @@ func (info *DeviceInfo) GenDeviceInfoData() []byte {
func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage { func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage {
friend := c.FindFriend(msg.Head.FromUin) friend := c.FindFriend(msg.Head.FromUin)
var sender *message.Sender
if friend == nil { if friend == nil {
return nil sender = &message.Sender{
Uin: msg.Head.FromUin,
Nickname: msg.Head.FromNick,
IsFriend: false,
}
} else {
sender = &message.Sender{
Uin: friend.Uin,
Nickname: friend.Nickname,
}
} }
ret := &message.PrivateMessage{ ret := &message.PrivateMessage{
Id: msg.Head.MsgSeq, Id: msg.Head.MsgSeq,
Target: c.Uin, Target: c.Uin,
Time: msg.Head.MsgTime, Time: msg.Head.MsgTime,
Sender: &message.Sender{ Sender: sender,
Uin: friend.Uin,
Nickname: friend.Nickname,
},
Elements: message.ParseMessageElems(msg.Body.RichText.Elems), Elements: message.ParseMessageElems(msg.Body.RichText.Elems),
} }
if msg.Body.RichText.Attr != nil { if msg.Body.RichText.Attr != nil {