plazbot-cli
Version:
CLI para Plazbot SDK
75 lines (74 loc) • 3.38 kB
JavaScript
;
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);
}
});