build: 1.3.5-beta32

This commit is contained in:
手瓜一十雪
2024-05-18 12:56:03 +08:00
parent b5fba09f0d
commit 3e8d8817bb
15 changed files with 176 additions and 79 deletions

View File

@@ -4,28 +4,35 @@ import { ChatType, Peer } from '@/core/entities';
import { dbUtil } from '@/core/utils/db';
import { getUidByUin } from '@/core/data';
import { ActionName } from '../types';
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
interface Payload {
message_id: number
group_id: number
user_id?: number
}
const SchemaData = {
type: 'object',
properties: {
message_id: { type: 'number' },
group_id: { type: 'number' },
user_id: { type: 'number' }
},
required: ['message_id']
} as const satisfies JSONSchema;
type Payload = FromSchema<typeof SchemaData>;
class ForwardSingleMsg extends BaseAction<Payload, null> {
protected async getTargetPeer(payload: Payload): Promise<Peer> {
if (payload.user_id) {
const peerUid = getUidByUin(payload.user_id.toString());
if (!peerUid){
if (!peerUid) {
throw new Error(`无法找到私聊对象${payload.user_id}`);
}
return { chatType: ChatType.friend, peerUid };
}
return { chatType: ChatType.group, peerUid: payload.group_id.toString() };
return { chatType: ChatType.group, peerUid: payload.group_id!.toString() };
}
protected async _handle(payload: Payload): Promise<null> {
const msg = await dbUtil.getMsgByShortId(payload.message_id);
if (!msg){
if (!msg) {
throw new Error(`无法找到消息${payload.message_id}`);
}
const peer = await this.getTargetPeer(payload);
@@ -37,7 +44,7 @@ class ForwardSingleMsg extends BaseAction<Payload, null> {
peer,
[msg.msgId],
);
if (ret.result !== 0){
if (ret.result !== 0) {
throw new Error(`转发消息失败 ${ret.errMsg}`);
}
return null;
@@ -45,9 +52,11 @@ class ForwardSingleMsg extends BaseAction<Payload, null> {
}
export class ForwardFriendSingleMsg extends ForwardSingleMsg {
PayloadSchema = SchemaData;
actionName = ActionName.ForwardFriendSingleMsg;
}
export class ForwardGroupSingleMsg extends ForwardSingleMsg {
PayloadSchema = SchemaData;
actionName = ActionName.ForwardGroupSingleMsg;
}