mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-04 14:41:14 +00:00
Added or updated actionSummary, actionTags, payloadExample, and returnExample properties for all OneBot action classes in the napcat-onebot package. This improves API documentation and discoverability by providing concise summaries, categorization tags, and usage examples for each action.
42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import { ActionName } from '@/napcat-onebot/action/router';
|
|
import { OneBotAction, OneBotRequestToolkit } from '@/napcat-onebot/action/OneBotAction';
|
|
import { Static, Type } from '@sinclair/typebox';
|
|
import { NetworkAdapterConfig } from '@/napcat-onebot/config/config';
|
|
import { StreamPacket, StreamStatus } from './StreamBasic';
|
|
|
|
export const TestDownloadStreamPayloadSchema = Type.Object({
|
|
error: Type.Optional(Type.Boolean({ default: false, description: '是否触发测试错误' })),
|
|
});
|
|
|
|
export type TestDownloadStreamPayload = Static<typeof TestDownloadStreamPayloadSchema>;
|
|
|
|
export class TestDownloadStream extends OneBotAction<TestDownloadStreamPayload, StreamPacket<{ data: string; }>> {
|
|
override actionName = ActionName.TestDownloadStream;
|
|
override actionSummary = '测试下载流';
|
|
override actionTags = ['流式传输扩展'];
|
|
override payloadExample = {
|
|
url: 'http://example.com/file'
|
|
};
|
|
override returnExample = {
|
|
success: true
|
|
};
|
|
override payloadSchema = TestDownloadStreamPayloadSchema;
|
|
override returnSchema = Type.Any({ description: '测试流数据' });
|
|
override useStream = true;
|
|
|
|
async _handle (_payload: TestDownloadStreamPayload, _adaptername: string, _config: NetworkAdapterConfig, req: OneBotRequestToolkit) {
|
|
for (let i = 0; i < 10; i++) {
|
|
await req.send({ type: StreamStatus.Stream, data: `Index-> ${i + 1}`, data_type: 'data_chunk' });
|
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
}
|
|
if (_payload.error) {
|
|
throw new Error('This is a test error');
|
|
}
|
|
return {
|
|
type: StreamStatus.Response,
|
|
data_type: 'data_complete',
|
|
data: 'Stream transmission complete',
|
|
};
|
|
}
|
|
}
|