lemon-bot
Version:
a qq bot framework
72 lines (71 loc) • 2.38 kB
TypeScript
import { MessageFromType } from './Command';
declare type MessageBase<T extends string, D> = {
type: T;
data: D;
};
declare type TextMessage = MessageBase<'text', {
text: string;
}>;
declare type AtMessage = MessageBase<'at', {
qq: string;
}>;
declare type EmojiMessage = MessageBase<'emoji', {
id: string;
}>;
declare type SmallFaceMessage = MessageBase<'sface', {
id: string;
}>;
declare type FaceMessage = MessageBase<'face', {
id: string;
}>;
declare type ImageMessage = MessageBase<'image', {
file: string;
url: string;
}>;
declare type RecordMessage = MessageBase<'record', {
file: string;
}>;
declare type BigFaceMessage = MessageBase<'bface', {
id: string;
p: string;
}>;
declare type RichMessage = MessageBase<'rich', {
content: string;
}>;
declare type DiceMessage = MessageBase<'dice', {
type: string;
}>;
declare type RPSMessage = MessageBase<'rps', {
type: string;
}>;
export declare type Message = TextMessage | AtMessage | RichMessage | FaceMessage | EmojiMessage | ImageMessage | RecordMessage | BigFaceMessage | SmallFaceMessage | DiceMessage | RPSMessage;
export declare class CQMessageHelper {
static normalizeMessage(message: Message[] | string): Message[];
static removeAt(message: Message[]): Message[];
static isAt(robotQQ: number, messages: Message[]): boolean;
static toRawMessage(messages: Message[], removeAt?: boolean): string;
static escapeTextMessage(message: TextMessage): TextMessage;
}
export declare class CQRawMessageHelper {
static removeAt(str: string): string;
static isFileMessage(str: string): {
result: boolean;
file?: string;
path?: string;
};
static parseCQ(cqStr: any): {
func: string;
params: Record<string, any>;
} | null;
}
export declare class CQMessageFromTypeHelper {
static getMessageFromType({ message_type, sub_type }: {
message_type: any;
sub_type: any;
}): MessageFromType;
static isUserMessage(messageFromType: MessageFromType): boolean;
static isQQGroupMessage(messageFromType: MessageFromType): boolean;
static isQQGroupNormalMessage(messageFromType: MessageFromType): boolean;
static isQQGroupAnonymousMessage(messageFromType: MessageFromType): boolean;
}
export {};