9ddee2bb184b8b524f41b7cc21b8c4e22f448d44
🛒 Bot de Ofertas - E-commerce para Discord
Bot automatizado que monitora os principais e-commerces brasileiros e envia ofertas diretamente para seu servidor Discord.
🏪 Lojas Monitoradas
| Loja | Página Monitorada |
|---|---|
| 🛒 Amazon Brasil | Ofertas do Dia |
| 🌐 AliExpress | Super Ofertas / Flash Deals |
| 🛍️ Shopee | Flash Sale / Ofertas Relâmpago |
| 🤝 Mercado Livre | Ofertas do Dia |
✨ Funcionalidades
- Monitoramento automático a cada 30 minutos (configurável)
- Embeds ricos com imagem, preço, desconto e link direto
- Deduplicação inteligente — nunca envia a mesma oferta duas vezes no dia
- Reset diário automático do cache de ofertas
- Detecção de cupons quando disponíveis na página
- Frete grátis identificado automaticamente (Mercado Livre)
- Suporte a afiliados Amazon (tag configurável)
- Retry automático em caso de falha no scraping
- Logs detalhados de cada ciclo de verificação
📋 Pré-requisitos
- Node.js v18 ou superior
- Token de Bot Discord (criar aqui)
- Chromium (instalado automaticamente pelo Puppeteer)
🚀 Instalação
1. Clone ou baixe o projeto
cd "Nova pasta"
2. Instale as dependências
npm install
3. Configure o arquivo .env
# Copie o template
cp .env.example .env
# Edite com suas configurações
notepad .env
Preencha obrigatoriamente:
DISCORD_TOKEN— Token do seu bot DiscordDISCORD_CHANNEL_ID— ID do canal onde as ofertas serão enviadas
4. Inicie o bot
npm start
⚙️ Configurações
Todas as configurações ficam no arquivo .env:
| Variável | Descrição | Padrão |
|---|---|---|
DISCORD_TOKEN |
Token do bot Discord | obrigatório |
DISCORD_CHANNEL_ID |
ID do canal de ofertas | obrigatório |
SCRAPE_INTERVAL_MINUTES |
Intervalo entre verificações | 30 |
MAX_OFFERS_PER_SITE |
Máx. ofertas por site por ciclo | 5 |
AMAZON_AFFILIATE_TAG |
Tag de afiliado Amazon | vazio |
PUPPETEER_HEADLESS |
Navegador invisível | true |
PAGE_TIMEOUT |
Timeout de carregamento (ms) | 30000 |
📁 Estrutura do Projeto
├── .env.example # Template de configurações
├── .gitignore # Arquivos ignorados pelo Git
├── package.json # Dependências e scripts
├── README.md # Esta documentação
├── data/ # Cache de deduplicação (auto-criado)
│ └── sent_offers.json # Registro de ofertas enviadas
└── src/
├── index.js # Ponto de entrada
├── config.js # Configurações centralizadas
├── bot.js # Lógica principal do bot
├── scrapers/ # Módulos de scraping por loja
│ ├── index.js # Agregador de scrapers
│ ├── amazon.js # Scraper Amazon Brasil
│ ├── aliexpress.js # Scraper AliExpress
│ ├── shopee.js # Scraper Shopee
│ └── mercadolivre.js # Scraper Mercado Livre
└── utils/ # Utilitários
├── browser.js # Gerenciador Puppeteer
├── dedup.js # Sistema de deduplicação
└── embed.js # Construtor de embeds Discord
🤖 Criando o Bot no Discord
- Acesse Discord Developer Portal
- Clique em "New Application" e dê um nome
- Vá em "Bot" no menu lateral
- Clique em "Add Bot"
- Copie o Token e cole no
.env - Em "Privileged Gateway Intents", ative:
- ✅ Message Content Intent
- Vá em "OAuth2" > "URL Generator"
- Selecione scope:
bot - Selecione permissões:
Send Messages,Embed Links,Attach Files
- Selecione scope:
- Copie a URL gerada e abra no navegador para adicionar o bot ao seu servidor
⚠️ Observações Importantes
- Sites podem mudar seus layouts — os seletores CSS podem precisar de atualização periódica.
- Rate limiting — o bot respeita limites de taxa do Discord com delays entre envios.
- Uso de recursos — Puppeteer consome memória; recomenda-se ao menos 2GB RAM.
- Termos de uso — Verifique os termos de cada site antes de usar em produção.
🔧 Troubleshooting
| Problema | Solução |
|---|---|
| Bot não conecta | Verifique se o DISCORD_TOKEN está correto |
| Canal não encontrado | Verifique o DISCORD_CHANNEL_ID e se o bot tem acesso |
| Nenhuma oferta | Sites podem ter mudado layout; verifique logs |
| Erro de timeout | Aumente PAGE_TIMEOUT no .env |
| Alto uso de memória | Reduza MAX_OFFERS_PER_SITE ou aumente intervalo |
📄 Licença
MIT
Description
Languages
JavaScript
100%