const axios = require('axios'); const cheerio = require('cheerio'); const baseUrl = 'https://an1.com'; const android1 = { search: async (query) => { const url = `https://an1.com/?story=${query}&do=search&subaction=search`; try { const { data } = await axios.get(url); const $ = cheerio.load(data); const items = []; $('.item').each((index, element) => { const name = $(element).find('.name a span').text(); const developer = $(element).find('.developer').text(); const rating = $(element).find('.current-rating').css('width').replace('%', ''); const imageUrl = $(element).find('.img img').attr('src'); const link = $(element).find('.name a').attr('href'); items.push({ name, developer, rating: parseFloat(rating) / 20, imageUrl, link }); }); console.log('Data:', items); return items; } catch (error) { console.error("Error:", error.response ? error.response.data : error.message); return { success: false, message: error.message }; } }, detail: async (url) => { try { const { data } = await axios.get(url); const $ = cheerio.load(data); const title = $('h1.title.xxlgf').text(); const imageUrl = $('figure.img img').attr('src'); const developer = $('.developer[itemprop="publisher"] span').text(); const descriptionElement = $('.description #spoiler').html(); const description = descriptionElement ? descriptionElement.replace(/<[^>]*>/g, '') : 'N/A'; const version = $('span[itemprop="softwareVersion"]').text(); const fileSize = $('span[itemprop="fileSize"]').text(); const operatingSystem = $('span[itemprop="operatingSystem"]').text(); const ratingElement = $('#ratig-layer-4959 .current-rating').css('width'); const rating = ratingElement ? parseFloat(ratingElement.replace('%', '')) / 20 : 0; const ratingCount = $('#vote-num-id-4959').text(); const downloadUrl = $('.download_line.green').attr('href'); const screenshots = []; $('.app_screens_list a').each((index, element) => { const screenshotUrl = $(element).find('img').attr('src'); screenshots.push(screenshotUrl); }); const appInfo = { title: title || 'N/A', imageUrl: imageUrl || '', developer: developer || 'N/A', description: description, version: version || 'N/A', fileSize: fileSize || 'N/A', operatingSystem: operatingSystem || 'N/A', rating: rating, ratingCount: ratingCount || '0', downloadUrl: baseUrl + downloadUrl || '', screenshots: screenshots }; console.log('Data:', appInfo); return appInfo; } catch (error) { console.error("Error:", error.response ? error.response.data : error.message); return { success: false, message: error.message }; } }, download: async (urls) => { try { const { data } = await axios.get(urls); const $ = cheerio.load(data); const title = $('.box-file h1.title.fbold').text() || 'N/A'; const image = $('.box-file-img img').attr('src') || ''; const version = $('#a_ver').text().trim() || 'N/A'; const url = $('#pre_download').attr('href') || ''; const downloadInfo = { title: title, imageUrl: image, version: version, downloadUrl: url }; console.log('Data:', downloadInfo); return downloadInfo; } catch (error) { console.error("Error:", error.response ? error.response.data : error.message); return { success: false, message: error.message }; } } }; module.exports = { android1 }