@mtplusdev/wappy
v1.0.23
Published
Wappy é sua ponte entre ideias e mensagens. Crie bots com WhatsApp de forma simples.
Maintainers
Readme
🌐 Wappy · 💬🤖
Wappy é sua ponte entre ideias e mensagens.
Uma biblioteca simples e poderosa para criar bots, integrações e automações no WhatsApp usando a engine Baileys.
Desenvolvido com 💚 por @MTplusWebSystem
🚀 Instalação
npm install @mtplusdev/wappy qrcode-terminal express corsA
qrcode-terminalexibe o QR Code diretamente no terminal. Instale junto aowappyno seu projeto. Server fornece a payload para conversão em qr-code
⚡ Exemplo rápido qr-terminal
// main.js
import { createWappy } from '@mtplusdev/wappy';
import qrcode from 'qrcode-terminal';
const client = await createWappy({
sessionName: 'teste',
printQRInTerminal: true,
qrCallback: (qr) => qrcode.generate(qr, { small: true }),
all: true, // ✅ Permite ou ignora mensagens enviadas por todos
viewLog: true, // ✅ Mostra logs básicos
fromMe: false, // ✅ Permite ou ignora mensagens enviadas por você mesmo
groupIgnore: true, // ✅ Ignora mensagens de grupos
});
client.on('message', async ({ text, targetJid, msg }) => {
if (text.toLowerCase() === 'ping') {
await client.sendText(targetJid, '🏓 pong!');
}
if (text.toLowerCase() === 'replay') {
await client.replay(targetJid, '🔁 Isso é uma resposta com citação!', msg);
}
});
client.start();💡 Execute com
node main.mjsse seupackage.jsontiver"type": "module".
⚡ Exemplo rápido qr-server
import { createWappy,createServer,startServe } from '@mtplusdev/wappy';
const client = await createWappy({
sessionName: 'teste',
qrCallback: (qr) => {
createServer(qr)
return qr;
},
all: true, // ✅ Permite ou ignora mensagens enviadas por todos
viewLog: true, // ✅ Mostra logs básicos
fromMe: false, // ✅ Permite ou ignora mensagens enviadas por você mesmo
groupIgnore: true, // ✅ Ignora mensagens de grupos
});
startServe("4000")
client.on('message', async ({ text, targetJid, msg }) => {
if (text.toLowerCase() === 'ping') {
await client.sendText(targetJid, '🏓 pong!');
}
if (text.toLowerCase() === 'replay') {
await client.replay(targetJid, '🔁 Isso é uma resposta com citação!', msg);
}
});
client.start();💡 Execute com
node main.mjsse seupackage.jsontiver"type": "module".
✨ Novidades
🚀 Server
const client = await createWappy({
qrCallback: (qr) => {
createServer(qr)
return qr;
},
});retorno no /qr-connection
ex:
{
"qrCode": "2@B9K5q7U7VrKG4ZgmE8XAW5osqzOIVgeA/YxQvlwbvhI52S6kbw6ehQMw+8KBRKRfl4vr6QLrpxur77DShXqS6Rltl4y97zABq8A=,lwL8/4vwgvKOvD6njZ/Da4i6EDZPLZIoBtndFa+Y6C0=,d9VzKcnYTMWJ4ki4tJ2VRT2nAKmoZXdYU4/Ozm/SKG8=,wnRChE2+ZXzbd4E0S0wwczJYnqrwywlhciYwfUsa/U4=",
"pairCode": null
}🔁 replay(jid, text, quotedMsg)
🔁 sendDocument(jid, text, quotedMsg)
Agora é possível responder mensagens com citação, como no WhatsApp tradicional e enviar arquivos.
client.on('message', async ({ text, targetJid, msg }) => {
if (text.toLowerCase() === '/apk') {
const filePath = './storage/RVX_19.16.39.apk';
await client.sendDocument(targetJid, filePath, {
mimetype: 'application/vnd.android.package-archive',
fileName: 'youtubeMod.apk'
});
await client.replay(
targetJid,
"Seu apk foi enviado com sucesso...\nAgora logue com suas informações de teste.",
msg
);
}
});⚙️ Novos parâmetros na criação:
| Parâmetro | Descrição |
| ------------- | ---------------------------------------------------------------------- |
| fromMe | Aceita ou ignora mensagens enviadas por você mesmo (true ou false) |
| all | Aceita ou ignora mensagens enviadas por todos (true ou false) |
| groupIgnore | Ignora mensagens de grupos (true) |
| viewLog | Mostra log básico de mensagens recebidas no terminal (true) |
🧱 Estrutura modular para projetos grandes
Se quiser criar uma aplicação robusta e escalável:
/seu-projeto
├── main.js # ponto de entrada
├── handler.js # manipulador de mensagens
├── package.json
└── auth/ # sessões geradas automaticamentemain.js
import { createWappy } from '@mtplusdev/wappy';
import qrcode from 'qrcode-terminal';
import { handleMessage } from './handler.js';
const client = await createWappy({
sessionName: 'meu-bot',
qrCallback: (qr) => qrcode.generate(qr, { small: true }),
viewLog: true
});
client.on('message', handleMessage(client));
client.start();handler.js
export function handleMessage(client) {
return async ({ text, targetJid, msg }) => {
if (!text) return;
if (text.toLowerCase() === 'ping') {
await client.sendText(targetJid, '🏓 pong!');
}
if (text.toLowerCase() === 'responder') {
await client.replay(targetJid, '🔁 Resposta com citação!', msg);
}
};
}📂 Sessão e autenticação
O Wappy salva sua sessão automaticamente em:
auth/<sessionName>/Para forçar um novo login, basta apagar essa pasta.
✅ Recursos
- 📡 Conexão com QR Code
- 🔄 Reconexão automática
- 💬 Escuta de mensagens com filtro
- ✉️ Envio de mensagens (
sendText) - 🔁 Resposta com citação (
replay) - 🎯 Filtros para grupos e mensagens do próprio bot
📄 Licença
MIT
