From a7098f600035a51d044ffe37d03b62d35380721d Mon Sep 17 00:00:00 2001 From: wdvxdr Date: Tue, 1 Mar 2022 22:03:08 +0800 Subject: [PATCH] client: use packOIDBPackageProto --- client/group_file.go | 81 +++++++++++--------------------------------- client/group_info.go | 7 +--- client/translate.go | 9 +---- 3 files changed, 22 insertions(+), 75 deletions(-) diff --git a/client/group_file.go b/client/group_file.go index 05a6b217..eec1dac3 100644 --- a/client/group_file.go +++ b/client/group_file.go @@ -276,7 +276,7 @@ func (fs *GroupFileSystem) DeleteFile(parentFolderID, fileId string, busId int32 } func (c *QQClient) buildGroupFileUploadReqPacket(parentFolderID, fileName string, groupCode, fileSize int64, md5, sha1 []byte) (uint16, []byte) { - b, _ := proto.Marshal(&oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{ + body := &oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{ GroupCode: &groupCode, AppId: proto.Int32(3), BusId: proto.Int32(102), @@ -288,14 +288,8 @@ func (c *QQClient) buildGroupFileUploadReqPacket(parentFolderID, fileName string Sha: sha1, Md5: md5, SupportMultiUpload: proto.Bool(true), - }}) - req := &oidb.OIDBSSOPkg{ - Command: 1750, - ServiceType: 0, - Bodybuffer: b, - ClientVersion: "android 8.4.8", - } - payload, _ := proto.Marshal(req) + }} + payload := c.packOIDBPackageProto(1750, 0, body) return c.uniPacket("OidbSvc.0x6d6_0", payload) } @@ -328,31 +322,19 @@ func (c *QQClient) buildGroupFileListRequestPacket(groupCode int64, folderID str StartIndex: &startIndex, Context: EmptyBytes, }} - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 1752, - ServiceType: 1, - Bodybuffer: b, - ClientVersion: "android 8.4.8", - } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(1752, 1, body) return c.uniPacket("OidbSvc.0x6d8_1", payload) } func (c *QQClient) buildGroupFileCountRequestPacket(groupCode int64) (uint16, []byte) { - body := &oidb.D6D8ReqBody{GroupFileCountReq: &oidb.GetFileCountReqBody{ - GroupCode: proto.Uint64(uint64(groupCode)), - AppId: proto.Uint32(3), - BusId: proto.Uint32(0), - }} - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 1752, - ServiceType: 2, - Bodybuffer: b, - ClientVersion: "android 8.4.8", + body := &oidb.D6D8ReqBody{ + GroupFileCountReq: &oidb.GetFileCountReqBody{ + GroupCode: proto.Uint64(uint64(groupCode)), + AppId: proto.Uint32(3), + BusId: proto.Uint32(0), + }, } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(1752, 2, body) return c.uniPacket("OidbSvc.0x6d8_1", payload) } @@ -361,14 +343,7 @@ func (c *QQClient) buildGroupFileSpaceRequestPacket(groupCode int64) (uint16, [] GroupCode: proto.Uint64(uint64(groupCode)), AppId: proto.Uint32(3), }} - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 1752, - ServiceType: 3, - Bodybuffer: b, - ClientVersion: "android 8.4.8", - } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(1752, 3, body) return c.uniPacket("OidbSvc.0x6d8_1", payload) } @@ -411,13 +386,7 @@ func (c *QQClient) buildGroupFileDownloadReqPacket(groupCode int64, fileId strin FileId: &fileId, }, } - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 1750, - ServiceType: 2, - Bodybuffer: b, - } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(1750, 2, body) return c.uniPacket("OidbSvc.0x6d6_2", payload) } @@ -429,14 +398,7 @@ func (c *QQClient) buildGroupFileDeleteReqPacket(groupCode int64, parentFolderId ParentFolderId: &parentFolderId, FileId: &fileId, }} - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 1750, - ServiceType: 3, - Bodybuffer: b, - ClientVersion: "android 8.4.8", - } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(1750, 3, body) return c.uniPacket("OidbSvc.0x6d6_3", payload) } @@ -470,9 +432,6 @@ func decodeOIDB6d63Response(_ *QQClient, _ *network.IncomingPacketInfo, payload if err != nil { return nil, err } - if rsp.DeleteFileRsp == nil { - return "", nil - } return rsp.DeleteFileRsp.GetClientWording(), nil } @@ -491,14 +450,14 @@ func decodeOIDB6d7Response(_ *QQClient, _ *network.IncomingPacketInfo, payload [ if err != nil { return nil, err } - if rsp.CreateFolderRsp != nil && rsp.CreateFolderRsp.GetRetCode() != 0 { - return nil, errors.Errorf("create folder error: %v", rsp.CreateFolderRsp.GetRetCode()) + if retCode := rsp.CreateFolderRsp.GetRetCode(); retCode != 0 { + return nil, errors.Errorf("create folder error: %v", retCode) } - if rsp.RenameFolderRsp != nil && rsp.RenameFolderRsp.GetRetCode() != 0 { - return nil, errors.Errorf("rename folder error: %v", rsp.CreateFolderRsp.GetRetCode()) + if retCode := rsp.RenameFolderRsp.GetRetCode(); retCode != 0 { + return nil, errors.Errorf("rename folder error: %v", retCode) } - if rsp.DeleteFolderRsp != nil && rsp.DeleteFolderRsp.GetRetCode() != 0 { - return nil, errors.Errorf("delete folder error: %v", rsp.CreateFolderRsp.GetRetCode()) + if retCode := rsp.DeleteFolderRsp.GetRetCode(); retCode != 0 { + return nil, errors.Errorf("delete folder error: %v", retCode) } return nil, nil } diff --git a/client/group_info.go b/client/group_info.go index 968d3f00..ed3e3b8d 100644 --- a/client/group_info.go +++ b/client/group_info.go @@ -116,12 +116,7 @@ func (c *QQClient) buildGroupInfoRequestPacket(groupCode int64) (uint16, []byte) }, PcClientVersion: proto.Uint32(0), } - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 2189, - Bodybuffer: b, - } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(2189, 0, body) return c.uniPacket("OidbSvc.0x88d_0", payload) } diff --git a/client/translate.go b/client/translate.go index 6049aca6..f1ccdbd9 100644 --- a/client/translate.go +++ b/client/translate.go @@ -5,7 +5,6 @@ import ( "github.com/Mrs4s/MiraiGo/client/internal/network" "github.com/Mrs4s/MiraiGo/client/pb/oidb" - "github.com/Mrs4s/MiraiGo/internal/proto" ) func (c *QQClient) buildTranslatePacket(src, dst, text string) (uint16, []byte) { @@ -16,13 +15,7 @@ func (c *QQClient) buildTranslatePacket(src, dst, text string) (uint16, []byte) SrcTextList: []string{text}, }, } - b, _ := proto.Marshal(body) - req := &oidb.OIDBSSOPkg{ - Command: 2448, - ServiceType: 2, - Bodybuffer: b, - } - payload, _ := proto.Marshal(req) + payload := c.packOIDBPackageProto(2448, 2, body) return c.uniPacket("OidbSvc.0x990", payload) }