const axios = require('axios') const cheerio = require('cheerio') async function mcpedlSearch(query) { try { const { data } = await axios.get(`https://mcpedl.org/?s=${encodeURIComponent(query)}`, { timeout: 30000, headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', }, }) const $ = cheerio.load(data) const result = [] $('.g-block.size-20 article').each((i, el) => { if (i >= 20) return const title = $(el).find('.entry-title a').text().trim() || 'No title' const link = $(el).find('.entry-title a').attr('href') || 'No link' let image = $(el).find('.post-thumbnail img').attr('data-srcset') || $(el).find('.post-thumbnail img').attr('src') || 'No image' if (image.includes(',')) { image = image.split(',')[0].split(' ')[0] } const rating = $(el).find('.rating-wrapper span').text().trim() || 'No rating' result.push({ title, link, image, rating }) }) return result } catch (error) { throw new Error('Failed to search MCPEDL.') } } module.exports = { mcpedlSearch }