UNPKG

rsshub

Version:
44 lines (43 loc) 1.52 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as PRESETS } from "./header-generator-DACPoxdp.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; import { load } from "cheerio"; //#region lib/routes/jjmhw/book.ts const route = { path: "/book/:id", categories: ["anime"], example: "/jjmhw/book/90", parameters: { id: "漫画 id,漫画主页的地址栏中" }, radar: [{ source: ["www.jjmhw.cc/book/:id"] }], name: "漫画更新", maintainers: ["junfengP"], handler, url: "www.jjmhw.cc" }; async function handler(ctx) { const { id } = ctx.req.param(); const baseUrl = "https://www.jjmhw.cc"; const link = `${baseUrl}/book/${id}`; const $ = load(await rofetch(link)); const list = $("#detail-list-select > li > a").toArray().toReversed().slice(0, ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 10).map((item) => { const $item = $(item); return { title: $item.text(), link: new URL($item.attr("href"), baseUrl).href }; }); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const $ = load(await rofetch(item.link, { headerGeneratorOptions: PRESETS.MODERN_ANDROID })); item.description = $(".comicpage img").toArray().map((ele) => `<img src="${$(ele).attr("data-original")}">`).join(""); return item; }))); return { title: `漫小肆 ${$("div.info > h1").text()}`, description: $(".content").text(), image: $(".cover img").attr("src"), link, item: items }; } //#endregion export { route };