feat-foco-hardware-pc
This commit is contained in:
30
src/bot.js
30
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
|
||||
*/
|
||||
|
||||
@@ -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 || '',
|
||||
|
||||
Reference in New Issue
Block a user