import { load } from 'cheerio' import http from './utils/http.js' /** * Cari berita di Kompas.com * @param {string} keyword - kata kunci pencarian * @param {number} limit - max hasil (default 10) * @returns {Promise<{status, total, data, source}>} */ export async function searchKompas(keyword, limit = 10) { try { const url = `https://search.kompas.com/search/?q=${encodeURIComponent(keyword)}` const { data } = await http.get(url) const $ = load(data) const results = [] $('.articleItem').each((_, el) => { if (results.length >= limit) return false const title = $(el).find('.articleTitle').text().trim() const link = $(el).find('a').attr('href') ?? null const time = $(el).find('.articlePost-date').text().trim() || null const source = 'Kompas' const thumb = $(el).find('img').attr('src') ?? null if (title && link) results.push({ title, link, time, source, thumb }) }) return { status: true, total: results.length, source: 'kompas', data: results } } catch (err) { return { status: false, source: 'kompas', error: err.response?.status || err.message } } }