Skip to main content
Nivel: Intermedio · Etiquetas: WhatsApp, Telegram, Plugins, Hooks Funciones que muestra: definePlugin() · hooks before('message') · ctx.abort() · ctx.onDispose() y unplug · configuración del plugin

Requisitos previos

Node.js 22.12 o superior y una carpeta con "type": "module" (ver Inicio rápido). Después instala:

El bot completo

Transcripción de ejemplo

Capturada con npx botmesh dev bot.js; el quinto mensaje se descarta en silencio, así que el usuario recibe un solo aviso por ventana:

Cómo funciona

  • definePlugin({ name, install }) empaqueta la funcionalidad; install recibe el contexto del plugin y la configuración pasada a bot.plug(plugin, config). Debe ser síncrono.
  • ctx.bot.before('message', (msg, next) => ...) corre antes del enrutado. Llama a next() para continuar; msg.abort() detiene el mensaje, así que ningún handler, flujo ni catch-all lo ve.
  • Por remitente. msg.sender es el id estable del usuario, así que en un grupo cada participante tiene su propio contador.
  • Limpieza. Los hooks y handlers registrados con ctx.bot se deshacen con la función que devuelve bot.plug(); los timers y recursos externos van en ctx.onDispose().
  • También en la salida. Un hook before('send') ve cada mensaje que envía el bot ({ chatId, content }) y puede hacer abort() igual. Para el ritmo anti-ban de WhatsApp, @botmesh/baileys ya limita los envíos (ver Rate limiting).

Ejecutarlo en WhatsApp o Telegram

node bot.js muestra un QR: escanéalo en WhatsApp → Dispositivos vinculados. Para Telegram, instala @botmesh/telegram y cambia el provider como se muestra en O conectar Telegram; el plugin funciona igual en todos los canales.

Siguientes pasos