diff --git a/src/bot.js b/src/bot.js index 3111275..0081607 100644 --- a/src/bot.js +++ b/src/bot.js @@ -53,9 +53,10 @@ async function startBot() { try { const statusEmbed = buildStatusEmbed( `🟒 Bot iniciado com sucesso!\n\n` + + `πŸ–₯️ **Foco: Hardware de PC**\n` + `⏱️ Monitorando ofertas a cada **${config.scraping.intervalMinutes} minutos**.\n` + - `πŸͺ Lojas monitoradas: Amazon, AliExpress, Shopee, Mercado Livre\n\n` + - `Primeira verificaΓ§Γ£o iniciando agora...` + `πŸͺ Lojas: Amazon, AliExpress, Shopee, Mercado Livre\n\n` + + `GPU β€’ CPU β€’ RAM β€’ SSD β€’ Placa-mΓ£e β€’ Gabinete β€’ Fonte β€’ Cooler` ); await channel.send({ embeds: [statusEmbed] }); } catch (error) { @@ -116,8 +117,17 @@ async function runScrapingCycle(channel) { continue; } + // Filtrar apenas ofertas de hardware de PC + const hardwareOffers = filterHardwareOffers(rawOffers); + console.log(` πŸ–₯️ ${rawOffers.length} ofertas β†’ ${hardwareOffers.length} sΓ£o hardware de PC`); + + if (hardwareOffers.length === 0) { + console.log(` ℹ️ Nenhuma oferta de hardware encontrada em ${scraper.name}.`); + continue; + } + // Filtrar ofertas jΓ‘ enviadas (deduplicaΓ§Γ£o) - const newOffers = filterNewOffers(rawOffers); + const newOffers = filterNewOffers(hardwareOffers); if (newOffers.length === 0) { console.log(` ℹ️ Todas as ofertas de ${scraper.name} jΓ‘ foram enviadas hoje.`); @@ -167,6 +177,20 @@ async function runScrapingCycle(channel) { console.log(''); } +/** + * Filtra ofertas para manter apenas as de hardware de PC + * Verifica se o nome do produto contΓ©m alguma palavra-chave + */ +function filterHardwareOffers(offers) { + const keywords = config.hardwareKeywords; + if (!keywords || keywords.length === 0) return offers; + + return offers.filter((offer) => { + const name = (offer.name || '').toLowerCase(); + return keywords.some((keyword) => name.includes(keyword.toLowerCase())); + }); +} + /** * Encerra o bot de forma limpa */ diff --git a/src/config.js b/src/config.js index 12da7e0..9c888da 100644 --- a/src/config.js +++ b/src/config.js @@ -14,12 +14,12 @@ const config = { channelId: process.env.DISCORD_CHANNEL_ID, }, - // ── URLs de monitoramento ──────────────────────────── + // ── URLs de monitoramento (foco: Hardware de PC) ──── 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', + amazon: process.env.AMAZON_URL || 'https://www.amazon.com.br/s?k=hardware+pc&i=computers&rh=n%3A16339926011&deals-widget=deals', + aliexpress: process.env.ALIEXPRESS_URL || 'https://pt.aliexpress.com/category/7/computer-and-office.html', + shopee: process.env.SHOPEE_URL || 'https://shopee.com.br/search?keyword=placa%20de%20video%20hardware%20pc', + mercadolivre: process.env.MERCADOLIVRE_URL || 'https://www.mercadolivre.com.br/ofertas#c:MLB1648', }, // ── Scraping ───────────────────────────────────────── @@ -30,6 +30,35 @@ const config = { headless: process.env.PUPPETEER_HEADLESS !== 'false', // padrΓ£o: true }, + // ── Filtro de Hardware de PC ───────────────────────── + // Ofertas que contenham ao menos uma dessas palavras-chave serΓ£o aceitas + hardwareKeywords: [ + // Placas de vΓ­deo / GPU + 'placa de vΓ­deo', 'placa de video', 'gpu', 'geforce', 'rtx', 'gtx', + 'radeon', 'rx ', 'nvidia', 'amd', + // Processadores / CPU + 'processador', 'cpu', 'ryzen', 'intel', 'core i3', 'core i5', + 'core i7', 'core i9', 'core ultra', + // MemΓ³ria RAM + 'memΓ³ria ram', 'memoria ram', 'ram ddr', 'ddr4', 'ddr5', + // Armazenamento + 'ssd', 'nvme', 'm.2', 'hd ', 'hdd', 'disco rΓ­gido', + // Placas-mΓ£e + 'placa-mΓ£e', 'placa mΓ£e', 'placa mae', 'motherboard', 'mobo', + // Gabinete e Fonte + 'gabinete', 'fonte de alimentaΓ§Γ£o', 'fonte gamer', 'psu', + // Cooler e RefrigeraΓ§Γ£o + 'cooler', 'water cooler', 'air cooler', 'fan ', 'ventoinha', + 'dissipador', 'pasta tΓ©rmica', + // PerifΓ©ricos gamer / hardware + 'monitor gamer', 'monitor 144hz', 'monitor 240hz', + // Marcas de hardware + 'corsair', 'kingston', 'crucial', 'asus', 'msi', 'gigabyte', + 'evga', 'zotac', 'galax', 'asrock', 'nzxt', 'cooler master', + 'hyperx', 'wd ', 'western digital', 'samsung 970', 'samsung 980', + 'samsung 990', + ], + // ── Afiliados ──────────────────────────────────────── affiliate: { amazonTag: process.env.AMAZON_AFFILIATE_TAG || '',