UNPKG

rsshub

Version:
51 lines (49 loc) 1.98 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import "./is-worker-DESPicPc.mjs"; import { t as cache_default } from "./cache-SV6W5EPy.mjs"; import "./helpers-Bo4JQYdN.mjs"; import { t as got_default } from "./got-CO-ndVl2.mjs"; import { load } from "cheerio"; import { decode } from "iconv-lite"; //#region lib/routes/wenku8/volume.ts const route = { path: "/volume/:id", categories: ["reading"], example: "/wenku8/volume/1163", parameters: { id: "小说 id, 可在对应小说页 URL 中找到" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "最新卷", maintainers: ["huangliangshusheng"], handler }; async function handler(ctx) { const aid = Number.parseInt(ctx.req.param("id")); const link = `https://www.wenku8.net/novel/${Math.floor(aid / 1e3)}/${aid}/index.htm`; const $ = load(await get(link)); const vid = $(".vcss").last().parent().next().find("a")[0].attribs.href.replace(".htm", ""); const volumeUrl = `https://dl.wenku8.com/packtxt.php?aid=${aid}&vid=${vid}&charset=gbk`; const lastestChapters = $(".vcss").last().parent().nextAll().find("a").toArray().map((a) => ({ link: a.attribs.href })); return { title: `轻小说文库 ${$("#title").text()} 最新卷`, link, item: await cache_default.tryGet(volumeUrl, async () => [...(await get(volumeUrl)).matchAll(/\s{2}(\S.*)\r?\n([\S\s]+?)\r?\n\r?\n/g)].map((chapter, index) => ({ title: chapter[1], description: chapter[2].split("\r\n").filter((line) => line.trim()).map((line) => `<p>${line.trim()}</p>`).join(""), guid: Buffer.from(`${vid}${chapter[1]}`).toString("base64"), link: lastestChapters[index]?.link })).filter((chapter) => chapter.description).toReversed()) }; } const get = async (url) => decode(await got_default(url).buffer(), "gbk"); //#endregion export { route };