From 25171e5777939fcad0cf1f8495896eece445ed49 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Thu, 22 Apr 2021 20:44:42 +0800 Subject: [PATCH] feat: more group file operation api. --- coolq/api.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ server/api.go | 15 +++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/coolq/api.go b/coolq/api.go index 1072fa6..2bbcb72 100644 --- a/coolq/api.go +++ b/coolq/api.go @@ -260,6 +260,54 @@ func (bot *CQBot) CQUploadGroupFile(groupID int64, file, name, folder string) MS return OK(nil) } +// CQGroupFileCreateFolder 拓展API-创建群文件文件夹 +// +// +func (bot *CQBot) CQGroupFileCreateFolder(groupID int64, parentID, name string) MSG { + fs, err := bot.Client.GetGroupFileSystem(groupID) + if err != nil { + log.Errorf("获取群 %v 文件系统信息失败: %v", groupID, err) + return Failed(100, "FILE_SYSTEM_API_ERROR", err.Error()) + } + if err = fs.CreateFolder(parentID, name); err != nil { + log.Errorf("创建群 %v 文件夹失败: %v", groupID, err) + return Failed(100, "FILE_SYSTEM_API_ERROR", err.Error()) + } + return OK(nil) +} + +// CQGroupFileDeleteFolder 拓展API-删除群文件文件夹 +// +// +func (bot *CQBot) CQGroupFileDeleteFolder(groupID int64, id string) MSG { + fs, err := bot.Client.GetGroupFileSystem(groupID) + if err != nil { + log.Errorf("获取群 %v 文件系统信息失败: %v", groupID, err) + return Failed(100, "FILE_SYSTEM_API_ERROR", err.Error()) + } + if err = fs.DeleteFolder(id); err != nil { + log.Errorf("删除群 %v 文件夹 %v 时出现文件: %v", groupID, id, err) + return Failed(200, "FILE_SYSTEM_API_ERROR", err.Error()) + } + return OK(nil) +} + +// CQGroupFileDeleteFile 拓展API-删除群文件 +// +// +func (bot *CQBot) CQGroupFileDeleteFile(groupID int64, parentID, id string, busID int32) MSG { + fs, err := bot.Client.GetGroupFileSystem(groupID) + if err != nil { + log.Errorf("获取群 %v 文件系统信息失败: %v", groupID, err) + return Failed(100, "FILE_SYSTEM_API_ERROR", err.Error()) + } + if res := fs.DeleteFile(parentID, id, busID); res != "" { + log.Errorf("删除群 %v 文件 %v 时出现文件: %v", groupID, id, res) + return Failed(200, "FILE_SYSTEM_API_ERROR", res) + } + return OK(nil) +} + // CQGetWordSlices 隐藏API-获取中文分词 // // https://docs.go-cqhttp.org/api/#%E8%8E%B7%E5%8F%96%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D-%E9%9A%90%E8%97%8F-api diff --git a/server/api.go b/server/api.go index 05fdc77..5a530b9 100644 --- a/server/api.go +++ b/server/api.go @@ -254,6 +254,18 @@ func uploadGroupFile(bot *coolq.CQBot, p resultGetter) coolq.MSG { return bot.CQUploadGroupFile(p.Get("group_id").Int(), p.Get("file").Str, p.Get("name").Str, p.Get("folder").Str) } +func groupFileCreateFolder(bot *coolq.CQBot, p resultGetter) coolq.MSG { + return bot.CQGroupFileCreateFolder(p.Get("group_id").Int(), p.Get("folder_id").Str, p.Get("name").Str) +} + +func deleteGroupFolder(bot *coolq.CQBot, p resultGetter) coolq.MSG { + return bot.CQGroupFileDeleteFolder(p.Get("group_id").Int(), p.Get("folder_id").Str) +} + +func deleteGroupFile(bot *coolq.CQBot, p resultGetter) coolq.MSG { + return bot.CQGroupFileDeleteFile(p.Get("group_id").Int(), p.Get("folder_id").Str, p.Get("file_id").Str, int32(p.Get("bus_id").Int())) +} + func getGroupMsgHistory(bot *coolq.CQBot, p resultGetter) coolq.MSG { return bot.CQGetGroupMessageHistory(p.Get("group_id").Int(), p.Get("message_seq").Int()) } @@ -362,6 +374,9 @@ var API = map[string]func(*coolq.CQBot, resultGetter) coolq.MSG{ "get_group_root_files": getGroupRootFiles, "get_group_files_by_folder": getGroupFilesByFolder, "get_group_file_url": getGroupFileURL, + "create_group_file_folder": groupFileCreateFolder, + "delete_group_folder": deleteGroupFolder, + "delete_group_file": deleteGroupFile, "upload_group_file": uploadGroupFile, "get_group_msg_history": getGroupMsgHistory, "_get_vip_info": getVipInfo,