refactor: 通过@实现定位

This commit is contained in:
手瓜一十雪
2024-11-21 11:39:44 +08:00
parent 3ed75ac869
commit 831882f8ea
14 changed files with 41 additions and 48 deletions

View File

@@ -1,7 +1,7 @@
import { OneBotAction } from '@/onebot/action/OneBotAction';
import { ActionName } from '@/onebot/action/router';
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
import { checkFileReceived, uri2local } from '@/common/file';
import { checkFileExist, uri2local } from '@/common/file';
import fs from 'fs';
const SchemaData = {
@@ -24,7 +24,7 @@ export class OCRImage extends OneBotAction<Payload, any> {
throw new Error(`OCR ${payload.image}失败,image字段可能格式不正确`);
}
if (path) {
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃需要提前判断
await checkFileExist(path, 5000); // 避免崩溃
const ret = await this.core.apis.SystemApi.ocrImage(path);
fs.unlink(path, () => { });

View File

@@ -1,7 +1,7 @@
import { OneBotAction } from '@/onebot/action/OneBotAction';
import { ActionName, BaseCheckResult } from '../router';
import { ActionName, BaseCheckResult } from '@/onebot/action/router';
import * as fs from 'node:fs';
import { checkFileReceived, uri2local } from '@/common/file';
import { checkFileExist, uri2local } from '@/common/file';
interface Payload {
file: string;
@@ -29,7 +29,7 @@ export default class SetAvatar extends OneBotAction<Payload, null> {
throw new Error(`头像${payload.file}设置失败,file字段可能格式不正确`);
}
if (path) {
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃需要提前判断
await checkFileExist(path, 5000);// 避免崩溃
const ret = await this.core.apis.UserApi.setQQAvatar(path);
fs.unlink(path, () => {
});

View File

@@ -1,4 +1,4 @@
import { checkFileReceived, uri2local } from '@/common/file';
import { checkFileExist, uri2local } from '@/common/file';
import { OneBotAction } from '@/onebot/action/OneBotAction';
import { ActionName } from '@/onebot/action/router';
import { unlink } from 'node:fs';
@@ -39,7 +39,7 @@ export class SendGroupNotice extends OneBotAction<Payload, null> {
if (!path) {
throw new Error(`群公告${payload.image}设置失败,获取资源失败`);
}
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃需要提前判断
await checkFileExist(path, 5000);
const ImageUploadResult = await this.core.apis.GroupApi.uploadGroupBulletinPic(payload.group_id.toString(), path);
if (ImageUploadResult.errCode != 0) {
throw new Error(`群公告${payload.image}设置失败,图片上传失败`);

View File

@@ -1,7 +1,7 @@
import { OneBotAction } from '@/onebot/action/OneBotAction';
import { ActionName, BaseCheckResult } from '../router';
import { ActionName, BaseCheckResult } from '@/onebot/action/router';
import * as fs from 'node:fs';
import { checkFileReceived, uri2local } from '@/common/file';
import { checkFileExistV2, uri2local } from '@/common/file';
interface Payload {
file: string,
@@ -30,7 +30,7 @@ export default class SetGroupPortrait extends OneBotAction<Payload, any> {
throw new Error(`头像${payload.file}设置失败,file字段可能格式不正确`);
}
if (path) {
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃需要提前判断
await checkFileExistV2(path, 5000); // 文件不存在QQ会崩溃需要提前判断
const ret = await this.core.apis.GroupApi.setGroupAvatar(payload.group_id.toString(), path);
fs.unlink(path, () => { });
if (!ret) {

View File

@@ -23,7 +23,6 @@ export class OB11ActiveHttpAdapter implements IOB11NetworkAdapter {
this.config = structuredClone(config);
}
onEvent<T extends OB11EmitEventContent>(event: T) {
if (!this.isEnable) {
return;

View File

@@ -80,7 +80,7 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter {
headers: {
'X-Self-ID': this.core.selfInfo.uin,
'Authorization': `Bearer ${this.config.token}`,
'x-client-role': 'Universal', // koishi-adapter-onebot 需要这个字段
'x-client-role': 'Universal', // koishi adpter适配
'User-Agent': 'OneBot/11',
},
@@ -144,11 +144,11 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter {
this.checkStateAndReply<any>(OB11Response.error('json解析失败,请检查数据格式', 1400, echo));
return;
}
receiveData.params = (receiveData?.params) ? receiveData.params : {};//兼容类型验证
receiveData.params = (receiveData?.params) ? receiveData.params : {};// 兼容类型验证
const action = this.actions.get(receiveData.action);
if (!action) {
this.logger.logError.bind(this.logger)('[OneBot] [WebSocket Client] 发生错误', '不支持的api ' + receiveData.action);
this.checkStateAndReply<any>(OB11Response.error('不支持的api ' + receiveData.action, 1404, echo));
this.logger.logError.bind(this.logger)('[OneBot] [WebSocket Client] 发生错误', '不支持的Api ' + receiveData.action);
this.checkStateAndReply<any>(OB11Response.error('不支持的Api ' + receiveData.action, 1404, echo));
return;
}
const retdata = await action.websocketHandle(receiveData.params, echo ?? '', this.name);

View File

@@ -114,7 +114,7 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter {
return res.json(OB11Response.error(error?.stack?.toString() || error?.message || 'Error Handle', 200));
}
} else {
return res.json(OB11Response.error('不支持的api ' + actionName, 200));
return res.json(OB11Response.error('不支持的Api ' + actionName, 200));
}
}

View File

@@ -180,11 +180,11 @@ export class OB11PassiveWebSocketAdapter implements IOB11NetworkAdapter {
this.checkStateAndReply<any>(OB11Response.error('json解析失败,请检查数据格式', 1400, echo), wsClient);
return;
}
receiveData.params = (receiveData?.params) ? receiveData.params : {};//兼容类型验证
receiveData.params = (receiveData?.params) ? receiveData.params : {};//兼容类型验证 不然类型校验爆炸
const action = this.actions.get(receiveData.action);
if (!action) {
this.logger.logError.bind(this.logger)('[OneBot] [WebSocket Client] 发生错误', '不支持的api ' + receiveData.action);
this.checkStateAndReply<any>(OB11Response.error('不支持的api ' + receiveData.action, 1404, echo), wsClient);
this.logger.logError.bind(this.logger)('[OneBot] [WebSocket Client] 发生错误', '不支持的API ' + receiveData.action);
this.checkStateAndReply<any>(OB11Response.error('不支持的API ' + receiveData.action, 1404, echo), wsClient);
return;
}
const retdata = await action.websocketHandle(receiveData.params, echo ?? '', this.name);

View File

@@ -12,7 +12,7 @@ export enum OB11MessageType {
export interface OB11Message {
temp_source?: number;
message_sent_type?: string;
target_id?: number; // 自己发送的消息才有此字段
target_id?: number; // 自己发送消息/私聊消息
self_id?: number;
time: number;
message_id: number;
@@ -255,7 +255,7 @@ export interface OB11PostSendMsg {
user_id?: string;
group_id?: string;
message: OB11MessageMixType;
messages?: OB11MessageMixType; // 兼容 go-cqhttp
messages?: OB11MessageMixType;
auto_escape?: boolean | string;
source?: string;
news?: { text: string }[];