mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
client: remove payload parameter in decoder function
replace with (*network.Packet).Payload
This commit is contained in:
parent
481c830f56
commit
96d46f63d2
@ -39,7 +39,7 @@ const (
|
|||||||
AddressBookSource // 来自通讯录
|
AddressBookSource // 来自通讯录
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *QQClient) c2cMessageSyncProcessor(rsp *msg.GetMessageResponse, info *network.Packet) {
|
func (c *QQClient) c2cMessageSyncProcessor(rsp *msg.GetMessageResponse, info network.RequestParams) {
|
||||||
c.sig.SyncCookie = rsp.SyncCookie
|
c.sig.SyncCookie = rsp.SyncCookie
|
||||||
c.sig.PubAccountCookie = rsp.PubAccountCookie
|
c.sig.PubAccountCookie = rsp.PubAccountCookie
|
||||||
// c.msgCtrlBuf = rsp.MsgCtrlBuf
|
// c.msgCtrlBuf = rsp.MsgCtrlBuf
|
||||||
@ -73,11 +73,11 @@ func (c *QQClient) c2cMessageSyncProcessor(rsp *msg.GetMessageResponse, info *ne
|
|||||||
if rsp.SyncFlag.Unwrap() != msg.SyncFlag_STOP {
|
if rsp.SyncFlag.Unwrap() != msg.SyncFlag_STOP {
|
||||||
c.debug("continue sync with flag: %v", rsp.SyncFlag)
|
c.debug("continue sync with flag: %v", rsp.SyncFlag)
|
||||||
seq, pkt := c.buildGetMessageRequestPacket(rsp.SyncFlag.Unwrap(), time.Now().Unix())
|
seq, pkt := c.buildGetMessageRequestPacket(rsp.SyncFlag.Unwrap(), time.Now().Unix())
|
||||||
_, _ = c.sendAndWait(seq, pkt, info.Params)
|
_, _ = c.sendAndWait(seq, pkt, info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *QQClient) commMsgProcessor(pMsg *msg.Message, info *network.Packet) {
|
func (c *QQClient) commMsgProcessor(pMsg *msg.Message, info network.RequestParams) {
|
||||||
strKey := fmt.Sprintf("%d%d%d%d", pMsg.Head.FromUin.Unwrap(), pMsg.Head.ToUin.Unwrap(), pMsg.Head.MsgSeq.Unwrap(), pMsg.Head.MsgUid.Unwrap())
|
strKey := fmt.Sprintf("%d%d%d%d", pMsg.Head.FromUin.Unwrap(), pMsg.Head.ToUin.Unwrap(), pMsg.Head.MsgSeq.Unwrap(), pMsg.Head.MsgUid.Unwrap())
|
||||||
if _, ok := c.msgSvcCache.GetAndUpdate(strKey, time.Hour); ok {
|
if _, ok := c.msgSvcCache.GetAndUpdate(strKey, time.Hour); ok {
|
||||||
c.debug("c2c msg %v already exists in cache. skip.", pMsg.Head.MsgUid.Unwrap())
|
c.debug("c2c msg %v already exists in cache. skip.", pMsg.Head.MsgUid.Unwrap())
|
||||||
@ -89,7 +89,7 @@ func (c *QQClient) commMsgProcessor(pMsg *msg.Message, info *network.Packet) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
c.lastC2CMsgTime = int64(pMsg.Head.MsgTime.Unwrap())
|
c.lastC2CMsgTime = int64(pMsg.Head.MsgTime.Unwrap())
|
||||||
if info.Params.Bool("init") {
|
if info.Bool("init") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if decoder, _ := peekC2CDecoder(pMsg.Head.MsgType.Unwrap()); decoder != nil {
|
if decoder, _ := peekC2CDecoder(pMsg.Head.MsgType.Unwrap()); decoder != nil {
|
||||||
@ -99,7 +99,7 @@ func (c *QQClient) commMsgProcessor(pMsg *msg.Message, info *network.Packet) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func privateMessageDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
func privateMessageDecoder(c *QQClient, pMsg *msg.Message, _ network.RequestParams) {
|
||||||
switch pMsg.Head.C2CCmd.Unwrap() {
|
switch pMsg.Head.C2CCmd.Unwrap() {
|
||||||
case 11, 175: // friend msg
|
case 11, 175: // friend msg
|
||||||
if pMsg.Head.FromUin.Unwrap() == c.Uin {
|
if pMsg.Head.FromUin.Unwrap() == c.Uin {
|
||||||
@ -141,7 +141,7 @@ func privateMessageDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func privatePttDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
func privatePttDecoder(c *QQClient, pMsg *msg.Message, _ network.RequestParams) {
|
||||||
if pMsg.Body == nil || pMsg.Body.RichText == nil || pMsg.Body.RichText.Ptt == nil {
|
if pMsg.Body == nil || pMsg.Body.RichText == nil || pMsg.Body.RichText.Ptt == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -152,7 +152,7 @@ func privatePttDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
|||||||
c.PrivateMessageEvent.dispatch(c, c.parsePrivateMessage(pMsg))
|
c.PrivateMessageEvent.dispatch(c, c.parsePrivateMessage(pMsg))
|
||||||
}
|
}
|
||||||
|
|
||||||
func tempSessionDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
func tempSessionDecoder(c *QQClient, pMsg *msg.Message, _ network.RequestParams) {
|
||||||
if pMsg.Head.C2CTmpMsgHead == nil || pMsg.Body == nil {
|
if pMsg.Head.C2CTmpMsgHead == nil || pMsg.Body == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ func tempSessionDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func troopAddMemberBroadcastDecoder(c *QQClient, pMsg *msg.Message, _ *network.Packet) {
|
func troopAddMemberBroadcastDecoder(c *QQClient, pMsg *msg.Message, _ network.RequestParams) {
|
||||||
groupJoinLock.Lock()
|
groupJoinLock.Lock()
|
||||||
defer groupJoinLock.Unlock()
|
defer groupJoinLock.Unlock()
|
||||||
group := c.FindGroupByUin(pMsg.Head.FromUin.Unwrap())
|
group := c.FindGroupByUin(pMsg.Head.FromUin.Unwrap())
|
||||||
@ -240,13 +240,13 @@ func troopAddMemberBroadcastDecoder(c *QQClient, pMsg *msg.Message, _ *network.P
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func systemMessageDecoder(c *QQClient, _ *msg.Message, _ *network.Packet) {
|
func systemMessageDecoder(c *QQClient, _ *msg.Message, _ network.RequestParams) {
|
||||||
_, pkt := c.buildSystemMsgNewFriendPacket()
|
_, pkt := c.buildSystemMsgNewFriendPacket()
|
||||||
_ = c.sendPacket(pkt)
|
_ = c.sendPacket(pkt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func troopSystemMessageDecoder(c *QQClient, pMsg *msg.Message, info *network.Packet) {
|
func troopSystemMessageDecoder(c *QQClient, pMsg *msg.Message, info network.RequestParams) {
|
||||||
if !info.Params.Bool("used_reg_proxy") && pMsg.Head.MsgType.Unwrap() != 85 && pMsg.Head.MsgType.Unwrap() != 36 {
|
if !info.Bool("used_reg_proxy") && pMsg.Head.MsgType.Unwrap() != 85 && pMsg.Head.MsgType.Unwrap() != 36 {
|
||||||
c.exceptAndDispatchGroupSysMsg()
|
c.exceptAndDispatchGroupSysMsg()
|
||||||
}
|
}
|
||||||
if len(pMsg.Body.MsgContent) == 0 {
|
if len(pMsg.Body.MsgContent) == 0 {
|
||||||
@ -260,7 +260,7 @@ func troopSystemMessageDecoder(c *QQClient, pMsg *msg.Message, info *network.Pac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func msgType0x211Decoder(c *QQClient, pMsg *msg.Message, info *network.Packet) {
|
func msgType0x211Decoder(c *QQClient, pMsg *msg.Message, info network.RequestParams) {
|
||||||
if pMsg.Head.C2CCmd.Unwrap() == 6 || pMsg.Head.C2CTmpMsgHead != nil {
|
if pMsg.Head.C2CCmd.Unwrap() == 6 || pMsg.Head.C2CTmpMsgHead != nil {
|
||||||
tempSessionDecoder(c, pMsg, info)
|
tempSessionDecoder(c, pMsg, info)
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ const (
|
|||||||
troopSystemMsgDecoders
|
troopSystemMsgDecoders
|
||||||
)
|
)
|
||||||
|
|
||||||
func peekC2CDecoder(msgType int32) (decoder func(*QQClient, *msg.Message, *network.Packet), decoderType uint8) {
|
func peekC2CDecoder(msgType int32) (decoder func(*QQClient, *msg.Message, network.RequestParams), decoderType uint8) {
|
||||||
switch msgType {
|
switch msgType {
|
||||||
case 9:
|
case 9:
|
||||||
return privateMessageDecoder, privateMsgDecoders
|
return privateMessageDecoder, privateMsgDecoders
|
||||||
|
@ -147,7 +147,7 @@ func (h *handlerInfo) getParams() network.RequestParams {
|
|||||||
return h.params
|
return h.params
|
||||||
}
|
}
|
||||||
|
|
||||||
var decoders = map[string]func(*QQClient, *network.Packet, []byte) (any, error){
|
var decoders = map[string]func(*QQClient, *network.Packet) (any, error){
|
||||||
"wtlogin.login": decodeLoginResponse,
|
"wtlogin.login": decodeLoginResponse,
|
||||||
"wtlogin.exchange_emp": decodeExchangeEmpResponse,
|
"wtlogin.exchange_emp": decodeExchangeEmpResponse,
|
||||||
"wtlogin.trans_emp": decodeTransEmpResponse,
|
"wtlogin.trans_emp": decodeTransEmpResponse,
|
||||||
|
@ -33,8 +33,8 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// wtlogin.login
|
// wtlogin.login
|
||||||
func decodeLoginResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
reader := binary.NewReader(payload)
|
reader := binary.NewReader(pkt.Payload)
|
||||||
reader.ReadUInt16() // sub command
|
reader.ReadUInt16() // sub command
|
||||||
t := reader.ReadByte()
|
t := reader.ReadByte()
|
||||||
reader.ReadUInt16()
|
reader.ReadUInt16()
|
||||||
@ -188,9 +188,9 @@ func decodeLoginResponse(c *QQClient, _ *network.Packet, payload []byte) (any, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// StatSvc.register
|
// StatSvc.register
|
||||||
func decodeClientRegisterResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeClientRegisterResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
svcRsp := &jce.SvcRespRegister{}
|
svcRsp := &jce.SvcRespRegister{}
|
||||||
@ -205,8 +205,8 @@ func decodeClientRegisterResponse(c *QQClient, _ *network.Packet, payload []byte
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wtlogin.exchange_emp
|
// wtlogin.exchange_emp
|
||||||
func decodeExchangeEmpResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeExchangeEmpResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
reader := binary.NewReader(payload)
|
reader := binary.NewReader(pkt.Payload)
|
||||||
cmd := reader.ReadUInt16()
|
cmd := reader.ReadUInt16()
|
||||||
t := reader.ReadByte()
|
t := reader.ReadByte()
|
||||||
reader.ReadUInt16()
|
reader.ReadUInt16()
|
||||||
@ -228,11 +228,11 @@ func decodeExchangeEmpResponse(c *QQClient, _ *network.Packet, payload []byte) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wtlogin.trans_emp
|
// wtlogin.trans_emp
|
||||||
func decodeTransEmpResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeTransEmpResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
if len(payload) < 48 {
|
if len(pkt.Payload) < 48 {
|
||||||
return nil, errors.New("missing payload length")
|
return nil, errors.New("missing payload length")
|
||||||
}
|
}
|
||||||
reader := binary.NewReader(payload)
|
reader := binary.NewReader(pkt.Payload)
|
||||||
reader.ReadBytes(5) // trans req head
|
reader.ReadBytes(5) // trans req head
|
||||||
reader.ReadByte()
|
reader.ReadByte()
|
||||||
reader.ReadUInt16()
|
reader.ReadUInt16()
|
||||||
@ -317,9 +317,9 @@ func decodeTransEmpResponse(c *QQClient, _ *network.Packet, payload []byte) (any
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ConfigPushSvc.PushReq
|
// ConfigPushSvc.PushReq
|
||||||
func decodePushReqPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodePushReqPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
r := jce.NewJceReader(data.Map["PushReq"]["ConfigPush.PushReq"][1:])
|
r := jce.NewJceReader(data.Map["PushReq"]["ConfigPush.PushReq"][1:])
|
||||||
@ -385,25 +385,25 @@ func decodePushReqPacket(c *QQClient, _ *network.Packet, payload []byte) (any, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
seq := r.ReadInt64(3)
|
seq := r.ReadInt64(3)
|
||||||
_, pkt := c.buildConfPushRespPacket(t, seq, jceBuf)
|
_, resp := c.buildConfPushRespPacket(t, seq, jceBuf)
|
||||||
return nil, c.sendPacket(pkt)
|
return nil, c.sendPacket(resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MessageSvc.PbGetMsg
|
// MessageSvc.PbGetMsg
|
||||||
func decodeMessageSvcPacket(c *QQClient, info *network.Packet, payload []byte) (any, error) {
|
func decodeMessageSvcPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := msg.GetMessageResponse{}
|
rsp := msg.GetMessageResponse{}
|
||||||
err := proto.Unmarshal(payload, &rsp)
|
err := proto.Unmarshal(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
c.c2cMessageSyncProcessor(&rsp, info)
|
c.c2cMessageSyncProcessor(&rsp, pkt.Params)
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// MessageSvc.PushNotify
|
// MessageSvc.PushNotify
|
||||||
func decodeSvcNotify(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeSvcNotify(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload[4:]))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload[4:]))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
if len(data.Map) == 0 {
|
if len(data.Map) == 0 {
|
||||||
@ -428,9 +428,9 @@ func decodeSvcNotify(c *QQClient, _ *network.Packet, payload []byte) (any, error
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SummaryCard.ReqSummaryCard
|
// SummaryCard.ReqSummaryCard
|
||||||
func decodeSummaryCardResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeSummaryCardResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
rsp := func() *jce.JceReader {
|
rsp := func() *jce.JceReader {
|
||||||
@ -494,9 +494,9 @@ func decodeSummaryCardResponse(_ *QQClient, _ *network.Packet, payload []byte) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// friendlist.getFriendGroupList
|
// friendlist.getFriendGroupList
|
||||||
func decodeFriendGroupListResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeFriendGroupListResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion3{}
|
data := &jce.RequestDataVersion3{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
r := jce.NewJceReader(data.Map["FLRESP"][1:])
|
r := jce.NewJceReader(data.Map["FLRESP"][1:])
|
||||||
@ -519,9 +519,9 @@ func decodeFriendGroupListResponse(_ *QQClient, _ *network.Packet, payload []byt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// friendlist.delFriend
|
// friendlist.delFriend
|
||||||
func decodeFriendDeleteResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeFriendDeleteResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion3{}
|
data := &jce.RequestDataVersion3{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
r := jce.NewJceReader(data.Map["DFRESP"][1:])
|
r := jce.NewJceReader(data.Map["DFRESP"][1:])
|
||||||
@ -532,9 +532,9 @@ func decodeFriendDeleteResponse(_ *QQClient, _ *network.Packet, payload []byte)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// friendlist.GetTroopListReqV2
|
// friendlist.GetTroopListReqV2
|
||||||
func decodeGroupListResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupListResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion3{}
|
data := &jce.RequestDataVersion3{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
r := jce.NewJceReader(data.Map["GetTroopListRespV2"][1:])
|
r := jce.NewJceReader(data.Map["GetTroopListRespV2"][1:])
|
||||||
@ -563,9 +563,9 @@ func decodeGroupListResponse(c *QQClient, _ *network.Packet, payload []byte) (an
|
|||||||
}
|
}
|
||||||
|
|
||||||
// friendlist.GetTroopMemberListReq
|
// friendlist.GetTroopMemberListReq
|
||||||
func decodeGroupMemberListResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupMemberListResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion3{}
|
data := &jce.RequestDataVersion3{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
r := jce.NewJceReader(data.Map["GTMLRESP"][1:])
|
r := jce.NewJceReader(data.Map["GTMLRESP"][1:])
|
||||||
@ -597,9 +597,9 @@ func decodeGroupMemberListResponse(_ *QQClient, _ *network.Packet, payload []byt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// group_member_card.get_group_member_card_info
|
// group_member_card.get_group_member_card_info
|
||||||
func decodeGroupMemberInfoResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupMemberInfoResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := pb.GroupMemberRspBody{}
|
rsp := pb.GroupMemberRspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.MemInfo == nil || (rsp.MemInfo.Nick == nil && rsp.MemInfo.Age == 0) {
|
if rsp.MemInfo == nil || (rsp.MemInfo.Nick == nil && rsp.MemInfo.Age == 0) {
|
||||||
@ -628,9 +628,9 @@ func decodeGroupMemberInfoResponse(c *QQClient, _ *network.Packet, payload []byt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LongConn.OffPicUp
|
// LongConn.OffPicUp
|
||||||
func decodeOffPicUpResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOffPicUpResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := cmd0x352.RspBody{}
|
rsp := cmd0x352.RspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.FailMsg != nil {
|
if rsp.FailMsg != nil {
|
||||||
@ -666,9 +666,9 @@ func decodeOffPicUpResponse(_ *QQClient, _ *network.Packet, payload []byte) (any
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OnlinePush.PbPushTransMsg
|
// OnlinePush.PbPushTransMsg
|
||||||
func decodeOnlinePushTransPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOnlinePushTransPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
info := msg.TransMsgInfo{}
|
info := msg.TransMsgInfo{}
|
||||||
err := proto.Unmarshal(payload, &info)
|
err := proto.Unmarshal(pkt.Payload, &info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
@ -767,9 +767,9 @@ func decodeOnlinePushTransPacket(c *QQClient, _ *network.Packet, payload []byte)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ProfileService.Pb.ReqSystemMsgNew.Friend
|
// ProfileService.Pb.ReqSystemMsgNew.Friend
|
||||||
func decodeSystemMsgFriendPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeSystemMsgFriendPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := structmsg.RspSystemMsgNew{}
|
rsp := structmsg.RspSystemMsgNew{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(rsp.Friendmsgs) == 0 {
|
if len(rsp.Friendmsgs) == 0 {
|
||||||
@ -789,9 +789,9 @@ func decodeSystemMsgFriendPacket(c *QQClient, _ *network.Packet, payload []byte)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MessageSvc.PushForceOffline
|
// MessageSvc.PushForceOffline
|
||||||
func decodeForceOfflinePacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeForceOfflinePacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
r := jce.NewJceReader(data.Map["req_PushForceOffline"]["PushNotifyPack.RequestPushForceOffline"][1:])
|
r := jce.NewJceReader(data.Map["req_PushForceOffline"]["PushNotifyPack.RequestPushForceOffline"][1:])
|
||||||
@ -802,7 +802,7 @@ func decodeForceOfflinePacket(c *QQClient, _ *network.Packet, payload []byte) (a
|
|||||||
}
|
}
|
||||||
|
|
||||||
// StatSvc.ReqMSFOffline
|
// StatSvc.ReqMSFOffline
|
||||||
func decodeMSFOfflinePacket(c *QQClient, _ *network.Packet, _ []byte) (any, error) {
|
func decodeMSFOfflinePacket(c *QQClient, _ *network.Packet) (any, error) {
|
||||||
// c.lastLostMsg = "服务器端强制下线."
|
// c.lastLostMsg = "服务器端强制下线."
|
||||||
c.Disconnect()
|
c.Disconnect()
|
||||||
// 这个decoder不能消耗太多时间, event另起线程处理
|
// 这个decoder不能消耗太多时间, event另起线程处理
|
||||||
@ -811,9 +811,9 @@ func decodeMSFOfflinePacket(c *QQClient, _ *network.Packet, _ []byte) (any, erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OidbSvc.0xd79
|
// OidbSvc.0xd79
|
||||||
func decodeWordSegmentation(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeWordSegmentation(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D79RspBody{}
|
rsp := oidb.D79RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -823,7 +823,7 @@ func decodeWordSegmentation(_ *QQClient, _ *network.Packet, payload []byte) (any
|
|||||||
return nil, errors.New("no word received")
|
return nil, errors.New("no word received")
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeSidExpiredPacket(c *QQClient, i *network.Packet, _ []byte) (any, error) {
|
func decodeSidExpiredPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
/*
|
/*
|
||||||
_, err := c.sendAndWait(c.buildRequestChangeSigPacket(true))
|
_, err := c.sendAndWait(c.buildRequestChangeSigPacket(true))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -855,6 +855,6 @@ func decodeAppInfoResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
func ignoreDecoder(_ *QQClient, _ *network.Packet, _ []byte) (any, error) {
|
func ignoreDecoder(_ *QQClient, _ *network.Packet) (any, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
@ -41,9 +41,9 @@ func (c *QQClient) buildFaceroamRequestPacket() (uint16, []byte) {
|
|||||||
return c.uniPacket("Faceroam.OpReq", payload)
|
return c.uniPacket("Faceroam.OpReq", payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeFaceroamResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeFaceroamResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := faceroam.FaceroamRspBody{}
|
rsp := faceroam.FaceroamRspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.RspUserInfo == nil {
|
if rsp.RspUserInfo == nil {
|
||||||
|
@ -334,9 +334,9 @@ func (c *QQClient) buildGroupFileDeleteReqPacket(groupCode int64, parentFolderId
|
|||||||
return c.uniPacket("OidbSvc.0x6d6_3", payload)
|
return c.uniPacket("OidbSvc.0x6d6_3", payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeOIDB6d81Response(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOIDB6d81Response(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D6D8RspBody{}
|
rsp := oidb.D6D8RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -344,9 +344,9 @@ func decodeOIDB6d81Response(_ *QQClient, _ *network.Packet, payload []byte) (any
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OidbSvc.0x6d6_2
|
// OidbSvc.0x6d6_2
|
||||||
func decodeOIDB6d62Response(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOIDB6d62Response(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D6D6RspBody{}
|
rsp := oidb.D6D6RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -358,18 +358,18 @@ func decodeOIDB6d62Response(_ *QQClient, _ *network.Packet, payload []byte) (any
|
|||||||
return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil
|
return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeOIDB6d63Response(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOIDB6d63Response(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D6D6RspBody{}
|
rsp := oidb.D6D6RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return rsp.DeleteFileRsp.ClientWording.Unwrap(), nil
|
return rsp.DeleteFileRsp.ClientWording.Unwrap(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeOIDB6d60Response(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOIDB6d60Response(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D6D6RspBody{}
|
rsp := oidb.D6D6RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -385,9 +385,9 @@ func decodeOIDB6d60Response(_ *QQClient, _ *network.Packet, payload []byte) (any
|
|||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeOIDB6d7Response(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOIDB6d7Response(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D6D7RspBody{}
|
rsp := oidb.D6D7RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -181,9 +181,9 @@ func (c *QQClient) buildGroupSearchPacket(keyword string) (uint16, []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SummaryCard.ReqSearch
|
// SummaryCard.ReqSearch
|
||||||
func decodeGroupSearchResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupSearchResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
if len(data.Map["RespHead"]["SummaryCard.RespHead"]) > 20 {
|
if len(data.Map["RespHead"]["SummaryCard.RespHead"]) > 20 {
|
||||||
@ -219,9 +219,9 @@ func decodeGroupSearchResponse(_ *QQClient, _ *network.Packet, payload []byte) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OidbSvc.0x88d_0
|
// OidbSvc.0x88d_0
|
||||||
func decodeGroupInfoResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupInfoResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D88DRspBody{}
|
rsp := oidb.D88DRspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -222,9 +222,9 @@ func (c *QQClient) buildAtAllRemainRequestPacket(groupCode int64) (uint16, []byt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OnlinePush.PbPushGroupMsg
|
// OnlinePush.PbPushGroupMsg
|
||||||
func decodeGroupMessagePacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupMessagePacket(c *QQClient, packet *network.Packet) (any, error) {
|
||||||
pkt := msg.PushMessagePacket{}
|
pkt := msg.PushMessagePacket{}
|
||||||
err := proto.Unmarshal(payload, &pkt)
|
err := proto.Unmarshal(packet.Payload, &pkt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
@ -257,9 +257,9 @@ func decodeGroupMessagePacket(c *QQClient, _ *network.Packet, payload []byte) (a
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeMsgSendResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeMsgSendResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := msg.SendMessageResponse{}
|
rsp := msg.SendMessageResponse{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
switch rsp.Result.Unwrap() {
|
switch rsp.Result.Unwrap() {
|
||||||
@ -274,9 +274,9 @@ func decodeMsgSendResponse(c *QQClient, _ *network.Packet, payload []byte) (any,
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeGetGroupMsgResponse(c *QQClient, info *network.Packet, payload []byte) (any, error) {
|
func decodeGetGroupMsgResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := msg.GetGroupMsgResp{}
|
rsp := msg.GetGroupMsgResp{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.Result.Unwrap() != 0 {
|
if rsp.Result.Unwrap() != 0 {
|
||||||
@ -288,7 +288,7 @@ func decodeGetGroupMsgResponse(c *QQClient, info *network.Packet, payload []byte
|
|||||||
if m.Head.FromUin.IsNone() {
|
if m.Head.FromUin.IsNone() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if m.Content != nil && m.Content.PkgNum.Unwrap() > 1 && !info.Params.Bool("raw") {
|
if m.Content != nil && m.Content.PkgNum.Unwrap() > 1 && !pkt.Params.Bool("raw") {
|
||||||
if m.Content.PkgIndex.Unwrap() == 0 {
|
if m.Content.PkgIndex.Unwrap() == 0 {
|
||||||
c.debug("build fragmented message from history")
|
c.debug("build fragmented message from history")
|
||||||
i := m.Head.MsgSeq.Unwrap() - m.Content.PkgNum.Unwrap()
|
i := m.Head.MsgSeq.Unwrap() - m.Content.PkgNum.Unwrap()
|
||||||
@ -323,9 +323,9 @@ func decodeGetGroupMsgResponse(c *QQClient, info *network.Packet, payload []byte
|
|||||||
return ret, nil
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeAtAllRemainResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeAtAllRemainResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.D8A7RspBody{}
|
rsp := oidb.D8A7RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -548,9 +548,9 @@ func (c *QQClient) buildEssenceMsgOperatePacket(groupCode int64, msgSeq, msgRand
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OidbSvc.0xeac_1/2
|
// OidbSvc.0xeac_1/2
|
||||||
func decodeEssenceMsgResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeEssenceMsgResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := &oidb.EACRspBody{}
|
rsp := &oidb.EACRspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -740,9 +740,9 @@ func (c *QQClient) buildSyncChannelFirstViewPacket() (uint16, []byte) {
|
|||||||
return c.uniPacket("trpc.group_pro.synclogic.SyncLogic.SyncFirstView", payload)
|
return c.uniPacket("trpc.group_pro.synclogic.SyncLogic.SyncFirstView", payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeGuildPushFirstView(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGuildPushFirstView(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
firstViewMsg := new(channel.FirstViewMsg)
|
firstViewMsg := new(channel.FirstViewMsg)
|
||||||
if err := proto.Unmarshal(payload, firstViewMsg); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, firstViewMsg); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(firstViewMsg.GuildNodes) > 0 {
|
if len(firstViewMsg.GuildNodes) > 0 {
|
||||||
|
@ -27,9 +27,9 @@ type tipsPushInfo struct {
|
|||||||
ChannelId uint64
|
ChannelId uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeGuildEventFlowPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGuildEventFlowPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
push := new(channel.MsgOnlinePush)
|
push := new(channel.MsgOnlinePush)
|
||||||
if err := proto.Unmarshal(payload, push); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, push); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if push.CompressFlag.Unwrap() == 1 && len(push.CompressMsg) > 0 {
|
if push.CompressFlag.Unwrap() == 1 && len(push.CompressMsg) > 0 {
|
||||||
|
@ -230,9 +230,9 @@ func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeGuildImageStoreResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGuildImageStoreResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
body := new(cmd0x388.D388RspBody)
|
body := new(cmd0x388.D388RspBody)
|
||||||
if err := proto.Unmarshal(payload, body); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, body); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(body.TryupImgRsp) == 0 {
|
if len(body.TryupImgRsp) == 0 {
|
||||||
|
@ -345,9 +345,9 @@ func (c *QQClient) buildImageOcrRequestPacket(url, md5 string, size, weight, hei
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ImgStore.GroupPicUp
|
// ImgStore.GroupPicUp
|
||||||
func decodeGroupImageStoreResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupImageStoreResponse(_ *QQClient, packet *network.Packet) (any, error) {
|
||||||
pkt := cmd0x388.D388RspBody{}
|
pkt := cmd0x388.D388RspBody{}
|
||||||
err := proto.Unmarshal(payload, &pkt)
|
err := proto.Unmarshal(packet.Payload, &pkt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
@ -372,24 +372,24 @@ func decodeGroupImageStoreResponse(_ *QQClient, _ *network.Packet, payload []byt
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeGroupImageDownloadResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupImageDownloadResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
pkt := cmd0x388.D388RspBody{}
|
rsp := cmd0x388.D388RspBody{}
|
||||||
if err := proto.Unmarshal(payload, &pkt); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "unmarshal protobuf message error")
|
return nil, errors.Wrap(err, "unmarshal protobuf message error")
|
||||||
}
|
}
|
||||||
if len(pkt.GetimgUrlRsp) == 0 {
|
if len(rsp.GetimgUrlRsp) == 0 {
|
||||||
return nil, errors.New("response not found")
|
return nil, errors.New("response not found")
|
||||||
}
|
}
|
||||||
if len(pkt.GetimgUrlRsp[0].FailMsg) != 0 {
|
if len(rsp.GetimgUrlRsp[0].FailMsg) != 0 {
|
||||||
return nil, errors.New(utils.B2S(pkt.GetimgUrlRsp[0].FailMsg))
|
return nil, errors.New(utils.B2S(rsp.GetimgUrlRsp[0].FailMsg))
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("https://%s%s", pkt.GetimgUrlRsp[0].DownDomain, pkt.GetimgUrlRsp[0].BigDownPara), nil
|
return fmt.Sprintf("https://%s%s", rsp.GetimgUrlRsp[0].DownDomain, rsp.GetimgUrlRsp[0].BigDownPara), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// OidbSvc.0xe07_0
|
// OidbSvc.0xe07_0
|
||||||
func decodeImageOcrResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeImageOcrResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.DE07RspBody{}
|
rsp := oidb.DE07RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -51,9 +51,9 @@ func (c *QQClient) buildMultiApplyUpPacket(data, hash []byte, buType int32, grou
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MultiMsg.ApplyUp
|
// MultiMsg.ApplyUp
|
||||||
func decodeMultiApplyUpResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeMultiApplyUpResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
body := multimsg.MultiRspBody{}
|
body := multimsg.MultiRspBody{}
|
||||||
if err := proto.Unmarshal(payload, &body); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &body); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(body.MultimsgApplyupRsp) == 0 {
|
if len(body.MultimsgApplyupRsp) == 0 {
|
||||||
@ -91,9 +91,9 @@ func (c *QQClient) buildMultiApplyDownPacket(resID string) (uint16, []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MultiMsg.ApplyDown
|
// MultiMsg.ApplyDown
|
||||||
func decodeMultiApplyDownResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeMultiApplyDownResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
body := multimsg.MultiRspBody{}
|
body := multimsg.MultiRspBody{}
|
||||||
if err := proto.Unmarshal(payload, &body); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &body); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(body.MultimsgApplydownRsp) == 0 {
|
if len(body.MultimsgApplydownRsp) == 0 {
|
||||||
|
@ -343,7 +343,7 @@ func (c *QQClient) netLoop() {
|
|||||||
decoded = pkt.Payload
|
decoded = pkt.Payload
|
||||||
if info == nil || !info.dynamic {
|
if info == nil || !info.dynamic {
|
||||||
pkt.Params = info.getParams()
|
pkt.Params = info.getParams()
|
||||||
decoded, err = decoder(c, pkt, pkt.Payload)
|
decoded, err = decoder(c, pkt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.debug("decode pkt %v error: %+v", pkt.CommandName, err)
|
c.debug("decode pkt %v error: %+v", pkt.CommandName, err)
|
||||||
}
|
}
|
||||||
|
@ -33,9 +33,9 @@ func (c *QQClient) buildOfflineFileDownloadRequestPacket(uuid []byte) (uint16, [
|
|||||||
return seq, packet
|
return seq, packet
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeOfflineFileDownloadResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeOfflineFileDownloadResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := cmd0x346.C346RspBody{}
|
rsp := cmd0x346.C346RspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
c.error("unmarshal cmd0x346 rsp body error: %v", err)
|
c.error("unmarshal cmd0x346 rsp body error: %v", err)
|
||||||
return nil, errors.Wrap(err, "unmarshal cmd0x346 rsp body error")
|
return nil, errors.Wrap(err, "unmarshal cmd0x346 rsp body error")
|
||||||
}
|
}
|
||||||
|
@ -23,15 +23,15 @@ var msg0x210Decoders = map[int64]func(*QQClient, []byte) error{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OnlinePush.ReqPush
|
// OnlinePush.ReqPush
|
||||||
func decodeOnlinePushReqPacket(c *QQClient, info *network.Packet, payload []byte) (any, error) {
|
func decodeOnlinePushReqPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
jr := jce.NewJceReader(data.Map["req"]["OnlinePushPack.SvcReqPushMsg"][1:])
|
jr := jce.NewJceReader(data.Map["req"]["OnlinePushPack.SvcReqPushMsg"][1:])
|
||||||
uin := jr.ReadInt64(0)
|
uin := jr.ReadInt64(0)
|
||||||
msgInfos := jr.ReadPushMessageInfos(2)
|
msgInfos := jr.ReadPushMessageInfos(2)
|
||||||
_ = c.sendPacket(c.buildDeleteOnlinePushPacket(uin, 0, nil, info.SequenceId, msgInfos))
|
_ = c.sendPacket(c.buildDeleteOnlinePushPacket(uin, 0, nil, pkt.SequenceId, msgInfos))
|
||||||
for _, m := range msgInfos {
|
for _, m := range msgInfos {
|
||||||
k := fmt.Sprintf("%v%v%v", m.MsgSeq, m.MsgTime, m.MsgUid)
|
k := fmt.Sprintf("%v%v%v", m.MsgSeq, m.MsgTime, m.MsgUid)
|
||||||
if _, ok := c.onlinePushCache.Get(k); ok {
|
if _, ok := c.onlinePushCache.Get(k); ok {
|
||||||
|
@ -326,9 +326,9 @@ func (c *QQClient) buildC2CPttStoreBDHExt(target int64, md5 []byte, size, voiceL
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PttCenterSvr.ShortVideoDownReq
|
// PttCenterSvr.ShortVideoDownReq
|
||||||
func decodePttShortVideoDownResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodePttShortVideoDownResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := pttcenter.ShortVideoRspBody{}
|
rsp := pttcenter.ShortVideoRspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.PttShortVideoDownloadRsp == nil || rsp.PttShortVideoDownloadRsp.DownloadAddr == nil {
|
if rsp.PttShortVideoDownloadRsp == nil || rsp.PttShortVideoDownloadRsp.DownloadAddr == nil {
|
||||||
@ -338,9 +338,9 @@ func decodePttShortVideoDownResponse(_ *QQClient, _ *network.Packet, payload []b
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PttCenterSvr.GroupShortVideoUpReq
|
// PttCenterSvr.GroupShortVideoUpReq
|
||||||
func decodeGroupShortVideoUploadResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeGroupShortVideoUploadResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := pttcenter.ShortVideoRspBody{}
|
rsp := pttcenter.ShortVideoRspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.PttShortVideoUploadRsp == nil {
|
if rsp.PttShortVideoUploadRsp == nil {
|
||||||
|
@ -155,9 +155,9 @@ func (c *QQClient) bigDataRequest(subCmd uint32, req proto.Message) ([]byte, err
|
|||||||
return tea.Decrypt(payload), nil
|
return tea.Decrypt(payload), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeLoginExtraResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeLoginExtraResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := cmd0x3f6.C3F6RspBody{}
|
rsp := cmd0x3f6.C3F6RspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if rsp.SubcmdLoginProcessCompleteRspBody == nil {
|
if rsp.SubcmdLoginProcessCompleteRspBody == nil {
|
||||||
@ -171,9 +171,9 @@ func decodeLoginExtraResponse(c *QQClient, _ *network.Packet, payload []byte) (a
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeConnKeyResponse(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeConnKeyResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := cmd0x6ff.C501RspBody{}
|
rsp := cmd0x6ff.C501RspBody{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if c.QiDian == nil {
|
if c.QiDian == nil {
|
||||||
|
@ -92,9 +92,9 @@ func (c *QQClient) buildPrivateRecallPacket(uin, ts int64, msgSeq, random int32)
|
|||||||
return c.uniPacket("PbMessageSvc.PbMsgWithDraw", payload)
|
return c.uniPacket("PbMessageSvc.PbMsgWithDraw", payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeMsgWithDrawResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeMsgWithDrawResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := msg.MsgWithDrawResp{}
|
rsp := msg.MsgWithDrawResp{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(rsp.C2CWithDraw) > 0 {
|
if len(rsp.C2CWithDraw) > 0 {
|
||||||
|
@ -48,9 +48,9 @@ func (c *QQClient) buildUrlCheckRequest(url string) (uint16, []byte) {
|
|||||||
return c.uniPacket("OidbSvc.0xbcb_0", payload)
|
return c.uniPacket("OidbSvc.0xbcb_0", payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeUrlCheckResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeUrlCheckResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.DBCBRspBody{}
|
rsp := oidb.DBCBRspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -281,9 +281,9 @@ func (c *QQClient) buildPrivateMsgReadedPacket(uin, time int64) (uint16, []byte)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// StatSvc.GetDevLoginInfo
|
// StatSvc.GetDevLoginInfo
|
||||||
func decodeDevListResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeDevListResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
rsp := jce.NewJceReader(data.Map["SvcRspGetDevLoginInfo"]["QQService.SvcRspGetDevLoginInfo"][1:])
|
rsp := jce.NewJceReader(data.Map["SvcRspGetDevLoginInfo"]["QQService.SvcRspGetDevLoginInfo"][1:])
|
||||||
@ -303,9 +303,9 @@ func decodeDevListResponse(_ *QQClient, _ *network.Packet, payload []byte) (any,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RegPrxySvc.PushParam
|
// RegPrxySvc.PushParam
|
||||||
func decodePushParamPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodePushParamPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
reader := jce.NewJceReader(data.Map["SvcRespParam"]["RegisterProxySvcPack.SvcRespParam"][1:])
|
reader := jce.NewJceReader(data.Map["SvcRespParam"]["RegisterProxySvcPack.SvcRespParam"][1:])
|
||||||
@ -344,9 +344,9 @@ func decodePushParamPacket(c *QQClient, _ *network.Packet, payload []byte) (any,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RegPrxySvc.PbSyncMsg
|
// RegPrxySvc.PbSyncMsg
|
||||||
func decodeMsgSyncResponse(c *QQClient, info *network.Packet, payload []byte) (any, error) {
|
func decodeMsgSyncResponse(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := &msf.SvcRegisterProxyMsgResp{}
|
rsp := &msf.SvcRegisterProxyMsgResp{}
|
||||||
if err := proto.Unmarshal(payload, rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, rsp); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ret := &sessionSyncEvent{
|
ret := &sessionSyncEvent{
|
||||||
@ -381,26 +381,26 @@ func decodeMsgSyncResponse(c *QQClient, info *network.Packet, payload []byte) (a
|
|||||||
if len(rsp.C2CMsg) > 4 {
|
if len(rsp.C2CMsg) > 4 {
|
||||||
c2cRsp := &msg.GetMessageResponse{}
|
c2cRsp := &msg.GetMessageResponse{}
|
||||||
if proto.Unmarshal(rsp.C2CMsg[4:], c2cRsp) == nil {
|
if proto.Unmarshal(rsp.C2CMsg[4:], c2cRsp) == nil {
|
||||||
c.c2cMessageSyncProcessor(c2cRsp, info)
|
c.c2cMessageSyncProcessor(c2cRsp, pkt.Params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret, nil
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnlinePush.PbC2CMsgSync
|
// OnlinePush.PbC2CMsgSync
|
||||||
func decodeC2CSyncPacket(c *QQClient, info *network.Packet, payload []byte) (any, error) {
|
func decodeC2CSyncPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
m := msg.PbPushMsg{}
|
m := msg.PbPushMsg{}
|
||||||
if err := proto.Unmarshal(payload, &m); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &m); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_ = c.sendPacket(c.buildDeleteOnlinePushPacket(c.Uin, m.Svrip.Unwrap(), m.PushToken, info.SequenceId, nil))
|
_ = c.sendPacket(c.buildDeleteOnlinePushPacket(c.Uin, m.Svrip.Unwrap(), m.PushToken, pkt.SequenceId, nil))
|
||||||
c.commMsgProcessor(m.Msg, info)
|
c.commMsgProcessor(m.Msg, pkt.Params)
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeMsgReadedResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeMsgReadedResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := msg.PbMsgReadedReportResp{}
|
rsp := msg.PbMsgReadedReportResp{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
if len(rsp.GrpReadReport) > 0 {
|
if len(rsp.GrpReadReport) > 0 {
|
||||||
@ -412,9 +412,9 @@ func decodeMsgReadedResponse(_ *QQClient, _ *network.Packet, payload []byte) (an
|
|||||||
var loginNotifyLock sync.Mutex
|
var loginNotifyLock sync.Mutex
|
||||||
|
|
||||||
// StatSvc.SvcReqMSFLoginNotify
|
// StatSvc.SvcReqMSFLoginNotify
|
||||||
func decodeLoginNotifyPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeLoginNotifyPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
request := &jce.RequestPacket{}
|
request := &jce.RequestPacket{}
|
||||||
request.ReadFrom(jce.NewJceReader(payload))
|
request.ReadFrom(jce.NewJceReader(pkt.Payload))
|
||||||
data := &jce.RequestDataVersion2{}
|
data := &jce.RequestDataVersion2{}
|
||||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||||
reader := jce.NewJceReader(data.Map["SvcReqMSFLoginNotify"]["QQService.SvcReqMSFLoginNotify"][1:])
|
reader := jce.NewJceReader(data.Map["SvcReqMSFLoginNotify"]["QQService.SvcReqMSFLoginNotify"][1:])
|
||||||
|
@ -190,9 +190,9 @@ func (c *QQClient) buildSystemMsgFriendActionPacket(reqID, requester int64, acce
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ProfileService.Pb.ReqSystemMsgNew.Group
|
// ProfileService.Pb.ReqSystemMsgNew.Group
|
||||||
func decodeSystemMsgGroupPacket(c *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeSystemMsgGroupPacket(c *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := structmsg.RspSystemMsgNew{}
|
rsp := structmsg.RspSystemMsgNew{}
|
||||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
if err := proto.Unmarshal(pkt.Payload, &rsp); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ret := &GroupSystemMessages{}
|
ret := &GroupSystemMessages{}
|
||||||
|
@ -34,9 +34,9 @@ func (c *QQClient) Translate(src, dst, text string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OidbSvc.0x990
|
// OidbSvc.0x990
|
||||||
func decodeTranslateResponse(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodeTranslateResponse(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
rsp := oidb.TranslateRspBody{}
|
rsp := oidb.TranslateRspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -220,9 +220,9 @@ func (c *QQClient) buildPrivateFileUploadReqPacket(target message.Source, file *
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OfflineFilleHandleSvr.pb_ftn_CMD_REQ_APPLY_UPLOAD_V3-1700
|
// OfflineFilleHandleSvr.pb_ftn_CMD_REQ_APPLY_UPLOAD_V3-1700
|
||||||
func decodePrivateFileUploadReq(_ *QQClient, _ *network.Packet, payload []byte) (any, error) {
|
func decodePrivateFileUploadReq(_ *QQClient, pkt *network.Packet) (any, error) {
|
||||||
var rsp cmd0x346.C346RspBody
|
var rsp cmd0x346.C346RspBody
|
||||||
err := proto.Unmarshal(payload, &rsp)
|
err := proto.Unmarshal(pkt.Payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ const (
|
|||||||
{{end}}
|
{{end}}
|
||||||
)
|
)
|
||||||
|
|
||||||
func peekC2CDecoder(msgType int32) (decoder func(*QQClient, *msg.Message, *network.Packet), decoderType uint8) {
|
func peekC2CDecoder(msgType int32) (decoder func(*QQClient, *msg.Message, network.RequestParams), decoderType uint8) {
|
||||||
switch msgType {
|
switch msgType {
|
||||||
{{range .Decoders}} case {{.Id}}:
|
{{range .Decoders}} case {{.Id}}:
|
||||||
return {{.Func}}, {{.DecoderType}}
|
return {{.Func}}, {{.DecoderType}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user