UNPKG

rsshub

Version:
66 lines (64 loc) 1.99 kB
import "./config-C37vj7VH.mjs"; import { t as logger_default } from "./logger-Czu8UMNd.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./proxy-Db7uGcYb.mjs"; import { n as puppeteer_default } from "./puppeteer-DGmvuGvT.mjs"; import { load } from "cheerio"; //#region lib/routes/apkpure/versions.ts const route = { path: "/versions/:pkg/:region?", categories: ["program-update"], example: "/apkpure/versions/jp.co.craftegg.band/jp", parameters: { pkg: "Package name", region: "Region code, `en` by default" }, features: { requireConfig: false, requirePuppeteer: true, antiCrawler: true, supportBT: false, supportPodcast: false, supportScihub: false }, name: "Versions", maintainers: ["maple3142"], handler }; async function handler(ctx) { const { pkg, region = "en" } = ctx.req.param(); const baseUrl = "https://apkpure.com"; const link = `${baseUrl}/${region}/${pkg}/versions`; const browser = await puppeteer_default(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on("request", (request) => { request.resourceType() === "document" ? request.continue() : request.abort(); }); logger_default.http(`Requesting ${link}`); await page.goto(link, { waitUntil: "domcontentloaded" }); const r = await page.evaluate(() => document.documentElement.innerHTML); await browser.close(); const $ = load(r); const img = new URL($(".ver-top img").attr("src")); img.searchParams.delete("w"); const items = $(".ver li").toArray().map((ver) => { ver = $(ver); return { title: ver.find(".ver-item-n").text(), description: ver.html(), link: `${baseUrl}${ver.find("a").attr("href")}`, pubDate: parseDate(ver.find(".update-on").text().replaceAll(/年|月/g, "-").replace("日", "")) }; }); return { title: $(".ver-top-h1").text(), description: $(".ver-top-title p").text(), image: img.href, language: region ?? "en", link, item: items }; } //#endregion export { route };