-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbot.js
More file actions
131 lines (112 loc) · 4.56 KB
/
bot.js
File metadata and controls
131 lines (112 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
const { Client, LocalAuth, MessageMedia } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');
const fs = require('fs');
// Inicialização do cliente com autenticação local
console.log('🔄 Iniciando cliente...');
const client = new Client({
authStrategy: new LocalAuth(),
puppeteer: {
headless: false, // Tornar o navegador visível para depuração
args: ['--no-sandbox', '--disable-setuid-sandbox', '--start-maximized'], // Argumentos do navegador
dumpio: true, // Exibir logs do navegador no terminal
slowMo: 250 // Atraso para ajudar na depuração
}
});
// QR Code
client.on('qr', (qr) => {
qrcode.generate(qr, { small: true });
console.log('📲 Escaneie o QR Code com seu WhatsApp!');
});
// Evento de autenticação
client.on('authenticated', () => {
console.log('🔐 Autenticado com sucesso!');
});
// Falha de autenticação
client.on('auth_failure', (msg) => {
console.error('❌ Falha na autenticação:', msg);
});
// Bot pronto
client.on('ready', () => {
console.log('✅ Bot está pronto para uso!');
// Adiciona um log extra para garantir que a inicialização foi bem-sucedida
console.log('O cliente foi inicializado corretamente!');
});
// Cliente desconectado
client.on('disconnected', (reason) => {
console.warn('🔌 Cliente desconectado:', reason);
});
// Enviar imagens da tabela de valores
const enviarTabelaDeValores = async (message) => {
const imagens = [
'./tabela_valores.jpg',
'./tabela_valores2.jpg',
'./tabela_valores3.jpg',
'./tabela_valores4.jpg'
];
await message.reply('Aqui está a tabela de valores dos mergulhos 😁⬇:');
for (const path of imagens) {
if (fs.existsSync(path)) {
const media = new MessageMedia(
'image/jpeg',
fs.readFileSync(path).toString('base64'),
path.split('/').pop()
);
await message.reply(media);
} else {
console.warn(`⚠️ Imagem não encontrada: ${path}`);
}
}
};
// Respostas automáticas
const respostas = {
saudacao: `Olá, bem-vindo à Deep Dive! 🌊
Agradecemos seu contato. Conheça nossas modalidades de mergulho, fale com a gente e explore um novo mundo debaixo da água! 🤿✨`,
prazo: `Temos um prazo rápido para envio de suas fotos!
Em até 24 horas serão todas enviadas. 💙`,
agradecimento: 'De nada! Fico feliz em ajudar. Se precisar de mais informações, é só chamar! 😊',
curso: 'Obrigado pelo interesse! Em breve, eu mesmo entrarei em contato com mais detalhes sobre o curso de mergulho. Fique ligado!',
lancha: 'Sobre informações do passeio de lancha, vou encaminhar o contato do responsável diretamente para ter informações mais precisas!😃 +5581999163732',
agendamento: 'Logo logo estaremos finalizando o agendamento do seu mergulho! 😎🤿 Fique atento que entraremos em contato em breve para confirmar os detalhes!',
padrao: 'Para uma melhor solução do seu problema, em breve iremos entrar em contato! 😁'
};
// Análise de mensagens recebidas
client.on('message', async (message) => {
const texto = message.body.toLowerCase();
try {
if (
['olá', 'oi', 'bom dia', 'boa tarde', 'boa noite', 'hola', 'hi', 'hello', 'hey'].some(t => texto.includes(t))
) {
await message.reply(respostas.saudacao);
} else if (
['tabela de valores', 'preços', 'preço', 'quais são os valores', 'valor do mergulho', 'quanto custa o mergulho'].some(t => texto.includes(t))
) {
await enviarTabelaDeValores(message);
} else if (
['prazo de entrega', 'fotos', 'quando ficam prontas as fotos', 'quando vou receber as fotos', 'pulseiras', 'cd minhas fotos', 'solicitando', 'pulseira'].some(t => texto.includes(t))
) {
await message.reply(respostas.prazo);
} else if (
['obrigado', 'valeu', 'agradeço', 'gracias', 'thanks', 'obg', 'thank you'].some(t => texto.includes(t))
) {
await message.reply(respostas.agradecimento);
} else if (
texto.includes('curso de mergulho')
) {
await message.reply(respostas.curso);
} else if (
['passeio de lancha', 'passeio de barco', 'lancha'].some(t => texto.includes(t))
) {
await message.reply(respostas.lancha);
} else if (
['agendar mergulho', 'quero agendar um mergulho', 'agendar', 'eu quero agendar um mergulho', 'horário de mergulho'].some(t => texto.includes(t))
) {
await message.reply(respostas.agendamento);
} else {
await message.reply(respostas.padrao);
}
} catch (err) {
console.error('❌ Erro ao responder mensagem:', err);
}
});
// Inicializar o cliente
client.initialize();