1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 19:17:38 +08:00

Merge pull request #316 from tom-snow/master

完善群文件系统移动与重命名文件API
This commit is contained in:
Mrs4s 2023-03-19 17:22:03 +08:00 committed by GitHub
commit 62d60f1322
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 77 additions and 3 deletions

View File

@ -55,6 +55,8 @@ func init() {
decoders["OidbSvc.0x6d6_0"] = decodeOIDB6d60Response decoders["OidbSvc.0x6d6_0"] = decodeOIDB6d60Response
decoders["OidbSvc.0x6d6_2"] = decodeOIDB6d62Response decoders["OidbSvc.0x6d6_2"] = decodeOIDB6d62Response
decoders["OidbSvc.0x6d6_3"] = decodeOIDB6d63Response decoders["OidbSvc.0x6d6_3"] = decodeOIDB6d63Response
decoders["OidbSvc.0x6d6_4"] = decodeOIDB6d64Response
decoders["OidbSvc.0x6d6_5"] = decodeOIDB6d65Response
decoders["OidbSvc.0x6d7_0"] = decodeOIDB6d7Response decoders["OidbSvc.0x6d7_0"] = decodeOIDB6d7Response
decoders["OidbSvc.0x6d7_1"] = decodeOIDB6d7Response decoders["OidbSvc.0x6d7_1"] = decodeOIDB6d7Response
decoders["OidbSvc.0x6d7_2"] = decodeOIDB6d7Response decoders["OidbSvc.0x6d7_2"] = decodeOIDB6d7Response
@ -207,6 +209,26 @@ func (fs *GroupFileSystem) DeleteFile(parentFolderID, fileId string, busId int32
return i.(string) return i.(string)
} }
// RenameFile 重命名群文件,需要管理权限或者是自己发的文件.
// 返回错误, 空为重命名成功
func (fs *GroupFileSystem) RenameFile(parentFolderID, fileId string, busId int32, newFileName string) string {
i, err := fs.client.sendAndWait(fs.client.buildGroupFileRenameReqPacket(fs.GroupCode, parentFolderID, fileId, busId, newFileName))
if err != nil {
return err.Error()
}
return i.(string)
}
// MoveFile 移动群文件,需要管理权限或者是自己发的文件.
// 返回错误, 空为移动成功
func (fs *GroupFileSystem) MoveFile(parentFolderID, fileId string, busId int32, DestFolderId string) string {
i, err := fs.client.sendAndWait(fs.client.buildGroupFileMoveReqPacket(fs.GroupCode, parentFolderID, fileId, busId, DestFolderId))
if err != nil {
return err.Error()
}
return i.(string)
}
func (c *QQClient) buildGroupFileUploadReqPacket(groupCode int64, file *LocalFile) (uint16, []byte) { func (c *QQClient) buildGroupFileUploadReqPacket(groupCode int64, file *LocalFile) (uint16, []byte) {
body := &oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{ body := &oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{
GroupCode: proto.Some(groupCode), GroupCode: proto.Some(groupCode),
@ -334,6 +356,33 @@ func (c *QQClient) buildGroupFileDeleteReqPacket(groupCode int64, parentFolderId
return c.uniPacket("OidbSvc.0x6d6_3", payload) return c.uniPacket("OidbSvc.0x6d6_3", payload)
} }
func (c *QQClient) buildGroupFileRenameReqPacket(groupCode int64, parentFolderId string, fileId string, busId int32, newFileName string) (uint16, []byte) {
body := &oidb.D6D6ReqBody{RenameFileReq: &oidb.RenameFileReqBody{
GroupCode: proto.Some(groupCode),
AppId: proto.Int32(5),
BusId: proto.Some(busId),
FileId: proto.Some(fileId),
ParentFolderId: proto.Some(parentFolderId),
NewFileName: proto.Some(newFileName),
}}
payload := c.packOIDBPackageProto(1750, 4, body)
return c.uniPacket("OidbSvc.0x6d6_4", payload)
}
func (c *QQClient) buildGroupFileMoveReqPacket(groupCode int64, parentFolderId string, fileId string, busId int32, DestFolderId string) (uint16, []byte) {
body := &oidb.D6D6ReqBody{MoveFileReq: &oidb.MoveFileReqBody{
GroupCode: proto.Some(groupCode),
AppId: proto.Int32(5),
BusId: proto.Some(busId),
FileId: proto.Some(fileId),
ParentFolderId: proto.Some(parentFolderId),
DestFolderId: proto.Some(DestFolderId),
}}
payload := c.packOIDBPackageProto(1750, 5, body)
return c.uniPacket("OidbSvc.0x6d6_5", payload)
}
// GroupFileListRespPacket
func decodeOIDB6d81Response(_ *QQClient, pkt *network.Packet) (any, error) { func decodeOIDB6d81Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D8RspBody{} rsp := oidb.D6D8RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp) err := unpackOIDBPackage(pkt.Payload, &rsp)
@ -343,7 +392,7 @@ func decodeOIDB6d81Response(_ *QQClient, pkt *network.Packet) (any, error) {
return &rsp, nil return &rsp, nil
} }
// OidbSvc.0x6d6_2 // OidbSvc.0x6d6_2 GroupFileDownloadRespPacket
func decodeOIDB6d62Response(_ *QQClient, pkt *network.Packet) (any, error) { func decodeOIDB6d62Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D6RspBody{} rsp := oidb.D6D6RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp) err := unpackOIDBPackage(pkt.Payload, &rsp)
@ -358,6 +407,7 @@ func decodeOIDB6d62Response(_ *QQClient, pkt *network.Packet) (any, error) {
return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil
} }
// GroupFileDeleteRespPacket
func decodeOIDB6d63Response(_ *QQClient, pkt *network.Packet) (any, error) { func decodeOIDB6d63Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D6RspBody{} rsp := oidb.D6D6RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp) err := unpackOIDBPackage(pkt.Payload, &rsp)
@ -367,6 +417,7 @@ func decodeOIDB6d63Response(_ *QQClient, pkt *network.Packet) (any, error) {
return rsp.DeleteFileRsp.ClientWording.Unwrap(), nil return rsp.DeleteFileRsp.ClientWording.Unwrap(), nil
} }
// GroupFileUploadRespPacket
func decodeOIDB6d60Response(_ *QQClient, pkt *network.Packet) (any, error) { func decodeOIDB6d60Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D6RspBody{} rsp := oidb.D6D6RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp) err := unpackOIDBPackage(pkt.Payload, &rsp)
@ -385,6 +436,7 @@ func decodeOIDB6d60Response(_ *QQClient, pkt *network.Packet) (any, error) {
return r, nil return r, nil
} }
// GroupFileCreateFolderPacket, GroupFileDeleteFolderPacket, GroupFileRenameFolderPacket
func decodeOIDB6d7Response(_ *QQClient, pkt *network.Packet) (any, error) { func decodeOIDB6d7Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D7RspBody{} rsp := oidb.D6D7RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp) err := unpackOIDBPackage(pkt.Payload, &rsp)
@ -408,3 +460,23 @@ func decodeOIDB6d7Response(_ *QQClient, pkt *network.Packet) (any, error) {
} }
return nil, nil return nil, nil
} }
// GroupFileRenameRespPacket
func decodeOIDB6d64Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D6RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp)
if err != nil {
return nil, err
}
return rsp.RenameFileRsp.ClientWording.Unwrap(), nil
}
// GroupFileMoveRespPacket
func decodeOIDB6d65Response(_ *QQClient, pkt *network.Packet) (any, error) {
rsp := oidb.D6D6RspBody{}
err := unpackOIDBPackage(pkt.Payload, &rsp)
if err != nil {
return nil, err
}
return rsp.MoveFileRsp.ClientWording.Unwrap(), nil
}

View File

@ -89,6 +89,8 @@ type D6D6ReqBody struct {
// optional ResendReqBody resendFileReq = 2; // optional ResendReqBody resendFileReq = 2;
DownloadFileReq *DownloadFileReqBody `protobuf:"bytes,3,opt"` DownloadFileReq *DownloadFileReqBody `protobuf:"bytes,3,opt"`
DeleteFileReq *DeleteFileReqBody `protobuf:"bytes,4,opt"` DeleteFileReq *DeleteFileReqBody `protobuf:"bytes,4,opt"`
RenameFileReq *RenameFileReqBody `protobuf:"bytes,5,opt"`
MoveFileReq *MoveFileReqBody `protobuf:"bytes,6,opt"`
_ [0]func() _ [0]func()
} }

View File

@ -69,8 +69,8 @@ message D6D6ReqBody {
// optional ResendReqBody resendFileReq = 2; // optional ResendReqBody resendFileReq = 2;
optional DownloadFileReqBody downloadFileReq = 3; optional DownloadFileReqBody downloadFileReq = 3;
optional DeleteFileReqBody deleteFileReq = 4; optional DeleteFileReqBody deleteFileReq = 4;
// optional RenameFileReqBody renameFileReq = 5; optional RenameFileReqBody renameFileReq = 5;
// optional MoveFileReqBody moveFileReq = 6; optional MoveFileReqBody moveFileReq = 6;
} }
message ResendReqBody { message ResendReqBody {
optional int64 groupCode = 1; optional int64 groupCode = 1;