NapCatQQ/src/onebot11/action/go-cqhttp/SendGroupNotice.ts
2024-05-12 15:27:02 +08:00

55 lines
2.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { checkFileReceived, uri2local } from '@/common/utils/file';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQGroupApi, WebApi } from '@/core/apis';
interface Payload {
group_id: string;
content: string;
image?: string;
pinned?: number;
confirmRequired?: number;
}
export class SendGroupNotice extends BaseAction<Payload, null> {
actionName = ActionName.GoCQHTTP_SendGroupNotice;
protected async _handle(payload: Payload) {
let UploadImage: { id: string, width: number, height: number } | undefined = undefined;
if (payload.image) {
//公告图逻辑
let Image_path, Image_IsLocal, Image_errMsg;
let Uri2LocalRet = (await uri2local(payload.image));
Image_errMsg = Uri2LocalRet.errMsg;
Image_path = Uri2LocalRet.path;
Image_IsLocal = Uri2LocalRet.isLocal;
if (Image_errMsg) {
throw `群公告${payload.image}设置失败,image字段可能格式不正确`;
}
if (!Image_path) {
throw `群公告${payload.image}设置失败,获取资源失败`;
}
await checkFileReceived(Image_path, 5000); // 文件不存在QQ会崩溃需要提前判断
let ImageUploadResult = await NTQQGroupApi.uploadGroupBulletinPic(payload.group_id, Image_path);
if (ImageUploadResult.errCode != 0) {
throw `群公告${payload.image}设置失败,图片上传失败`;
}
UploadImage = ImageUploadResult.picInfo;
}
let Notice_Pinned = 0;
let Notice_confirmRequired = 0;
if (!payload.pinned) {
Notice_Pinned = 0;
}
if (!payload.confirmRequired) {
Notice_confirmRequired = 0;
}
let PublishGroupBulletinResult = await NTQQGroupApi.publishGroupBulletin(payload.group_id, payload.content, UploadImage, Notice_Pinned, Notice_confirmRequired);
if (PublishGroupBulletinResult.result! = 0) {
throw `设置群公告失败,错误信息:${PublishGroupBulletinResult.errMsg}`;
}
// 下面实现扬了
//await WebApi.setGroupNotice(payload.group_id, payload.content) ;
return null;
}
}