import BaseAction from "../BaseAction"; import {getGroup} from "../../../common/data"; import {ActionName} from "../types"; import {SendMsgElementConstructor} from "../../../ntqqapi/constructor"; import {ChatType, SendFileElement} from "../../../ntqqapi/types"; import {NTQQApi} from "../../../ntqqapi/ntcall"; import {uri2local} from "../../utils"; import fs from "fs"; interface Payload{ group_id: number file: string name: string folder: string } export default class GoCQHTTPUploadGroupFile extends BaseAction { actionName = ActionName.GoCQHTTP_UploadGroupFile protected async _handle(payload: Payload): Promise { const group = await getGroup(payload.group_id.toString()); if (!group){ throw new Error(`群组${payload.group_id}不存在`) } let file = payload.file; if (fs.existsSync(file)){ file = `file://${file}` } const downloadResult = await uri2local(file); if (downloadResult.errMsg){ throw new Error(downloadResult.errMsg) } let sendFileEle: SendFileElement = await SendMsgElementConstructor.file(downloadResult.path, payload.name); await NTQQApi.sendMsg({chatType: ChatType.group, peerUid: group.groupCode}, [sendFileEle]); return null } }