rsshub
Version:
Make RSS Great Again!
57 lines (55 loc) • 1.72 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import { t as ViewType } from "./types-D84BRIt4.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import "./ofetch-BIyrKU3Y.mjs";
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
import "./helpers-DxBp0Pty.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import { load } from "cheerio";
//#region lib/routes/acfun/video.ts
const route = {
path: "/user/video/:uid",
radar: [{
source: ["www.acfun.cn/u/:id"],
target: "/user/video/:id"
}],
name: "用户投稿",
parameters: { uid: "用户 UID" },
categories: ["anime"],
example: "/acfun/user/video/6102",
view: ViewType.Videos,
maintainers: ["wdssmq"],
handler
};
async function handler(ctx) {
const url = `https://www.acfun.cn/u/${ctx.req.param("uid")}`;
const host = "https://www.acfun.cn";
const data = (await got_default(url, { headers: { Referer: host } })).data;
const $ = load(data);
const title = $("title").text();
const description = $(".signature .complete").text();
const list = $("#ac-space-video-list a").toArray();
return {
title,
link: url,
description,
image: $("head style").text().match(/.user-photo{\n\s*background:url\((.*)\) 0% 0% \/ 100% no-repeat;/)[1],
item: list.map((item) => {
item = $(item);
const itemTitle = item.find("p.title").text();
const itemImg = item.find("figure img").attr("src");
const itemUrl = item.attr("href");
const itemDate = item.find(".date").text();
return {
title: itemTitle,
description: `<img src="${itemImg.split("?")[0]}">`,
link: host + itemUrl,
pubDate: parseDate(itemDate, "YYYY/MM/DD")
};
})
};
}
//#endregion
export { route };