mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-05 23:19:37 +00:00
Moved action example files into a new 'example' directory and updated all imports accordingly. Removed the monolithic 'examples.ts' and redefined ActionExamples in OneBotAction.ts to only include common error codes. This improves code organization and maintainability.
39 lines
1.9 KiB
TypeScript
39 lines
1.9 KiB
TypeScript
import { OneBotAction } from '@/napcat-onebot/action/OneBotAction';
|
||
import { ActionName } from '@/napcat-onebot/action/router';
|
||
import { Static, Type } from '@sinclair/typebox';
|
||
import { GoCQHTTPActionsExamples } from '../example/GoCQHTTPActionsExamples';
|
||
|
||
export const SetQQProfilePayloadSchema = Type.Object({
|
||
nickname: Type.String({ description: '昵称' }),
|
||
personal_note: Type.Optional(Type.String({ description: '个性签名' })),
|
||
sex: Type.Optional(Type.Union([Type.Number(), Type.String()], { description: '性别 (0: 未知, 1: 男, 2: 女)' })), // 传Sex值?建议传0
|
||
});
|
||
|
||
export type SetQQProfilePayload = Static<typeof SetQQProfilePayloadSchema>;
|
||
export class SetQQProfile extends OneBotAction<SetQQProfilePayload, any> {
|
||
override actionName = ActionName.SetQQProfile;
|
||
override payloadSchema = SetQQProfilePayloadSchema;
|
||
override returnSchema = Type.Any({ description: '设置结果' });
|
||
override actionSummary = '设置QQ资料';
|
||
override actionDescription = '修改当前账号的昵称、个性签名等资料';
|
||
override actionTags = ['Go-CQHTTP'];
|
||
override payloadExample = GoCQHTTPActionsExamples.SetQQProfile.payload;
|
||
override returnExample = GoCQHTTPActionsExamples.SetQQProfile.response;
|
||
|
||
async _handle (payload: SetQQProfilePayload) {
|
||
const self = this.core.selfInfo;
|
||
const OldProfile = await this.core.apis.UserApi.getUserDetailInfo(self.uid);
|
||
return await this.core.apis.UserApi.modifySelfProfile({
|
||
nick: payload.nickname,
|
||
longNick: (payload?.personal_note ?? OldProfile?.longNick) || '',
|
||
sex: parseInt(payload?.sex ? payload?.sex.toString() : OldProfile?.sex!.toString()),
|
||
birthday: {
|
||
birthday_year: OldProfile?.birthday_year!.toString(),
|
||
birthday_month: OldProfile?.birthday_month!.toString(),
|
||
birthday_day: OldProfile?.birthday_day!.toString(),
|
||
},
|
||
location: undefined,
|
||
});
|
||
}
|
||
}
|