feat-foco-hardware-pc

This commit is contained in:
axel
2026-04-06 20:53:04 -03:00
parent 9ddee2bb18
commit 0bba8085ee
2 changed files with 61 additions and 8 deletions

View File

@@ -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
*/

View File

@@ -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 || '',