melbot / src /cli /program /register.message.ts
amos-fernandes's picture
Upload 4501 files
3a65265 verified
import type { Command } from "commander";
import { formatDocsLink } from "../../terminal/links.js";
import { theme } from "../../terminal/theme.js";
import { formatHelpExamples } from "../help-format.js";
import type { ProgramContext } from "./context.js";
import { createMessageCliHelpers } from "./message/helpers.js";
import { registerMessageDiscordAdminCommands } from "./message/register.discord-admin.js";
import {
registerMessageEmojiCommands,
registerMessageStickerCommands,
} from "./message/register.emoji-sticker.js";
import {
registerMessagePermissionsCommand,
registerMessageSearchCommand,
} from "./message/register.permissions-search.js";
import { registerMessagePinCommands } from "./message/register.pins.js";
import { registerMessagePollCommand } from "./message/register.poll.js";
import { registerMessageReactionsCommands } from "./message/register.reactions.js";
import { registerMessageReadEditDeleteCommands } from "./message/register.read-edit-delete.js";
import { registerMessageSendCommand } from "./message/register.send.js";
import { registerMessageThreadCommands } from "./message/register.thread.js";
import { registerMessageBroadcastCommand } from "./message/register.broadcast.js";
export function registerMessageCommands(program: Command, ctx: ProgramContext) {
const message = program
.command("message")
.description("Send messages and channel actions")
.addHelpText(
"after",
() =>
`
${theme.heading("Examples:")}
${formatHelpExamples([
['moltbot message send --target +15555550123 --message "Hi"', "Send a text message."],
[
'moltbot message send --target +15555550123 --message "Hi" --media photo.jpg',
"Send a message with media.",
],
[
'moltbot message poll --channel discord --target channel:123 --poll-question "Snack?" --poll-option Pizza --poll-option Sushi',
"Create a Discord poll.",
],
[
'moltbot message react --channel discord --target 123 --message-id 456 --emoji "✅"',
"React to a message.",
],
])}
${theme.muted("Docs:")} ${formatDocsLink("/cli/message", "docs.molt.bot/cli/message")}`,
)
.action(() => {
message.help({ error: true });
});
const helpers = createMessageCliHelpers(message, ctx.messageChannelOptions);
registerMessageSendCommand(message, helpers);
registerMessageBroadcastCommand(message, helpers);
registerMessagePollCommand(message, helpers);
registerMessageReactionsCommands(message, helpers);
registerMessageReadEditDeleteCommands(message, helpers);
registerMessagePinCommands(message, helpers);
registerMessagePermissionsCommand(message, helpers);
registerMessageSearchCommand(message, helpers);
registerMessageThreadCommands(message, helpers);
registerMessageEmojiCommands(message, helpers);
registerMessageStickerCommands(message, helpers);
registerMessageDiscordAdminCommands(message, helpers);
}