UNPKG

rsshub

Version:
57 lines (55 loc) 1.89 kB
import { t as config } from "./config-C37vj7VH.mjs"; import { t as logger_default } from "./logger-Czu8UMNd.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./proxy-Db7uGcYb.mjs"; import { n as puppeteer_default } from "./puppeteer-DGmvuGvT.mjs"; import { load } from "cheerio"; //#region lib/routes/iqiyi/video.ts const route = { path: "/user/video/:uid", categories: ["multimedia"], example: "/iqiyi/user/video/2289191062", parameters: { uid: "用户名" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["iqiyi.com/u/:uid/*"] }], name: "用户视频", maintainers: ["talengu", "JimenezLi"], handler }; async function handler(ctx) { const link = `https://www.iqiyi.com/u/${ctx.req.param("uid")}/videos`; const browser = await puppeteer_default(); const data = await cache_default.tryGet(link, async () => { const page = await browser.newPage(); await page.setRequestInterception(true); page.on("request", (request) => { request.resourceType() === "document" || request.resourceType() === "script" ? request.continue() : request.abort(); }); logger_default.http(`Requesting ${link}`); await page.goto(link, { waitUntil: "domcontentloaded" }); await page.waitForSelector("li.pic-txt-li"); const $ = load(await page.content()); const list = $("li.pic-txt-li"); return { title: $("title").text(), link, item: list.toArray().map((item) => ({ title: $(item).attr("title"), pubDate: parseDate($(item).find(".li-sub span.sub-date").text(), "YYYY-MM-DD"), link: $(item).find(".li-dec a").attr("href") })) }; }, config.cache.routeExpire, false); await browser.close(); return data; } //#endregion export { route };