initial-commit
This commit is contained in:
138
README.md
Normal file
138
README.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# 🛒 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](https://discord.com/developers/applications))
|
||||
- **Chromium** (instalado automaticamente pelo Puppeteer)
|
||||
|
||||
## 🚀 Instalação
|
||||
|
||||
### 1. Clone ou baixe o projeto
|
||||
|
||||
```bash
|
||||
cd "Nova pasta"
|
||||
```
|
||||
|
||||
### 2. Instale as dependências
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 3. Configure o arquivo `.env`
|
||||
|
||||
```bash
|
||||
# Copie o template
|
||||
cp .env.example .env
|
||||
|
||||
# Edite com suas configurações
|
||||
notepad .env
|
||||
```
|
||||
|
||||
Preencha **obrigatoriamente**:
|
||||
- `DISCORD_TOKEN` — Token do seu bot Discord
|
||||
- `DISCORD_CHANNEL_ID` — ID do canal onde as ofertas serão enviadas
|
||||
|
||||
### 4. Inicie o bot
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
1. Acesse [Discord Developer Portal](https://discord.com/developers/applications)
|
||||
2. Clique em **"New Application"** e dê um nome
|
||||
3. Vá em **"Bot"** no menu lateral
|
||||
4. Clique em **"Add Bot"**
|
||||
5. Copie o **Token** e cole no `.env`
|
||||
6. Em **"Privileged Gateway Intents"**, ative:
|
||||
- ✅ Message Content Intent
|
||||
7. Vá em **"OAuth2" > "URL Generator"**
|
||||
- Selecione scope: `bot`
|
||||
- Selecione permissões: `Send Messages`, `Embed Links`, `Attach Files`
|
||||
8. 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
|
||||
Reference in New Issue
Block a user