UNPKG

rsshub

Version:
52 lines (50 loc) 1.57 kB
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 };