29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { drawCharacterDetail } from '@/modules/qqbot/plugins/bangdream/src/domain/character/character-detail.renderer';
|
|
import { drawCharacterList } from '@/modules/qqbot/plugins/bangdream/src/domain/character/character-search.renderer';
|
|
import { BANGDREAM_CHARACTER_CATALOG_KEYS } from '@/modules/qqbot/plugins/bangdream/src/operations/catalog-keys';
|
|
import type { BangDreamOperationModule } from '@/modules/qqbot/plugins/bangdream/src/operations/operation';
|
|
|
|
export const characterSearchOperation: BangDreamOperationModule = {
|
|
catalogKeys: BANGDREAM_CHARACTER_CATALOG_KEYS,
|
|
handlerName: 'searchCharacter',
|
|
execute: async (input, context) => {
|
|
const query = context.requireText(input, '请提供角色关键词或角色 ID');
|
|
const options = context.getRenderOptions(input);
|
|
const images = context.isInteger(query)
|
|
? await drawCharacterDetail(
|
|
Number(query),
|
|
options.displayedServerList,
|
|
options.compress,
|
|
)
|
|
: await context.drawFuzzyResult(query, (matches) =>
|
|
drawCharacterList(
|
|
matches,
|
|
options.displayedServerList,
|
|
options.compress,
|
|
),
|
|
);
|
|
|
|
return context.toImageReply('bangdream.character.search', query, images);
|
|
},
|
|
};
|