initial-commit
This commit is contained in:
74
src/config.js
Normal file
74
src/config.js
Normal file
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* 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 };
|
||||
Reference in New Issue
Block a user