Este bot monitora canais e grupos no Telegram para detectar promoções e repassá-las automaticamente para um grupo ou contatos específicos no WhatsApp. Ele permite que usuários salvem palavras-chave de interesse e recebam somente as promoções relevantes.
- Usa a biblioteca
gramjspara logar como usuário. - Monitora mensagens de grupos/canais específicos.
- Suporta mensagens com texto e mídia (imagens).
- Baixa e salva imagens temporariamente.
- Usa a biblioteca
@whiskeysockets/baileys. - Conecta via QR Code com autenticação multi-device.
- Envia promoções automaticamente para:
- Grupo padrão.
- Contatos interessados, com base em palavras-chave.
- Comando
/addpermite usuários cadastrarem suas palavras de interesse.
- Armazena palavras-chave por número de telefone no arquivo
usuarios.json. - Salva grupos onde o bot é adicionado no
group.json.
📦 projeto
├── index.js # Monitoramento do Telegram
├── zap.js # Integração com WhatsApp
├── usuarios.json # Palavras-chave dos usuários
├── group.json # Grupos onde o bot está
├── utils/
│ ├── salve.group.js # Função para salvar grupos
│ ├── save.text.js # Função para salvar palavras dos usuários
├── auth_info_baileys/ # Dados de autenticação do WhatsApp
├── session.json # Sessão do Telegram
├── .env # Variáveis API_ID, API_HASH
└── temp/ # Imagens temporárias das promoçõesnpm installCrie um arquivo .env com o seguinte conteúdo:
API_ID=your_telegram_api_id
API_HASH=your_telegram_api_hash
GROUP_DEFAULT=conexão com o zap ficar on vai aparecer os NOME + JIDS dos grupos e comunidade pegue apenas o jid exemplo : [email protected]node src/index.jsDurante o login no Telegram, informe seu número e o código de verificação.
Ao iniciar o bot (zap.js), escaneie o QR Code exibido no terminal para conectar ao WhatsApp.
Exemplo:
/add celular promoção desconto
O bot irá salvar essas palavras associadas ao seu número, e só enviará promoções que contenham alguma delas.
Para listar todos os grupos que o bot participa, você pode usar o seguinte código no seu script:
const gruposParticipando = await sock.groupFetchAllParticipating();
const grupos = Object.values(gruposParticipando);
grupos.forEach(g => console.log(`Nome: ${g.subject} | JID: ${g.id}`));- Node.js >= 16
- Conta do Telegram
- Conta ativa no WhatsApp
- As imagens são salvas em
./temp/e podem ser removidas automaticamente após o envio (usandofs.unlink). - Os dados de autenticação do WhatsApp são armazenados em
auth_info_baileys/. - As palavras-chave dos usuários são salvas em
usuarios.json.
Sinta-se à vontade para adaptar, melhorar ou contribuir com novas funcionalidades para o bot!