UNPKG

plazbot-cli

Version:
75 lines (74 loc) 3.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.whatsappChatCommand = void 0; const commander_1 = require("commander"); const plazbot_1 = require("plazbot"); const credentials_1 = require("../../utils/credentials"); const logger_1 = require("../../utils/logger"); const ui_1 = require("../../utils/ui"); const readline_1 = __importDefault(require("readline")); const chalk_1 = __importDefault(require("chalk")); exports.whatsappChatCommand = new commander_1.Command('chat') .description('Chat interactivo directo por WhatsApp') .argument('<phone>', 'Numero de telefono destino (con codigo de pais)') .option('--dev', 'Usar ambiente de desarrollo', false) .action(async (phone, options) => { try { const credentials = await (0, credentials_1.getStoredCredentials)(); const messageClient = new plazbot_1.Message({ workspaceId: credentials.workspace, apiKey: credentials.apiKey, zone: credentials.zone, ...(options.dev && { customUrl: "http://localhost:5090" }) }); const rl = readline_1.default.createInterface({ input: process.stdin, output: process.stdout, }); console.clear(); console.log(); console.log(chalk_1.default.hex('#25D366')(' ┌' + '─'.repeat(50) + '┐')); console.log(chalk_1.default.hex('#25D366')(' │') + chalk_1.default.bold(` WhatsApp Chat`).padEnd(60) + chalk_1.default.hex('#25D366')('│')); console.log(chalk_1.default.hex('#25D366')(' │') + chalk_1.default.gray(` Destino: ${phone}`).padEnd(60) + chalk_1.default.hex('#25D366')('│')); console.log(chalk_1.default.hex('#25D366')(' │') + chalk_1.default.gray(' /exit para salir').padEnd(60) + chalk_1.default.hex('#25D366')('│')); console.log(chalk_1.default.hex('#25D366')(' └' + '─'.repeat(50) + '┘')); console.log(); const ask = () => { rl.question(chalk_1.default.hex('#25D366')(' > '), async (message) => { if (!message.trim()) { ask(); return; } if (message.toLowerCase() === '/exit') { console.log(chalk_1.default.gray('\n Chat terminado.\n')); rl.close(); return; } try { const spinner = (0, ui_1.createSpinner)('Enviando...'); spinner.start(); await messageClient.onWhatsappMessage({ message, to: phone, }); spinner.succeed('Enviado'); ask(); } catch (error) { const msg = error instanceof Error ? error.message : 'Error'; console.log(chalk_1.default.hex('#EF5350')(` ✖ ${msg}`)); ask(); } }); }; ask(); } catch (error) { const message = error instanceof Error ? error.message : 'Error desconocido'; logger_1.logger.error(message); process.exit(1); } });