70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
import { Embed, EmbedImage } from "@fosscord/server-util";
|
|
import { Length } from "../util/instanceOf";
|
|
|
|
export const MessageCreateSchema = {
|
|
$content: new Length(String, 0, 2000),
|
|
$nonce: String,
|
|
$tts: Boolean,
|
|
$embed: {
|
|
$title: new Length(String, 0, 256), //title of embed
|
|
$type: String, // type of embed (always "rich" for webhook embeds)
|
|
$description: new Length(String, 0, 2048), // description of embed
|
|
$url: String, // url of embed
|
|
$timestamp: String, // ISO8601 timestamp
|
|
$color: Number, // color code of the embed
|
|
$footer: {
|
|
text: new Length(String, 0, 2048),
|
|
icon_url: String,
|
|
proxy_icon_url: String,
|
|
}, // footer object footer information
|
|
$image: EmbedImage, // image object image information
|
|
$thumbnail: EmbedImage, // thumbnail object thumbnail information
|
|
$video: EmbedImage, // video object video information
|
|
$provider: {
|
|
name: String,
|
|
url: String,
|
|
}, // provider object provider information
|
|
$author: {
|
|
name: new Length(String, 0, 256),
|
|
url: String,
|
|
icon_url: String,
|
|
proxy_icon_url: String,
|
|
}, // author object author information
|
|
$fields: new Length(
|
|
[
|
|
{
|
|
name: new Length(String, 0, 256),
|
|
value: new Length(String, 0, 1024),
|
|
$inline: Boolean,
|
|
},
|
|
],
|
|
0,
|
|
25
|
|
),
|
|
},
|
|
$allowed_mentions: [],
|
|
$message_reference: {
|
|
message_id: String,
|
|
channel_id: String,
|
|
$guild_id: String,
|
|
$fail_if_not_exists: Boolean,
|
|
},
|
|
$payload_json: String,
|
|
$file: Object,
|
|
};
|
|
|
|
export interface MessageCreateSchema {
|
|
content?: string;
|
|
nonce?: string;
|
|
tts?: boolean;
|
|
embed?: Embed & { timestamp?: string };
|
|
allowed_mentions?: [];
|
|
message_reference?: {
|
|
message_id: string;
|
|
channel_id: string;
|
|
guild_id?: string;
|
|
fail_if_not_exists: boolean;
|
|
};
|
|
payload_json?: string;
|
|
}
|