rsshub
Version:
Make RSS Great Again!
91 lines (89 loc) • 2.57 kB
JavaScript
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 };