feat: new api

This commit is contained in:
手瓜一十雪
2024-06-09 17:30:30 +08:00
parent 47341bb385
commit 86375ea6bb
52 changed files with 571 additions and 491 deletions

View File

@@ -0,0 +1,26 @@
import { NTQQCollectionApi } from '@/core/apis/collection';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQUserApi } from '@/core/apis';
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
import { selfInfo } from '@/core/data';
const SchemaData = {
type: 'object',
properties: {
rawData: { type: 'string' },
brief: { type: 'string' }
},
required: ['brief', 'rawData'],
} as const satisfies JSONSchema;
type Payload = FromSchema<typeof SchemaData>;
export class CreateCollection extends BaseAction<Payload, any> {
actionName = ActionName.CreateCollection;
PayloadSchema = SchemaData;
protected async _handle(payload: Payload) {
return await NTQQCollectionApi.createCollection(selfInfo.uin, selfInfo.uid, selfInfo.nick, payload.brief, payload.rawData);
}
}

View File

@@ -11,7 +11,7 @@ const SchemaData = {
longNick: { type: 'string' },
sex: { type: 'number' }//传Sex值建议传0
},
required: ['nick', 'longNick', 'sex',],
required: ['nick', 'longNick', 'sex'],
} as const satisfies JSONSchema;
type Payload = FromSchema<typeof SchemaData>;

View File

@@ -0,0 +1,45 @@
import { NTQQGroupApi, NTQQUserApi } from '@/core';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { BuddyCategoryType } from '@/core/entities/';
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
const SchemaData = {
type: 'object',
properties: {
user_id: { type: 'string' },
group_id: { type: 'string' },
phoneNumber: { type: 'string' },
},
} as const satisfies JSONSchema;
type Payload = FromSchema<typeof SchemaData>;
export class sharePeer extends BaseAction<Payload, any> {
actionName = ActionName.SharePeer;
PayloadSchema = SchemaData;
protected async _handle(payload: Payload) {
if (payload.group_id) {
return await NTQQGroupApi.getGroupRecommendContactArkJson(payload.group_id);
} else if (payload.user_id) {
return await NTQQUserApi.getBuddyRecommendContactArkJson(payload.user_id, payload.phoneNumber || '');
}
}
}
const SchemaDataGroupEx = {
type: 'object',
properties: {
group_id: { type: 'string' },
},
required: ['group_id']
} as const satisfies JSONSchema;
type PayloadGroupEx = FromSchema<typeof SchemaDataGroupEx>;
export class shareGroupEx extends BaseAction<PayloadGroupEx, any> {
actionName = ActionName.ShareGroupEx;
PayloadSchema = SchemaDataGroupEx;
protected async _handle(payload: PayloadGroupEx) {
return await NTQQGroupApi.getArkJsonGroupShare(payload.group_id);
}
}

View File

@@ -67,6 +67,8 @@ import { SetGroupFileFolder } from './file/SetGroupFileFolder';
import { DelGroupFile } from './file/DelGroupFile';
import { DelGroupFileFolder } from './file/DelGroupFileFolder';
import { SetSelfProfile } from './extends/SetSelfProfile';
import { shareGroupEx, sharePeer } from './extends/sharePeer';
import { CreateCollection } from './extends/CreateCollection';
export const actionHandlers = [
new RebootNormal(),
@@ -74,6 +76,9 @@ export const actionHandlers = [
new Debug(),
new Reboot(),
new SetSelfProfile(),
new shareGroupEx(),
new sharePeer(),
new CreateCollection(),
// new GetConfigAction(),
// new SetConfigAction(),
// new GetGroupAddRequest(),

View File

@@ -15,6 +15,8 @@ export interface InvalidCheckResult {
export enum ActionName {
// 以下为扩展napcat扩展
SharePeer = 'ArkShareGroup',
ShareGroupEx = 'ArkSharePeer',
RebootNormal = 'reboot_normal',//无快速登录重新启动
GetRobotUinRange = 'get_robot_uin_range',
SetOnlineStatus = 'set_online_status',
@@ -88,5 +90,6 @@ export enum ActionName {
GetOnlineClient = 'get_online_clients',
OCRImage = 'ocr_image',
IOCRImage = '.ocr_image',
SetSelfProfile = "set_self_profile"
SetSelfProfile = "set_self_profile",
CreateCollection = "create_collection"
}