mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
feature: OfflineFileEvent.
This commit is contained in:
parent
6fc1377e87
commit
6d79c6855f
@ -157,6 +157,7 @@ func NewClientMd5(uin int64, passwordMd5 [16]byte) *QQClient {
|
||||
"SummaryCard.ReqSummaryCard": decodeSummaryCardResponse,
|
||||
"PttCenterSvr.ShortVideoDownReq": decodePttShortVideoDownResponse,
|
||||
"LightAppSvc.mini_app_info.GetAppInfoById": decodeAppInfoResponse,
|
||||
"OfflineFilleHandleSvr.pb_ftn_CMD_REQ_APPLY_DOWNLOAD-1200": decodeOfflineFileDownloadResponse,
|
||||
},
|
||||
sigInfo: &loginSigInfo{},
|
||||
requestPacketRequestId: 1921334513,
|
||||
|
@ -342,6 +342,24 @@ func decodeMessageSvcPacket(c *QQClient, _ uint16, payload []byte) (interface{},
|
||||
case 187:
|
||||
_, pkt := c.buildSystemMsgNewFriendPacket()
|
||||
_ = c.send(pkt)
|
||||
case 529:
|
||||
sub4 := msg.SubMsgType0X4Body{}
|
||||
if err := proto.Unmarshal(message.Body.MsgContent, &sub4); err != nil {
|
||||
c.Error("unmarshal sub msg 0x4 error: %v", err)
|
||||
continue
|
||||
}
|
||||
if sub4.NotOnlineFile != nil {
|
||||
rsp, err := c.sendAndWait(c.buildOfflineFileDownloadRequestPacket(sub4.NotOnlineFile.FileUuid)) // offline_file.go
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
c.dispatchOfflineFileEvent(&OfflineFileEvent{
|
||||
FileName: string(sub4.NotOnlineFile.FileName),
|
||||
FileSize: sub4.NotOnlineFile.FileSize,
|
||||
Sender: message.Head.FromUin,
|
||||
DownloadUrl: rsp.(string),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -194,6 +194,13 @@ type (
|
||||
Friend *FriendInfo
|
||||
}
|
||||
|
||||
OfflineFileEvent struct {
|
||||
FileName string
|
||||
FileSize int64
|
||||
Sender int64
|
||||
DownloadUrl string
|
||||
}
|
||||
|
||||
OcrResponse struct {
|
||||
Texts []*TextDetection `json:"texts"`
|
||||
Language string `json:"language"`
|
||||
|
@ -27,6 +27,7 @@ type eventHandlers struct {
|
||||
logHandlers []func(*QQClient, *LogEvent)
|
||||
serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent)
|
||||
notifyHandlers []func(*QQClient, IGroupNotifyEvent)
|
||||
offlineFileHandlers []func(*QQClient, *OfflineFileEvent)
|
||||
groupMessageReceiptHandlers sync.Map
|
||||
}
|
||||
|
||||
@ -110,6 +111,10 @@ func (c *QQClient) OnServerUpdated(f func(*QQClient, *ServerUpdatedEvent)) {
|
||||
c.eventHandlers.serverUpdatedHandlers = append(c.eventHandlers.serverUpdatedHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnReceivedOfflineFile(f func(*QQClient, *OfflineFileEvent)) {
|
||||
c.eventHandlers.offlineFileHandlers = append(c.eventHandlers.offlineFileHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnLog(f func(*QQClient, *LogEvent)) {
|
||||
c.eventHandlers.logHandlers = append(c.eventHandlers.logHandlers, f)
|
||||
}
|
||||
@ -337,6 +342,17 @@ func (c *QQClient) dispatchDisconnectEvent(e *ClientDisconnectedEvent) {
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) dispatchOfflineFileEvent(e *OfflineFileEvent) {
|
||||
if e == nil {
|
||||
return
|
||||
}
|
||||
for _, f := range c.eventHandlers.offlineFileHandlers {
|
||||
cover(func() {
|
||||
f(c, e)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) dispatchLogEvent(e *LogEvent) {
|
||||
if e == nil {
|
||||
return
|
||||
|
47
client/offline_file.go
Normal file
47
client/offline_file.go
Normal file
@ -0,0 +1,47 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/Mrs4s/MiraiGo/client/pb/cmd0x346"
|
||||
"github.com/Mrs4s/MiraiGo/protocol/packets"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
func (c *QQClient) buildOfflineFileDownloadRequestPacket(uuid []byte) (uint16, []byte) {
|
||||
seq := c.nextSeq()
|
||||
req := &cmd0x346.ReqBody{
|
||||
Cmd: 1200,
|
||||
Seq: int32(seq),
|
||||
BusinessId: 3,
|
||||
ClientType: 104,
|
||||
ApplyDownloadReq: &cmd0x346.ApplyDownloadReq{
|
||||
Uin: c.Uin,
|
||||
Uuid: uuid,
|
||||
OwnerType: 2,
|
||||
},
|
||||
ExtensionReq: &cmd0x346.ExtensionReq{
|
||||
DownloadUrlType: 1,
|
||||
},
|
||||
}
|
||||
payload, _ := proto.Marshal(req)
|
||||
packet := packets.BuildUniPacket(c.Uin, seq, "OfflineFilleHandleSvr.pb_ftn_CMD_REQ_APPLY_DOWNLOAD-1200", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload)
|
||||
return seq, packet
|
||||
}
|
||||
|
||||
func decodeOfflineFileDownloadResponse(c *QQClient, _ uint16, payload []byte) (interface{}, error) {
|
||||
rsp := cmd0x346.RspBody{}
|
||||
if err := proto.Unmarshal(payload, &rsp); err != nil {
|
||||
c.Error("unmarshal cmd0x346 rsp body error: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
if rsp.ApplyDownloadRsp == nil {
|
||||
c.Error("decode apply download 1200 error: apply rsp is nil.")
|
||||
return nil, errors.New("apply rsp is nil")
|
||||
}
|
||||
if rsp.ApplyDownloadRsp.RetCode != 0 {
|
||||
c.Error("decode apply download 1200 error: %v", rsp.ApplyDownloadRsp.RetCode)
|
||||
return nil, errors.New(fmt.Sprint(rsp.ApplyDownloadRsp.RetCode))
|
||||
}
|
||||
return "http://" + rsp.ApplyDownloadRsp.DownloadInfo.DownloadDomain + rsp.ApplyDownloadRsp.DownloadInfo.DownloadUrl, nil
|
||||
}
|
6178
client/pb/cmd0x346/cmd0x346.pb.go
Normal file
6178
client/pb/cmd0x346/cmd0x346.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
441
client/pb/cmd0x346/cmd0x346.proto
Normal file
441
client/pb/cmd0x346/cmd0x346.proto
Normal file
@ -0,0 +1,441 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = ".;cmd0x346";
|
||||
|
||||
message ApplyCleanTrafficRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
}
|
||||
message ApplyCopyFromReq {
|
||||
int64 srcUin = 10;
|
||||
int64 srcGroup = 20;
|
||||
int32 srcSvcid = 30;
|
||||
bytes srcParentfolder = 40;
|
||||
bytes srcUuid = 50;
|
||||
bytes fileMd5 = 60;
|
||||
int64 dstUin = 70;
|
||||
int64 fileSize = 80;
|
||||
string fileName = 90;
|
||||
int32 dangerLevel = 100;
|
||||
int64 totalSpace = 110;
|
||||
}
|
||||
message ApplyCopyFromRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
bytes uuid = 30;
|
||||
int64 totalSpace = 40;
|
||||
}
|
||||
message ApplyCopyToReq {
|
||||
int64 dstId = 10;
|
||||
int64 dstUin = 20;
|
||||
int32 dstSvcid = 30;
|
||||
int64 srcUin = 40;
|
||||
int64 fileSize = 50;
|
||||
string fileName = 60;
|
||||
string localFilepath = 70;
|
||||
bytes uuid = 80;
|
||||
}
|
||||
message ApplyCopyToRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
string fileKey = 30;
|
||||
}
|
||||
message ApplyDownloadAbsReq {
|
||||
int64 uin = 10;
|
||||
bytes uuid = 20;
|
||||
}
|
||||
message ApplyDownloadAbsRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
DownloadInfo downloadInfo = 30;
|
||||
}
|
||||
message ApplyDownloadReq {
|
||||
int64 uin = 10;
|
||||
bytes uuid = 20;
|
||||
int32 ownerType = 30;
|
||||
int32 extIntype = 500;
|
||||
}
|
||||
message ApplyDownloadRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
DownloadInfo downloadInfo = 30;
|
||||
FileInfo fileInfo = 40;
|
||||
}
|
||||
message ApplyForwardFileReq {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
bytes uuid = 30;
|
||||
int32 dangerLevel = 40;
|
||||
int64 totalSpace = 50;
|
||||
}
|
||||
message ApplyForwardFileRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int64 totalSpace = 30;
|
||||
int64 usedSpace = 40;
|
||||
bytes uuid = 50;
|
||||
}
|
||||
message ApplyGetTrafficReq {
|
||||
}
|
||||
message ApplyGetTrafficRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int64 useFileSize = 30;
|
||||
int32 useFileNum = 40;
|
||||
int64 allFileSize = 50;
|
||||
int32 allFileNum = 60;
|
||||
}
|
||||
message ApplyListDownloadReq {
|
||||
int64 uin = 10;
|
||||
int32 beginIndex = 20;
|
||||
int32 reqCount = 30;
|
||||
}
|
||||
message ApplyListDownloadRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int32 totalCount = 30;
|
||||
int32 beginIndex = 40;
|
||||
int32 rspCount = 50;
|
||||
int32 isEnd = 60;
|
||||
repeated FileInfo fileList = 70;
|
||||
}
|
||||
message ApplyUploadHitReq {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
int64 fileSize = 30;
|
||||
string fileName = 40;
|
||||
bytes bytes_10mMd5 = 50;
|
||||
string localFilepath = 60;
|
||||
int32 dangerLevel = 70;
|
||||
int64 totalSpace = 80;
|
||||
}
|
||||
message ApplyUploadHitReqV2 {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
int64 fileSize = 30;
|
||||
string fileName = 40;
|
||||
bytes bytes_10mMd5 = 50;
|
||||
bytes bytes_3sha = 60;
|
||||
bytes sha = 70;
|
||||
string localFilepath = 80;
|
||||
int32 dangerLevel = 90;
|
||||
int64 totalSpace = 100;
|
||||
}
|
||||
message ApplyUploadHitReqV3 {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
int64 fileSize = 30;
|
||||
string fileName = 40;
|
||||
bytes bytes_10mMd5 = 50;
|
||||
bytes sha = 60;
|
||||
string localFilepath = 70;
|
||||
int32 dangerLevel = 80;
|
||||
int64 totalSpace = 90;
|
||||
}
|
||||
message ApplyUploadHitRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
string uploadIp = 30;
|
||||
int32 uploadPort = 40;
|
||||
string uploadDomain = 50;
|
||||
bytes uuid = 60;
|
||||
bytes uploadKey = 70;
|
||||
int64 totalSpace = 80;
|
||||
int64 usedSpace = 90;
|
||||
}
|
||||
message ApplyUploadHitRspV2 {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
string uploadIp = 30;
|
||||
int32 uploadPort = 40;
|
||||
string uploadDomain = 50;
|
||||
bytes uuid = 60;
|
||||
bytes uploadKey = 70;
|
||||
int64 totalSpace = 80;
|
||||
int64 usedSpace = 90;
|
||||
}
|
||||
message ApplyUploadHitRspV3 {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
string uploadIp = 30;
|
||||
int32 uploadPort = 40;
|
||||
string uploadDomain = 50;
|
||||
bytes uuid = 60;
|
||||
bytes uploadKey = 70;
|
||||
int64 totalSpace = 80;
|
||||
int64 usedSpace = 90;
|
||||
}
|
||||
message ApplyUploadReq {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
int32 fileType = 30;
|
||||
int64 fileSize = 40;
|
||||
string fileName = 50;
|
||||
bytes bytes_10mMd5 = 60;
|
||||
string localFilepath = 70;
|
||||
int32 dangerLevel = 80;
|
||||
int64 totalSpace = 90;
|
||||
}
|
||||
message ApplyUploadReqV2 {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
int64 fileSize = 30;
|
||||
string fileName = 40;
|
||||
bytes bytes_10mMd5 = 50;
|
||||
bytes bytes_3sha = 60;
|
||||
string localFilepath = 70;
|
||||
int32 dangerLevel = 80;
|
||||
int64 totalSpace = 90;
|
||||
}
|
||||
message ApplyUploadReqV3 {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
int64 fileSize = 30;
|
||||
string fileName = 40;
|
||||
bytes bytes_10mMd5 = 50;
|
||||
bytes sha = 60;
|
||||
string localFilepath = 70;
|
||||
int32 dangerLevel = 80;
|
||||
int64 totalSpace = 90;
|
||||
}
|
||||
message ApplyUploadRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int64 totalSpace = 30;
|
||||
int64 usedSpace = 40;
|
||||
int64 uploadedSize = 50;
|
||||
string uploadIp = 60;
|
||||
string uploadDomain = 70;
|
||||
int32 uploadPort = 80;
|
||||
bytes uuid = 90;
|
||||
bytes uploadKey = 100;
|
||||
bool boolFileExist = 110;
|
||||
int32 packSize = 120;
|
||||
repeated string uploadipList = 130;
|
||||
}
|
||||
message ApplyUploadRspV2 {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int64 totalSpace = 30;
|
||||
int64 usedSpace = 40;
|
||||
int64 uploadedSize = 50;
|
||||
string uploadIp = 60;
|
||||
string uploadDomain = 70;
|
||||
int32 uploadPort = 80;
|
||||
bytes uuid = 90;
|
||||
bytes uploadKey = 100;
|
||||
bool boolFileExist = 110;
|
||||
int32 packSize = 120;
|
||||
repeated string uploadipList = 130;
|
||||
int32 httpsvrApiVer = 140;
|
||||
bytes sha = 141;
|
||||
}
|
||||
message ApplyUploadRspV3 {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int64 totalSpace = 30;
|
||||
int64 usedSpace = 40;
|
||||
int64 uploadedSize = 50;
|
||||
string uploadIp = 60;
|
||||
string uploadDomain = 70;
|
||||
int32 uploadPort = 80;
|
||||
bytes uuid = 90;
|
||||
bytes uploadKey = 100;
|
||||
bool boolFileExist = 110;
|
||||
int32 packSize = 120;
|
||||
repeated string uploadipList = 130;
|
||||
}
|
||||
message DelMessageReq {
|
||||
int64 uinSender = 1;
|
||||
int64 uinReceiver = 2;
|
||||
int32 time = 10;
|
||||
int32 random = 20;
|
||||
int32 seqNo = 30;
|
||||
}
|
||||
message DeleteFileReq {
|
||||
int64 uin = 10;
|
||||
int64 peerUin = 20;
|
||||
int32 deleteType = 30;
|
||||
bytes uuid = 40;
|
||||
}
|
||||
message DeleteFileRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
}
|
||||
message DownloadInfo {
|
||||
bytes downloadKey = 10;
|
||||
string downloadIp = 20;
|
||||
string downloadDomain = 30;
|
||||
int32 port = 40;
|
||||
string downloadUrl = 50;
|
||||
repeated string downloadipList = 60;
|
||||
string cookie = 70;
|
||||
}
|
||||
message DownloadSuccReq {
|
||||
int64 uin = 10;
|
||||
bytes uuid = 20;
|
||||
}
|
||||
message DownloadSuccRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
int32 downStat = 30;
|
||||
}
|
||||
message ExtensionReq {
|
||||
int64 id = 1;
|
||||
int64 type = 2;
|
||||
string dstPhonenum = 3;
|
||||
int32 phoneConvertType = 4;
|
||||
bytes sig = 20;
|
||||
int64 routeId = 100;
|
||||
DelMessageReq delMessageReq = 90100;
|
||||
int32 downloadUrlType = 90200;
|
||||
int32 pttFormat = 90300;
|
||||
int32 isNeedInnerIp = 90400;
|
||||
int32 netType = 90500;
|
||||
int32 voiceType = 90600;
|
||||
int32 fileType = 90700;
|
||||
int32 pttTime = 90800;
|
||||
}
|
||||
message ExtensionRsp {
|
||||
}
|
||||
message FileInfo {
|
||||
int64 uin = 1;
|
||||
int32 dangerEvel = 2;
|
||||
int64 fileSize = 3;
|
||||
int32 lifeTime = 4;
|
||||
int32 uploadTime = 5;
|
||||
bytes uuid = 6;
|
||||
string fileName = 7;
|
||||
int32 absFileType = 90;
|
||||
bytes bytes_10mMd5 = 100;
|
||||
bytes sha = 101;
|
||||
int32 clientType = 110;
|
||||
int64 ownerUin = 120;
|
||||
int64 peerUin = 121;
|
||||
int32 expireTime = 130;
|
||||
}
|
||||
message FileQueryReq {
|
||||
int64 uin = 10;
|
||||
bytes uuid = 20;
|
||||
}
|
||||
message FileQueryRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
FileInfo fileInfo = 30;
|
||||
}
|
||||
message RecallFileReq {
|
||||
int64 uin = 1;
|
||||
bytes uuid = 2;
|
||||
}
|
||||
message RecallFileRsp {
|
||||
int32 retCode = 1;
|
||||
string retMsg = 2;
|
||||
}
|
||||
message RecvListQueryReq {
|
||||
int64 uin = 1;
|
||||
int32 beginIndex = 2;
|
||||
int32 reqCount = 3;
|
||||
}
|
||||
message RecvListQueryRsp {
|
||||
int32 retCode = 1;
|
||||
string retMsg = 2;
|
||||
int32 fileTotCount = 3;
|
||||
int32 beginIndex = 4;
|
||||
int32 rspFileCount = 5;
|
||||
int32 isEnd = 6;
|
||||
repeated FileInfo fileList = 7;
|
||||
}
|
||||
message RenewFileReq {
|
||||
int64 uin = 1;
|
||||
bytes uuid = 2;
|
||||
int32 addTtl = 3;
|
||||
}
|
||||
message RenewFileRsp {
|
||||
int32 retCode = 1;
|
||||
string retMsg = 2;
|
||||
}
|
||||
message ReqBody {
|
||||
int32 cmd = 1;
|
||||
int32 seq = 2;
|
||||
RecvListQueryReq recvListQueryReq = 3;
|
||||
SendListQueryReq sendListQueryReq = 4;
|
||||
RenewFileReq renewFileReq = 5;
|
||||
RecallFileReq recallFileReq = 6;
|
||||
ApplyUploadReq applyUploadReq = 7;
|
||||
ApplyUploadHitReq applyUploadHitReq = 8;
|
||||
ApplyForwardFileReq applyForwardFileReq = 9;
|
||||
UploadSuccReq uploadSuccReq = 10;
|
||||
DeleteFileReq deleteFileReq = 11;
|
||||
DownloadSuccReq downloadSuccReq = 12;
|
||||
ApplyDownloadAbsReq applyDownloadAbsReq = 13;
|
||||
ApplyDownloadReq applyDownloadReq = 14;
|
||||
ApplyListDownloadReq applyListDownloadReq = 15;
|
||||
FileQueryReq fileQueryReq = 16;
|
||||
ApplyCopyFromReq applyCopyFromReq = 17;
|
||||
ApplyUploadReqV2 applyUploadReqV2 = 18;
|
||||
ApplyUploadReqV3 applyUploadReqV3 = 19;
|
||||
ApplyUploadHitReqV2 applyUploadHitReqV2 = 20;
|
||||
ApplyUploadHitReqV3 applyUploadHitReqV3 = 21;
|
||||
int32 businessId = 101;
|
||||
int32 clientType = 102;
|
||||
ApplyCopyToReq applyCopyToReq = 90000;
|
||||
//ApplyCleanTrafficReq applyCleanTrafficReq = 90001; empty message
|
||||
ApplyGetTrafficReq applyGetTrafficReq = 90002;
|
||||
ExtensionReq extensionReq = 99999;
|
||||
}
|
||||
message RspBody {
|
||||
int32 cmd = 1;
|
||||
int32 seq = 2;
|
||||
RecvListQueryRsp recvListQueryRsp = 3;
|
||||
SendListQueryRsp sendListQueryRsp = 4;
|
||||
RenewFileRsp renewFileRsp = 5;
|
||||
RecallFileRsp recallFileRsp = 6;
|
||||
ApplyUploadRsp applyUploadRsp = 7;
|
||||
ApplyUploadHitRsp applyUploadHitRsp = 8;
|
||||
ApplyForwardFileRsp applyForwardFileRsp = 9;
|
||||
UploadSuccRsp uploadSuccRsp = 10;
|
||||
DeleteFileRsp deleteFileRsp = 11;
|
||||
DownloadSuccRsp downloadSuccRsp = 12;
|
||||
ApplyDownloadAbsRsp applyDownloadAbsRsp = 13;
|
||||
ApplyDownloadRsp applyDownloadRsp = 14;
|
||||
ApplyListDownloadRsp applyListDownloadRsp = 15;
|
||||
FileQueryRsp fileQueryRsp = 16;
|
||||
ApplyCopyFromRsp applyCopyFromRsp = 17;
|
||||
ApplyUploadRspV2 applyUploadRspV2 = 18;
|
||||
ApplyUploadRspV3 applyUploadRspV3 = 19;
|
||||
ApplyUploadHitRspV2 applyUploadHitRspV2 = 20;
|
||||
ApplyUploadHitRspV3 applyUploadHitRspV3 = 21;
|
||||
int32 businessId = 101;
|
||||
int32 clientType = 102;
|
||||
ApplyCopyToRsp applyCopyToRsp = 90000;
|
||||
ApplyCleanTrafficRsp applyCleanTrafficRsp = 90001;
|
||||
ApplyGetTrafficRsp applyGetTrafficRsp = 90002;
|
||||
ExtensionRsp extensionRsp = 99999;
|
||||
|
||||
}
|
||||
message SendListQueryReq {
|
||||
int64 uin = 1;
|
||||
int32 beginIndex = 2;
|
||||
int32 reqCount = 3;
|
||||
}
|
||||
message SendListQueryRsp {
|
||||
int32 retCode = 1;
|
||||
string retMsg = 2;
|
||||
int32 fileTotCount = 3;
|
||||
int32 beginIndex = 4;
|
||||
int32 rspFileCount = 5;
|
||||
int32 isEnd = 6;
|
||||
int64 totLimit = 7;
|
||||
int64 usedLimit = 8;
|
||||
repeated FileInfo fileList = 9;
|
||||
}
|
||||
message UploadSuccReq {
|
||||
int64 senderUin = 10;
|
||||
int64 recverUin = 20;
|
||||
bytes uuid = 30;
|
||||
}
|
||||
message UploadSuccRsp {
|
||||
int32 retCode = 10;
|
||||
string retMsg = 20;
|
||||
FileInfo fileInfo = 30;
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.13.0
|
||||
// protoc v3.11.4
|
||||
// source: msg.proto
|
||||
|
||||
package msg
|
||||
@ -6073,6 +6073,69 @@ func (x *MsgElemInfoServtype3) GetFlashC2CPic() *NotOnlineImage {
|
||||
return nil
|
||||
}
|
||||
|
||||
type SubMsgType0X4Body struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
NotOnlineFile *NotOnlineFile `protobuf:"bytes,1,opt,name=notOnlineFile,proto3" json:"notOnlineFile,omitempty"`
|
||||
MsgTime uint32 `protobuf:"varint,2,opt,name=msgTime,proto3" json:"msgTime,omitempty"`
|
||||
OnlineFileForPolyToOffline uint32 `protobuf:"varint,3,opt,name=onlineFileForPolyToOffline,proto3" json:"onlineFileForPolyToOffline,omitempty"` // fileImageInfo
|
||||
}
|
||||
|
||||
func (x *SubMsgType0X4Body) Reset() {
|
||||
*x = SubMsgType0X4Body{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_msg_proto_msgTypes[57]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *SubMsgType0X4Body) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*SubMsgType0X4Body) ProtoMessage() {}
|
||||
|
||||
func (x *SubMsgType0X4Body) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_msg_proto_msgTypes[57]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use SubMsgType0X4Body.ProtoReflect.Descriptor instead.
|
||||
func (*SubMsgType0X4Body) Descriptor() ([]byte, []int) {
|
||||
return file_msg_proto_rawDescGZIP(), []int{57}
|
||||
}
|
||||
|
||||
func (x *SubMsgType0X4Body) GetNotOnlineFile() *NotOnlineFile {
|
||||
if x != nil {
|
||||
return x.NotOnlineFile
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SubMsgType0X4Body) GetMsgTime() uint32 {
|
||||
if x != nil {
|
||||
return x.MsgTime
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *SubMsgType0X4Body) GetOnlineFileForPolyToOffline() uint32 {
|
||||
if x != nil {
|
||||
return x.OnlineFileForPolyToOffline
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type ResvAttr struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -6084,7 +6147,7 @@ type ResvAttr struct {
|
||||
func (x *ResvAttr) Reset() {
|
||||
*x = ResvAttr{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_msg_proto_msgTypes[57]
|
||||
mi := &file_msg_proto_msgTypes[58]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -6097,7 +6160,7 @@ func (x *ResvAttr) String() string {
|
||||
func (*ResvAttr) ProtoMessage() {}
|
||||
|
||||
func (x *ResvAttr) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_msg_proto_msgTypes[57]
|
||||
mi := &file_msg_proto_msgTypes[58]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -6110,7 +6173,7 @@ func (x *ResvAttr) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use ResvAttr.ProtoReflect.Descriptor instead.
|
||||
func (*ResvAttr) Descriptor() ([]byte, []int) {
|
||||
return file_msg_proto_rawDescGZIP(), []int{57}
|
||||
return file_msg_proto_rawDescGZIP(), []int{58}
|
||||
}
|
||||
|
||||
func (x *ResvAttr) GetImageShow() *AnimationImageShow {
|
||||
@ -6132,7 +6195,7 @@ type AnimationImageShow struct {
|
||||
func (x *AnimationImageShow) Reset() {
|
||||
*x = AnimationImageShow{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_msg_proto_msgTypes[58]
|
||||
mi := &file_msg_proto_msgTypes[59]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -6145,7 +6208,7 @@ func (x *AnimationImageShow) String() string {
|
||||
func (*AnimationImageShow) ProtoMessage() {}
|
||||
|
||||
func (x *AnimationImageShow) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_msg_proto_msgTypes[58]
|
||||
mi := &file_msg_proto_msgTypes[59]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -6158,7 +6221,7 @@ func (x *AnimationImageShow) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use AnimationImageShow.ProtoReflect.Descriptor instead.
|
||||
func (*AnimationImageShow) Descriptor() ([]byte, []int) {
|
||||
return file_msg_proto_rawDescGZIP(), []int{58}
|
||||
return file_msg_proto_rawDescGZIP(), []int{59}
|
||||
}
|
||||
|
||||
func (x *AnimationImageShow) GetEffectId() int32 {
|
||||
@ -7135,20 +7198,31 @@ var file_msg_proto_rawDesc = []byte{
|
||||
0x61, 0x73, 0x68, 0x5f, 0x63, 0x32, 0x63, 0x5f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x0f, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61,
|
||||
0x67, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x43, 0x32, 0x63, 0x50, 0x69, 0x63, 0x22,
|
||||
0x3e, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x76, 0x41, 0x74, 0x74, 0x72, 0x12, 0x32, 0x0a, 0x0a, 0x69,
|
||||
0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x13, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65,
|
||||
0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x22,
|
||||
0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67,
|
||||
0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74,
|
||||
0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
|
||||
0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x61, 0x6e, 0x69,
|
||||
0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x2a, 0x2e, 0x0a, 0x08, 0x53,
|
||||
0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x52, 0x54,
|
||||
0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4d, 0x45, 0x10,
|
||||
0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x42, 0x07, 0x5a, 0x05, 0x2e,
|
||||
0x3b, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0xa3, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x30, 0x78,
|
||||
0x34, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e,
|
||||
0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f,
|
||||
0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d,
|
||||
0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73,
|
||||
0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46,
|
||||
0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c,
|
||||
0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e,
|
||||
0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66,
|
||||
0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x76, 0x41, 0x74, 0x74,
|
||||
0x72, 0x12, 0x32, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18,
|
||||
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67,
|
||||
0x65, 0x53, 0x68, 0x6f, 0x77, 0x22, 0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65,
|
||||
0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
|
||||
0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x0e, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61,
|
||||
0x6d, 0x2a, 0x2e, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a,
|
||||
0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x54,
|
||||
0x49, 0x4e, 0x55, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10,
|
||||
0x02, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x3b, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -7164,7 +7238,7 @@ func file_msg_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||
var file_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 59)
|
||||
var file_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 60)
|
||||
var file_msg_proto_goTypes = []interface{}{
|
||||
(SyncFlag)(0), // 0: SyncFlag
|
||||
(*GetMessageRequest)(nil), // 1: GetMessageRequest
|
||||
@ -7224,8 +7298,9 @@ var file_msg_proto_goTypes = []interface{}{
|
||||
(*PbMultiMsgNew)(nil), // 55: PbMultiMsgNew
|
||||
(*PbMultiMsgTransmit)(nil), // 56: PbMultiMsgTransmit
|
||||
(*MsgElemInfoServtype3)(nil), // 57: MsgElemInfo_servtype3
|
||||
(*ResvAttr)(nil), // 58: ResvAttr
|
||||
(*AnimationImageShow)(nil), // 59: AnimationImageShow
|
||||
(*SubMsgType0X4Body)(nil), // 58: SubMsgType0x4Body
|
||||
(*ResvAttr)(nil), // 59: ResvAttr
|
||||
(*AnimationImageShow)(nil), // 60: AnimationImageShow
|
||||
}
|
||||
var file_msg_proto_depIdxs = []int32{
|
||||
0, // 0: GetMessageRequest.syncFlag:type_name -> SyncFlag
|
||||
@ -7289,12 +7364,13 @@ var file_msg_proto_depIdxs = []int32{
|
||||
54, // 58: PbMultiMsgTransmit.pbItemList:type_name -> PbMultiMsgItem
|
||||
41, // 59: MsgElemInfo_servtype3.flash_troop_pic:type_name -> CustomFace
|
||||
31, // 60: MsgElemInfo_servtype3.flash_c2c_pic:type_name -> NotOnlineImage
|
||||
59, // 61: ResvAttr.image_show:type_name -> AnimationImageShow
|
||||
62, // [62:62] is the sub-list for method output_type
|
||||
62, // [62:62] is the sub-list for method input_type
|
||||
62, // [62:62] is the sub-list for extension type_name
|
||||
62, // [62:62] is the sub-list for extension extendee
|
||||
0, // [0:62] is the sub-list for field type_name
|
||||
32, // 61: SubMsgType0x4Body.notOnlineFile:type_name -> NotOnlineFile
|
||||
60, // 62: ResvAttr.image_show:type_name -> AnimationImageShow
|
||||
63, // [63:63] is the sub-list for method output_type
|
||||
63, // [63:63] is the sub-list for method input_type
|
||||
63, // [63:63] is the sub-list for extension type_name
|
||||
63, // [63:63] is the sub-list for extension extendee
|
||||
0, // [0:63] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_msg_proto_init() }
|
||||
@ -7988,7 +8064,7 @@ func file_msg_proto_init() {
|
||||
}
|
||||
}
|
||||
file_msg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ResvAttr); i {
|
||||
switch v := v.(*SubMsgType0X4Body); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@ -8000,6 +8076,18 @@ func file_msg_proto_init() {
|
||||
}
|
||||
}
|
||||
file_msg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ResvAttr); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_msg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AnimationImageShow); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -8018,7 +8106,7 @@ func file_msg_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_msg_proto_rawDesc,
|
||||
NumEnums: 1,
|
||||
NumMessages: 59,
|
||||
NumMessages: 60,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -698,11 +698,18 @@ message PbMultiMsgTransmit {
|
||||
repeated PbMultiMsgItem pbItemList = 2;
|
||||
}
|
||||
|
||||
message MsgElemInfo_servtype3{
|
||||
message MsgElemInfo_servtype3 {
|
||||
CustomFace flash_troop_pic = 1;
|
||||
NotOnlineImage flash_c2c_pic = 2;
|
||||
}
|
||||
|
||||
message SubMsgType0x4Body {
|
||||
NotOnlineFile notOnlineFile = 1;
|
||||
uint32 msgTime = 2;
|
||||
uint32 onlineFileForPolyToOffline = 3;
|
||||
// fileImageInfo
|
||||
}
|
||||
|
||||
enum SyncFlag {
|
||||
START = 0;
|
||||
CONTINUME = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user