UNPKG

rsshub

Version:
91 lines (89 loc) 2.57 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/shuiguopai/index.ts init_esm_shims(); const route = { path: "/", radar: [{ source: ["shuiguopai.com/"], target: "" }], name: "Unknown", maintainers: ["nczitzk"], handler, url: "shuiguopai.com/", features: { nsfw: true } }; async function handler(ctx) { const rootUrl = "https://sgptv.vip"; const apiRootUrl = "https://api.cbbee0.com"; const listUrl = `${apiRootUrl}/v1_2/homePage`; const filmUrl = `${apiRootUrl}/v1_2/filmInfo`; let items = (await got_default({ method: "post", url: listUrl, json: { device_id: "", hm: "008-api", last_page: 0, length: ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit")) : 50, ltype: 1, page: 1, userToken: "" } })).data.data.list.map((item) => ({ title: item.title, guid: item.library_id, link: `${rootUrl}/play-details/${item.library_id}`, pubDate: timezone(parseDate(item.show_time_origin, "YYYY-MM-DD HH:mm:ss"), 8), category: item.tags.map((t) => t.tag_title) })); items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => { const detailResponse = await got_default({ method: "get", url: item.link }); const content = load(detailResponse.data); content("iframe").remove(); let videos; const filmId = detailResponse.data.match(/film_id:"([\d,]+)",/)?.[1]; if (filmId) { const data = (await got_default({ method: "post", url: filmUrl, json: { device_id: "", film_id: filmId, hm: "008-api", userToken: "" } })).data.data; videos = data.map((d) => d.download_url); item.category = data.flatMap((d) => d.tags.map((t) => t.tag_title)); item.author = data.map((d) => d.actor).join(" "); } item.description = art(path.join(__dirname, "templates/description-3864cae2.art"), { videos, description: content(".content").html() }); return item; }))); return { title: "水果派", link: rootUrl, item: items }; } //#endregion export { route };