Base para bots de WhatsApp multifuncional com diversos comandos prontos.
CRIANDO UM BOT DE WHATSAPP DO ZERO (GUIA DEFINITIVO) - BASE COMPLETA + 6 COMANDOS - JAVASCRIPT
- Idiomas disponíveis
- Atenção - suporte
- Sobre o projeto
- Instalação
- Configuração de API
- Funcionalidades
- Auto responder
- Implementação técnica
- Estrutura de pastas
- Erros comuns
- Canal do YouTube
- Contribuindo com o projeto
- Licença
- Disclaimer
Nós não prestamos suporte gratuíto caso você tenha adquirido esta base com terceiros e tenha pago por isso. Este bot sempre foi e sempre será gratuíto. Caso você tenha pago para utilizar este bot, do jeito que ele está hoje, saiba que você foi enganado. Nós não temos vínculo nenhum com terceiros e não nos responsabilizamos por isso, também não prestamos suporte nessas condições. Os únicos recursos pagos deste bot são pertencentes à https://api.spiderx.com.br, nossa API oficial.
Este projeto não possui qualquer vínculo oficial com o WhatsApp. Ele foi desenvolvido de forma independente para interações automatizadas por meio da plataforma.
Não nos responsabilizamos por qualquer uso indevido deste bot. É de responsabilidade exclusiva do usuário garantir que sua utilização esteja em conformidade com os termos de uso do WhatsApp e a legislação vigente.
1 - Abra o Termux e execute os comandos abaixo. Não tem o Termux? Clique aqui e baixe a última versão ou clique aqui e baixe versão da Play Store caso a versão do MediaFire anterior não funcione.
pkg upgrade -y && pkg update -y && pkg install git -y && pkg install nodejs-lts -y && pkg install ffmpeg -y2 - Habilite o acesso da pasta storage, no termux.
termux-setup-storage3 - Escolha uma pasta de sua preferência pra colocar os arquivos do bot.
Pastas mais utilizadas:
- /sdcard
- /storage/emulated/0
- /storage/emulated/0/Download (muito comum quando você baixa o bot pelo .zip)
No nosso exemplo, vamos para a /sdcard
cd /sdcard4 - Clone o repositório.
git clone https://github.com/guiireal/takeshi-bot.git5 - Entre na pasta que foi clonada.
cd takeshi-bot6 - Habilite permissões de leitura e escrita (faça apenas 1x esse passo).
chmod -R 755 ./*7 - Execute o bot.
npm start8 - Insira o número de telefone e pressione enter.
9 - Informe o código que aparece no termux, no seu WhatsApp, assista aqui, caso não encontre essa opção.
10 - Aguarde 10 segundos, depois digite CTRL + C para parar o bot.
Depois, Configure o arquivo config.js que está dentro da pasta src.
// Prefixo padrão dos comandos.
export const PREFIX = "/";
// Emoji do bot (mude se preferir).
export const BOT_EMOJI = "🤖";
// Nome do bot (mude se preferir).
export const BOT_NAME = "Takeshi Bot";
// LID do bot.
// Para obter o LID do bot, use o comando <prefixo>lid respondendo em cima de uma mensagem do número do bot
// Troque o <prefixo> pelo prefixo do bot (ex: /lid).
export const BOT_LID = "12345678901234567890@lid";
// LID do dono do bot.
// Para obter o LID do dono do bot, use o comando <prefixo>meu-lid
// Troque o <prefixo> pelo prefixo do bot (ex: /meu-lid).
export const OWNER_LID = "12345678901234567890@lid";11 - Inicie o bot novamente.
npm startAs principais hosts já oferecem o Takeshi como bot padrão, não sendo necessário nenhuma instalação manual!
Hosts suportadas:
| Bronxys | Nexfuture | Speed Cloud |
|---|---|---|
| Grupo oficial | Grupo oficial | Grupo oficial |
![]() |
![]() |
![]() |
| Bores Host | TED Host |
|---|---|
| Grupo oficial | Grupo oficial |
![]() |
![]() |
1 - Abra um novo terminal e execute os seguintes comandos.
sudo apt update && sudo apt upgrade && sudo apt-get update && sudo apt-get upgrade && sudo apt install ffmpeg2 - Instale o curl se não tiver.
sudo apt install curl3 - Instale o git se não tiver.
sudo apt install git4 - Instale o NVM.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash5 - Atualize o source do seu ambiente
source ~/.bashrc6 - Instale a versão 22 mais recente do node.js.
nvm install 227 - Verifique se a versão foi instalada e está ativa.
node -v # Deve exibir a versão 228 - Verifique se o npm foi instalado junto.
npm -v # Deverá exibir a versão do npm9 - Instale o PM2 (recomendado).
npm install pm2 -g10 - Clone o repositório do bot onde você desejar.
git clone https://github.com/guiireal/takeshi-bot.git11 - Entre na pasta clonada.
cd takeshi-bot12 - Digite o seguinte comando.
npm start13 - O bot vai solicitar que você digite seu número de telefone. Digite exatamente como está no WhatsApp e apenas números.
Não adicione o 9º dígito em números que não sejam de SP ou RJ.
14 - Conecte o bot no PM2
pm2 start npm --name "takeshi-bot" -- start15 - O bot exibirá um código de pareamento que deve ser colocado em dispositivos conectados no seu WhatsApp.
16 - Vá em dispositivos conectados no seu WhatsApp.
17 - Clique em conectar dispositivo
18 - No canto inferior, clique em Conectar com número de telefone
19 - Coloque o código de pareamento que você recebeu no terminal, que foi feito no passo 15.
20 - Após isso, no terminal que ficou parado, ele deve exibir que foi conectado com sucesso
21 - Digite CTRL + C para parar o bot.
22 - Agora inicie ele pelo PM2, executando o seguinte código abaixo.
pm2 start npm --name "takeshi-bot" -- start23 - Aguarde 10 segundos, depois digite CTRL + C para parar o bot.
Depois, Configure o arquivo config.js que está dentro da pasta src.
// Prefixo padrão dos comandos.
export const PREFIX = "/";
// Emoji do bot (mude se preferir).
export const BOT_EMOJI = "🤖";
// Nome do bot (mude se preferir).
export const BOT_NAME = "Takeshi Bot";
// LID do bot (no caso, o que você rodará o bot).
// Para obter o LID do bot, use o comando <prefixo>lid respondendo em cima de uma mensagem do número do bot
// Troque o <prefixo> pelo prefixo do bot (ex: /lid).
export const BOT_LID = "12345678901234567890@lid";
// LID do dono do bot (no caso, o seu!).
// Para obter o LID do dono do bot, use o comando <prefixo>meu-lid
// Troque o <prefixo> pelo prefixo do bot (ex: /meu-lid).
export const OWNER_LID = "12345678901234567890@lid";Lembre-se de trocar os números acima pelos seus números, obviamente e tbm ver se o seu prefixo é a barra /.
24 - Por fim, teste o bot!
Edite o arquivo config.js que está dentro da pasta src e cole sua api key da plataforma Spider X API, conforme o código abaixo.
Para obter seu token, acesse: https://api.spiderx.com.br e crie sua conta gratuitamente!
export const SPIDER_API_TOKEN = "seu_token_aqui";| Função | Contexto | Requer a Spider X API? |
|---|---|---|
| Alterar imagem do bot | Dono | ❌ |
| Desligar o bot no grupo | Dono | ❌ |
| Executar comandos de infra | Dono | ❌ |
| Ligar o bot no grupo | Dono | ❌ |
| Modificar o prefixo por grupo | Dono | ❌ |
| Obter o ID do grupo | Dono | ❌ |
| Abrir grupo | Admin | ❌ |
| Agendar mensagem | Admin | ❌ |
| Anti audio | Admin | ❌ |
| Anti documento | Admin | ❌ |
| Anti evento | Admin | ❌ |
| Anti imagem | Admin | ❌ |
| Anti link | Admin | ❌ |
| Anti produto | Admin | ❌ |
| Anti sticker | Admin | ❌ |
| Anti video | Admin | ❌ |
| Banir membros | Admin | ❌ |
| Excluir mensagens | Admin | ❌ |
| Fechar grupo | Admin | ❌ |
| Gestão de mensagens do auto-responder | Admin | ❌ |
| Ligar/desligar auto responder | Admin | ❌ |
| Ligar/desligar boas vindas | Admin | ❌ |
| Ligar/desligar saída de grupo | Admin | ❌ |
| Limpar chat | Admin | ❌ |
| Marcar todos (hide-tag) | Admin | ❌ |
| Mudar nome do grupo | Admin | ❌ |
| Mute/unmute | Admin | ❌ |
| Obter o link do grupo | Admin | ❌ |
| Revelar | Admin | ❌ |
| Somente admins | Admin | ❌ |
| Ver saldo | Admin | ❌ |
| Borrar imagem | Membro | ❌ |
| Busca CEP | Membro | ❌ |
| Canvas Bolsonaro | Membro | ✅ |
| Canvas cadeia | Membro | ✅ |
| Canvas inverter | Membro | ✅ |
| Canvas RIP | Membro | ✅ |
| Comandos de diversão/brincadeiras | Membro | ❌ |
| Espelhar imagem | Membro | ❌ |
| Fake chat | Membro | ❌ |
| Figurinha de texto animada | Membro | ✅ |
| Geração de imagens com IA | Membro | ✅ |
| Gerar link | Membro | ❌ |
| Google Gemini | Membro | ✅ |
| Google search | Membro | ✅ |
| Imagem com contraste | Membro | ❌ |
| Imagem IA Flux | Membro | ✅ |
| Imagem pixelada | Membro | ❌ |
| Imagem preto/branco | Membro | ❌ |
| Ping | Membro | ❌ |
| Play áudio | Membro | ✅ |
| Play vídeo | Membro | ✅ |
| Renomear figurinha | Membro | ❌ |
| Sticker | Membro | ❌ |
| Sticker IA | Membro | ✅ |
| Sticker para imagem | Membro | ❌ |
| TikTok video download | Membro | ✅ |
| YT MP3 | Membro | ✅ |
| YT MP4 | Membro | ✅ |
| YT search | Membro | ✅ |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-audio-de-arquivo |
Enviar áudio de arquivo | Demonstra envio de arquivos de áudio do armazenamento local | Opção de mensagem de voz, resposta citada |
/enviar-audio-de-url |
Enviar áudio de URL | Demonstra envio de arquivos de áudio de URLs externas | Opção de mensagem de voz, resposta citada |
/enviar-audio-de-buffer |
Enviar áudio de buffer | Demonstra envio de arquivos de áudio de buffers de memória | Opção de mensagem de voz, resposta citada, buffer de arquivo ou URL |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-imagem-de-arquivo |
Enviar imagem de arquivo | Demonstra envio de arquivos de imagem do armazenamento local | Suporte a legenda personalizada, menções, resposta citada |
/enviar-imagem-de-url |
Enviar imagem de URL | Demonstra envio de arquivos de imagem de URLs externas | Envio direto de URL, suporte a menções, resposta citada |
/enviar-imagem-de-buffer |
Enviar imagem de buffer | Demonstra envio de arquivos de imagem de buffers de memória | Buffer de arquivo ou URL, legenda opcional, menções, resposta citada |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-video-de-arquivo |
Enviar vídeo de arquivo | Demonstra envio de arquivos de vídeo do armazenamento local | Suporte a legenda personalizada, menções, resposta citada |
/enviar-video-de-url |
Enviar vídeo de URL | Demonstra envio de arquivos de vídeo de URLs externas | Envio direto de URL, suporte a menções, resposta citada |
/enviar-video-de-buffer |
Enviar vídeo de buffer | Demonstra envio de arquivos de vídeo de buffers de memória | Buffer de arquivo ou URL, legenda opcional, menções, resposta citada |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-gif-de-arquivo |
Enviar GIF de arquivo | Demonstra envio de arquivos GIF do armazenamento local | Suporte a legenda, menções, resposta citada |
/enviar-gif-de-url |
Enviar GIF de URL | Demonstra envio de arquivos GIF de URLs externas | Suporte a legenda, menções, resposta citada |
/enviar-gif-de-buffer |
Enviar GIF de buffer | Demonstra envio de arquivos GIF de buffers de memória | Buffer de arquivo ou URL, legenda, menções, resposta citada |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-sticker-de-arquivo |
Enviar sticker de arquivo | Demonstra envio de arquivos sticker do armazenamento local | Formato WebP |
/enviar-sticker-de-url |
Enviar sticker de URL | Demonstra envio de arquivos sticker de URLs externas | Formato WebP |
/enviar-sticker-de-buffer |
Enviar sticker de buffer | Demonstra envio de arquivos sticker de buffers de memória | Buffer de arquivo ou URL |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-enquete |
Enviar enquete | Demonstra como criar e enviar enquetes/votações em grupos | Suporte a escolha única ou múltipla escolha |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-localizacao |
Enviar localização | Demonstra como enviar localizações, com latitude e longitude | Suporte a latitude e longitude de qualquer lugar do mundo |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-contato |
Enviar contato | Demonstra como enviar contatos | Os contatos podem ser chamados ou adicionados à lista dos seus contatos |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-documento-de-arquivo |
Enviar documento de arquivo | Demonstra envio de arquivos de documento do armazenamento local | Especificação de tipo MIME, nome de arquivo personalizado |
/enviar-documento-de-url |
Enviar documento de URL | Demonstra envio de arquivos de documento de URLs externas | Especificação de tipo MIME, nome de arquivo personalizado |
/enviar-documento-de-buffer |
Enviar documento de buffer | Demonstra envio de arquivos de documento de buffers de memória | Buffer de arquivo ou URL, tipo MIME, nome de arquivo personalizado |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/enviar-texto |
Enviar texto | Demonstra envio de mensagens de texto simples | Suporte a menções |
/enviar-resposta |
Enviar resposta | Demonstra envio de mensagens de resposta | Respostas de sucesso/erro/aviso |
/enviar-reacoes |
Enviar reações | Demonstra envio de emojis de reação | Várias reações emoji, reações de sucesso/erro/aviso |
/enviar-mensagem-editada |
Enviar mensagem editada | Demonstra envio de mensagens editadas | Pode editar mensagens enviadas de forma direta ou respondendo alguém |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/obter-metadados-mensagem |
Obter metadados da mensagem | Demonstra extração avançada de metadados de mensagem ou mensagem citada | Análise detalhada, suporte a resposta de mensagens, informações técnicas, menções automáticas |
/obter-dados-grupo |
Obter dados do grupo | Demonstra extração de informações do grupo | Metadados do grupo, lista de participantes, informações de admin |
/funcoes-grupo |
Funções do grupo | Demonstra uso de funções utilitárias do grupo | Extração de nome, dono, admins, participantes do grupo |
| Comando | Função | Descrição | Características |
|---|---|---|---|
/exemplos-de-mensagens |
Central de exemplos | Central com lista de todos os exemplos disponíveis | Menu interativo, acesso direto a todos os exemplos |
O Takeshi Bot possui um auto-responder embutido, edite o arquivo em ./database/auto-responder.json:
[
{
"match": "Oi",
"answer": "Olá, tudo bem?"
},
{
"match": "Tudo bem",
"answer": "Estou bem, obrigado por perguntar"
},
{
"match": "Qual seu nome",
"answer": "Meu nome é Takeshi Bot"
}
]O menu do bot fica dentro da pasta src no arquivo chamado menu.js
As mensagens ficam dentro da pasta src no arquivo chamado messages.js
O arquivo src/middlewares/customMiddleware.js permite adicionar lógica personalizada sem mexer nos arquivos core do bot.
- ✅ Adicionar comportamentos personalizados
- ✅ Criar logs customizados
- ✅ Implementar lógica específica por grupo
- ✅ Reagir a eventos automáticos
export async function customMiddleware({ socket, webMessage, type, commonFunctions }) {
if (type === "message" && commonFunctions) {
const { userMessageText } = commonFunctions;
if (userMessageText?.toLowerCase() === "oi") {
await socket.sendMessage(webMessage.key.remoteJid, {
react: { text: "👋", key: webMessage.key }
});
}
}
}export async function customMiddleware({ webMessage, type, action }) {
if (type === "participant" && action === "add") {
console.log("Novo membro:", webMessage.messageStubParameters[0]);
}
}export async function customMiddleware({ type, action, commonFunctions }) {
const grupoVIP = "120363123456789012@g.us";
if (type === "participant" && action === "add" && commonFunctions?.remoteJid === grupoVIP) {
const { sendReply } = commonFunctions;
await sendReply("🎉 Bem-vindo ao grupo VIP!");
}
}export async function customMiddleware({ type, commonFunctions }) {
if (type === "message" && commonFunctions) {
const {
sendReply,
sendSuccessReply,
args,
userMessageText,
isImage,
downloadImage,
} = commonFunctions;
// Sua lógica personalizada aqui
}
}| Parâmetro | Tipo | Descrição |
|---|---|---|
socket |
Object | Socket do Baileys para enviar mensagens |
webMessage |
Object | Mensagem completa do WhatsApp |
type |
String | "message" ou "participant" |
commonFunctions |
Object/null | Todas as funções do bot (null para eventos de participantes) |
action |
String | "add" ou "remove" (apenas em eventos de participantes) |
data |
String | Dados do participante (apenas em eventos de participantes) |
Todos os comandos de exemplo estão localizados em: src/commands/member/exemplos/
Todos os comandos de exemplo utilizam funções de src/utils/loadCommonFunctions.js:
sendAudioFromFile(filePath, asVoice, quoted)sendAudioFromURL(url, asVoice, quoted)sendAudioFromBuffer(buffer, asVoice, quoted)
sendImageFromFile(filePath, caption, mentions, quoted)sendImageFromURL(url, caption, mentions, quoted)sendImageFromBuffer(buffer, caption, mentions, quoted)
sendVideoFromFile(filePath, caption, mentions, quoted)sendVideoFromURL(url, caption, mentions, quoted)sendVideoFromBuffer(buffer, caption, mentions, quoted)
sendGifFromFile(file, caption, mentions, quoted)sendGifFromURL(url, caption, mentions, quoted)sendGifFromBuffer(buffer, caption, mentions, quoted)
sendStickerFromFile(filePath, quoted)sendStickerFromURL(url, quoted)sendStickerFromBuffer(buffer, quoted)
sendDocumentFromFile(filePath, mimetype, fileName, quoted)sendDocumentFromURL(url, mimetype, fileName, quoted)sendDocumentFromBuffer(buffer, mimetype, fileName, quoted)
sendText(text, mentions)sendReply(text, mentions)sendReact(emoji)sendSuccessReply(text, mentions),sendErrorReply(text, mentions),sendWarningReply(text, mentions),sendWaitReply(text, mentions)sendSuccessReact(),sendErrorReact(),sendWarningReact(),sendWaitReact()
getGroupMetadata()- Obter metadados completos do grupogetGroupName()- Obter apenas o nome do grupogetGroupOwner()- Obter informações do dono do grupogetGroupParticipants()- Obter todos os participantes do grupogetGroupAdmins()- Obter administradores do grupo
await sendImageFromFile("./assets/image.jpg", "Olá @5511999999999!", ["5511999999999@s.whatsapp.net"]);
await sendImageFromURL(
"https://exemplo.com/imagem.png",
"Olá @5511999999999 e @5511888888888!",
["5511999999999@s.whatsapp.net", "5511888888888@s.whatsapp.net"]
);await sendVideoFromFile("./assets/video.mp4", "Confira este vídeo @5511999999999!", ["5511999999999@s.whatsapp.net"]);
const buffer = fs.readFileSync("./video.mp4");
await sendVideoFromBuffer(
buffer,
"Vídeo especial para @5511999999999 e @5511888888888!",
["5511999999999@s.whatsapp.net", "5511888888888@s.whatsapp.net"]
);await sendGifFromFile(
"./assets/gif.mp4",
"Tá ai @5511999999999!",
["5511999999999@s.whatsapp.net"]
);Definições completas do TypeScript estão disponíveis em src/@types/index.d.ts com:
- Assinaturas de função detalhadas
- Descrições de parâmetros
- Exemplos de uso
- Especificações de tipo de retorno
Todos os arquivos de exemplo são armazenados em assets/samples/:
sample-audio.mp3- Arquivo de áudio para testesample-document.pdf- Documento PDF para testesample-document.txt- Documento de texto para testesample-image.jpg- Arquivo de imagem para testesample-sticker.webp- Arquivo de sticker para testesample-video.mp4- Arquivo de vídeo para teste
- 📁 assets ➔ arquivos de mídia
- 📁 auth ➔ arquivos da conexão do bot
- 📁 images ➔ arquivos de imagem
- 📁 funny ➔ gifs de comandos de diversão
- 📁 samples ➔ arquivos de exemplo para testes
- 📁 temp ➔ arquivos temporários
- 📁 database ➔ arquivos de dados
- 📁 node_modules ➔ módulos do Node.js
- 📁 src ➔ código fonte do bot (geralmente você mexerá mais aqui)
- 📁 @types ➔ pasta onde fica as definições de tipos
- 📁 commands ➔ pasta onde ficam os comandos
- 📁 admin ➔ pasta onde ficam os comandos administrativos
- 📁 member ➔ pasta onde ficam os comandos gerais (todos poderão utilizar)
- 📁 exemplos ➔ pasta com 24 comandos de exemplo
- 📁 owner ➔ pasta onde ficam os comandos de dono (grupo e bot)
- 📝🤖-como-criar-comandos.js ➔ arquivo de exemplo de como criar um comando
- 📁 errors ➔ classes de erros usadas nos comandos
- 📁 middlewares ➔ interceptadores de requisições
- 📁 services ➔ serviços diversos
- 📁 utils ➔ utilitários
- 📝 config.js ➔ arquivo de configurações do bot
- 📝 connection.js ➔ script de conexão do bot com a biblioteca Baileys
- 📝 index.js ➔ script ponto de entrada do bot
- 📝 loader.js ➔ script de carga de funções
- 📝 menu.js ➔ menu do bot
- 📝 messages.js ➔ arquivos de mensagens de boas vindas e saída
- 📝 test.js ➔ script de testes
- 📝 ⚡-cases-estao-aqui.js ➔ easter egg
- 📝 CONTRIBUTING.md ➔ eguia de contribuição
- 📝 .gitignore ➔ arquivo para não subir certas pastas no GitHub
- 📝 LICENSE ➔ arquivo de licença
- 📝 package-lock.json ➔ arquivo de cache das dependências do bot
- 📝 package.json ➔ arquivo de definição das dependências do bot
- 📝 README.md ➔ esta documentação
- 📝 reset-qr-auth.sh ➔ arquivo para excluir as credenciais do bot
- 📝 update.sh ➔ arquivo de atualização do bot
Execute bash update.sh
Execute npm run test:all
O erro abaixo acontece quando é feito o download do arquivo ZIP direto no celular em algumas versões do apk ZArchiver e também de celulares sem root.
Para resolver, siga o tutorial de instalação via git clone.
Caso dê algum erro na conexão, digite o seguinte comando:
bash reset-qr-auth.shDepois, remova o dispositivo do WhatsApp indo nas configurações do WhatsApp em "dispositivos conectados" e repita
o procedimento de iniciar o bot com npm start.
Abra o termux, digite termux-setup-storage e depois, aceite as permissões
Verifique se você não tem dois Takeshi's rodando no seu celular, muitas pessoas baixam o zip e seguem o tutorial, porém, o tutorial não explica pelo zip, e sim, pelo git clone.
Geralmente as pessoas que cometem esse erro, ficam com dois bots:
- O primeiro dentro da
/sdcard - O segundo na pasta
/storage/emulated/0/Download, que no zip fica comotakeshi-bot-main
Você deve apagar um dos bots e tanto configurar quanto executar apenas um
O Takeshi Bot é um projeto open source e sua contribuição é muito bem-vinda!
- 🐛 Reportar bugs através das Issues
- ✨ Sugerir novas funcionalidades
- 🔧 Contribuir com código (novos comandos, correções, melhorias)
- ⭐ Dar uma estrela no repositório
- Leia nosso Guia de Contribuição completo
- Verifique as Issues abertas
- Siga o template obrigatório para Pull Requests
Este projeto está licenciado sob a Licença Pública Geral GNU (GPL-3.0). Isso significa que:
- Você pode usar este código como quiser, seja para projetos pessoais ou comerciais.
- Você pode modificar o código para adaptá-lo às suas necessidades.
- Você pode compartilhar ou vender o código, mesmo modificado, mas precisa:
- Manter os créditos ao autor original (Guilherme França - Dev Gui).
- Tornar o código modificado disponível sob a mesma licença GPL-3.0.
O que você não pode fazer:
- Não pode transformar este código em algo proprietário (fechado) e impedir outras pessoas de acessá-lo ou usá-lo.
Esta licença garante que todos tenham acesso ao código-fonte e podem colaborar livremente, promovendo o compartilhamento e o aprimoramento do projeto.
Neste projeto, precisei hospedar a node_modules, para auxiliar quem está rodando o bot pelo celular, pois muitos deles podem não rodar o npm install pelo termux corretamente.

















