75 lines
2.7 KiB
JavaScript
75 lines
2.7 KiB
JavaScript
/**
|
|
* config.js - Configurações centralizadas do bot
|
|
*
|
|
* Carrega variáveis de ambiente e define valores padrão
|
|
* para todas as configurações necessárias.
|
|
*/
|
|
|
|
require('dotenv').config();
|
|
|
|
const config = {
|
|
// ── Discord ──────────────────────────────────────────
|
|
discord: {
|
|
token: process.env.DISCORD_TOKEN,
|
|
channelId: process.env.DISCORD_CHANNEL_ID,
|
|
},
|
|
|
|
// ── URLs de monitoramento ────────────────────────────
|
|
urls: {
|
|
amazon: process.env.AMAZON_URL || 'https://www.amazon.com.br/deals',
|
|
aliexpress: process.env.ALIEXPRESS_URL || 'https://pt.aliexpress.com/campaign/wow/gcp-plus/ae/right/shareon',
|
|
shopee: process.env.SHOPEE_URL || 'https://shopee.com.br/flash_sale',
|
|
mercadolivre: process.env.MERCADOLIVRE_URL || 'https://www.mercadolivre.com.br/ofertas',
|
|
},
|
|
|
|
// ── Scraping ─────────────────────────────────────────
|
|
scraping: {
|
|
intervalMinutes: parseInt(process.env.SCRAPE_INTERVAL_MINUTES, 10) || 30,
|
|
maxOffersPerSite: parseInt(process.env.MAX_OFFERS_PER_SITE, 10) || 5,
|
|
pageTimeout: parseInt(process.env.PAGE_TIMEOUT, 10) || 30000,
|
|
headless: process.env.PUPPETEER_HEADLESS !== 'false', // padrão: true
|
|
},
|
|
|
|
// ── Afiliados ────────────────────────────────────────
|
|
affiliate: {
|
|
amazonTag: process.env.AMAZON_AFFILIATE_TAG || '',
|
|
},
|
|
|
|
// ── Cores dos embeds por loja ────────────────────────
|
|
colors: {
|
|
amazon: 0xFF9900, // Laranja Amazon
|
|
aliexpress: 0xE43A2B, // Vermelho AliExpress
|
|
shopee: 0xEE4D2D, // Laranja Shopee
|
|
mercadolivre: 0xFFE600, // Amarelo Mercado Livre
|
|
},
|
|
|
|
// ── Emojis por loja ─────────────────────────────────
|
|
emojis: {
|
|
amazon: '🛒',
|
|
aliexpress: '🌐',
|
|
shopee: '🛍️',
|
|
mercadolivre: '🤝',
|
|
},
|
|
};
|
|
|
|
// Validação das configurações obrigatórias
|
|
function validateConfig() {
|
|
const errors = [];
|
|
|
|
if (!config.discord.token) {
|
|
errors.push('DISCORD_TOKEN não configurado no .env');
|
|
}
|
|
if (!config.discord.channelId) {
|
|
errors.push('DISCORD_CHANNEL_ID não configurado no .env');
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
console.error('❌ Erros de configuração:');
|
|
errors.forEach((err) => console.error(` → ${err}`));
|
|
console.error('\n📄 Copie o arquivo .env.example para .env e configure as variáveis.');
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
module.exports = { config, validateConfig };
|