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); }