UNPKG

rsshub

Version:
68 lines (66 loc) 2.17 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import { t as ViewType } from "./types-gOySfSXJ.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 dayjs from "dayjs"; import { load } from "cheerio"; //#region lib/routes/yilinzazhi/latest.ts const route = { path: "/latest", categories: ["reading"], view: ViewType.Articles, example: "/yilinzazhi/latest", radar: [{ source: ["www.yilinzazhi.com"], target: "/" }], name: "近期文章汇总", maintainers: ["g0ngjie"], handler, url: "www.yilinzazhi.com", description: "最近一期的文章汇总" }; async function handler() { const baseUrl = "https://www.yilinzazhi.com/"; const $ = load((await got_default(baseUrl)).data); const currentYear = dayjs().year(); const stage = $($(".year-section").toArray().find((el) => $(el).find(".year-title").text().includes(currentYear + ""))).find("a").toArray().map((elem) => { const aTag = $(elem); return { link: baseUrl + aTag.attr("href"), title: aTag.text() }; })[0]; const contents = (await cache_default.tryGet(stage.link, async () => { const $$ = load((await got_default(stage.link)).data); return $$(".maglistbox dl").toArray().map((catalog) => { return { title: $$(catalog).find("dt span").text(), tables: $$(catalog).find("a").toArray().map((aTag) => { const href = $$(aTag).attr("href"); const yearType = currentYear + href.slice(4, 5); return { title: $$(aTag).text(), link: `${baseUrl}${currentYear}/yl${yearType}/${href}` }; }) }; }); })).flatMap((catalog) => catalog.tables); const items = await Promise.all(contents.map(async (target) => await cache_default.tryGet(target.link, async () => { target.description = load((await got_default(target.link)).data)(".blkContainerSblk.collectionContainer").html(); return target; }))); return { title: "意林 - 近期文章汇总", link: stage.link, item: items }; } //#endregion export { route };