diff --git a/src/ntqqapi/types/msg.ts b/src/ntqqapi/types/msg.ts index c9741e6..9812fe5 100644 --- a/src/ntqqapi/types/msg.ts +++ b/src/ntqqapi/types/msg.ts @@ -6,6 +6,7 @@ export interface GetFileListParam { startIndex: number sortOrder: number showOnlinedocFolder: number + folderId?: string } export enum ElementType { diff --git a/src/onebot11/action/go-cqhttp/GetGroupFilesByFolder.ts b/src/onebot11/action/go-cqhttp/GetGroupFilesByFolder.ts new file mode 100644 index 0000000..c3ee992 --- /dev/null +++ b/src/onebot11/action/go-cqhttp/GetGroupFilesByFolder.ts @@ -0,0 +1,54 @@ +import { BaseAction, Schema } from '../BaseAction' +import { ActionName } from '../types' +import { OB11GroupFile, OB11GroupFileFolder } from '@/onebot11/types' + +interface Payload { + group_id: string | number + folder_id: string + file_count: string | number +} + +interface Response { + files: OB11GroupFile[] + folders: OB11GroupFileFolder[] +} + +export class GetGroupFilesByFolder extends BaseAction { + actionName = ActionName.GoCQHTTP_GetGroupFilesByFolder + payloadSchema = Schema.object({ + group_id: Schema.union([Number, String]).required(), + folder_id: Schema.string().required(), + file_count: Schema.union([Number, String]).default(50) + }) + + async _handle(payload: Payload) { + const data = await this.ctx.ntGroupApi.getGroupFileList(payload.group_id.toString(), { + sortType: 1, + fileCount: +payload.file_count, + startIndex: 0, + sortOrder: 2, + showOnlinedocFolder: 0, + folderId: payload.folder_id + }) + return { + files: data.filter(item => item.fileInfo) + .map(item => { + const file = item.fileInfo! + return { + group_id: +item.peerId, + file_id: file.fileId, + file_name: file.fileName, + busid: file.busId, + file_size: +file.fileSize, + upload_time: file.uploadTime, + dead_time: file.deadTime, + modify_time: file.modifyTime, + download_times: file.downloadTimes, + uploader: +file.uploaderUin, + uploader_name: file.uploaderName + } + }), + folders: [] + } + } +} diff --git a/src/onebot11/action/index.ts b/src/onebot11/action/index.ts index d18fabb..0c85a33 100644 --- a/src/onebot11/action/index.ts +++ b/src/onebot11/action/index.ts @@ -53,7 +53,7 @@ import { GetGroupHonorInfo } from './group/GetGroupHonorInfo' import { HandleQuickOperation } from './go-cqhttp/QuickOperation' import { SetEssenceMsg } from './go-cqhttp/SetEssenceMsg' import { DelEssenceMsg } from './go-cqhttp/DelEssenceMsg' -import GetEvent from './llonebot/GetEvent' +import { GetEvent } from './llonebot/GetEvent' import { DelGroupFile } from './go-cqhttp/DelGroupFile' import { GetGroupSystemMsg } from './go-cqhttp/GetGroupSystemMsg' import { CreateGroupFileFolder } from './go-cqhttp/CreateGroupFileFolder' @@ -66,6 +66,7 @@ import { GetProfileLike } from './llonebot/GetProfileLike' import { FetchEmojiLike } from './llonebot/FetchEmojiLike' import { FetchCustomFace } from './llonebot/FetchCustomFace' import { GetFriendMsgHistory } from './llonebot/GetFriendMsgHistory' +import { GetGroupFilesByFolder } from './go-cqhttp/GetGroupFilesByFolder' export function initActionMap(adapter: Adapter) { const actionHandlers = [ @@ -80,6 +81,8 @@ export function initActionMap(adapter: Adapter) { new SetOnlineStatus(adapter), new GetProfileLike(adapter), new GetFriendMsgHistory(adapter), + new FetchEmojiLike(adapter), + new FetchCustomFace(adapter), // onebot11 new SendLike(adapter), new GetMsg(adapter), @@ -137,8 +140,7 @@ export function initActionMap(adapter: Adapter) { new GetGroupAtAllRemain(adapter), new GetGroupRootFiles(adapter), new SendGroupNotice(adapter), - new FetchEmojiLike(adapter), - new FetchCustomFace(adapter), + new GetGroupFilesByFolder(adapter), ] const actionMap = new Map>() for (const action of actionHandlers) { diff --git a/src/onebot11/action/llonebot/GetEvent.ts b/src/onebot11/action/llonebot/GetEvent.ts index 8cb3aed..effb7fe 100644 --- a/src/onebot11/action/llonebot/GetEvent.ts +++ b/src/onebot11/action/llonebot/GetEvent.ts @@ -11,7 +11,7 @@ interface Payload { timeout: number } -export default class GetEvent extends BaseAction { +export class GetEvent extends BaseAction { actionName = ActionName.GetEvent protected async _handle(payload: Payload): Promise { diff --git a/src/onebot11/action/types.ts b/src/onebot11/action/types.ts index fb47c39..967ce67 100644 --- a/src/onebot11/action/types.ts +++ b/src/onebot11/action/types.ts @@ -81,4 +81,5 @@ export enum ActionName { GoCQHTTP_GetGroupAtAllRemain = 'get_group_at_all_remain', GoCQHTTP_GetGroupRootFiles = 'get_group_root_files', GoCQHTTP_SendGroupNotice = '_send_group_notice', + GoCQHTTP_GetGroupFilesByFolder = 'get_group_files_by_folder' }