| |
| import type { Command } from "commander"; |
| import type { MessageCliHelpers } from "./helpers.js"; |
|
|
| |
| export function registerMessageSendCommand(message: Command, helpers: MessageCliHelpers) { |
| helpers |
| .withMessageBase( |
| helpers |
| .withRequiredMessageTarget( |
| message |
| .command("send") |
| .description("Send a message") |
| .option( |
| "-m, --message <text>", |
| "Message body (required unless --media or --presentation is set)", |
| ), |
| ) |
| .option( |
| "--media <path-or-url>", |
| "Attach media (image/audio/video/document). Accepts local paths or URLs.", |
| ) |
| .option( |
| "--presentation <json>", |
| "Shared presentation payload as JSON (text, context, dividers, charts, tables, buttons, selects)", |
| ) |
| .option("--delivery <json>", "Shared delivery preferences as JSON") |
| .option("--pin", "Request that the delivered message be pinned when supported", false) |
| .option("--reply-to <id>", "Reply-to message id") |
| .option("--thread-id <id>", "Thread id (Telegram forum thread)") |
| .option("--gif-playback", "Treat video media as GIF playback (WhatsApp only).", false) |
| .option( |
| "--force-document", |
| "Preserve original image bytes on Slack, or send images, GIFs, and videos as documents on Telegram and WhatsApp, to avoid channel compression.", |
| false, |
| ) |
| .option( |
| "--silent", |
| "Send message silently without notification (Telegram + Discord)", |
| false, |
| ), |
| ) |
| .action((opts) => helpers.runMessageAction("send", opts)); |
| } |
|
|