rsshub
Version:
Make RSS Great Again!
52 lines (50 loc) • 1.57 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs";
import { t as cache_default } from "./cache-Bo__VnGm.mjs";
import { load } from "cheerio";
//#region lib/routes/xbookcn/blog.ts
const route = {
path: "/:label?",
categories: ["reading"],
example: "/xbookcn/精选作品",
parameters: { label: "按名称分类,详见https://blog.xbookcn.net/p/all.html" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
nsfw: true
},
name: "短篇",
maintainers: ["Lyunvy"],
handler: async (ctx) => {
const { label = "精选作品" } = ctx.req.param();
const url = `https://blog.xbookcn.net/search/label/${label}`;
const $ = load(await ofetch_default(url));
const list = $(".blog-posts.hfeed .date-outer").find(".post").toArray().map((elem) => {
const a = $(elem).find(".post-title a");
return {
title: a.text().trim(),
link: a.attr("href"),
category: []
};
});
return {
title: "xbookcn",
link: url,
item: await Promise.all(list.map(async (item) => await cache_default.tryGet(item.link, async () => {
const $$1 = load(await ofetch_default(item.link));
item.description = $$1(".post-body.entry-content").html() || "无内容";
item.category = $$1(".post-labels a").toArray().map((el) => $$1(el).text().trim());
return item;
})))
};
}
};
//#endregion
export { route };