Bot automático de promoções Shopee → Telegram. Busca produtos de vários nichos, filtra com IA (Gemini) e posta no canal com links de afiliado.
cp .env.example .envEdite o .env com suas chaves:
| Variável | Onde conseguir |
|---|---|
GEMINI_KEY |
Google AI Studio |
TELEGRAM_BOT_TOKEN |
@BotFather no Telegram |
TELEGRAM_CHAT_ID |
ID ou @username do seu canal |
SHOPEE_ID |
Shopee Affiliate |
SHOPEE_KEY |
Painel do Shopee Affiliate → App Secret |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtcaffeinate -s .venv/bin/python shopee_bot.pyO
caffeinate -simpede o Mac de dormir, mesmo com a tampa fechada (desde que esteja na tomada).
| Ação | Comando |
|---|---|
| Iniciar o bot | caffeinate -s .venv/bin/python shopee_bot.py |
| Iniciar em background | nohup caffeinate -s .venv/bin/python shopee_bot.py & |
| Ver logs em tempo real | tail -f log_do_bot.txt |
| Parar o bot | Ctrl+C ou kill $(pgrep -f shopee_bot) |
| Postar manualmente | .venv/bin/python shopee_manual.py |
PromoAqui/
├── shopee_bot.py # Motor principal (loop, fila, publicação)
├── shopee_api.py # Integração com API Shopee (busca + links)
├── ia_curator.py # Curadoria e copywriting com Gemini AI
├── telegram_sender.py # Envio de mensagens para o Telegram
├── storage.py # Persistência SQLite (memória, fila, histórico)
├── config.py # Constantes, logging, keywords por nicho
├── shopee_manual.py # Modo manual (postar produto específico)
├── requirements.txt # Dependências Python
├── .env # Chaves de API (NÃO versionar!)
├── .env.example # Template do .env
├── promoaqui.db # Banco SQLite (criado automaticamente)
└── log_do_bot.txt # Log rotativo do bot
- Busca: Sorteia 5 nichos e 1 keyword aleatória por nicho (75+ keywords no pool)
- Filtragem: Remove produtos já processados (memória de 30 dias no SQLite)
- Curadoria IA: Gemini analisa o lote e aprova os melhores (rejeita peças, duplicatas, etc.)
- Diversidade: Intercala nichos na fila (máx. 2 consecutivos do mesmo nicho)
- Publicação: Posta 1 produto a cada 5 minutos no canal Telegram
- Backoff: Se esgotar produtos, espera 10 min antes de tentar novamente