UNPKG

rsshub

Version:
71 lines (69 loc) 2.55 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/cnki/debut.ts init_esm_shims(); const rootUrl = "https://chn.oversea.cnki.net"; const route = { path: "/journals/debut/:name", categories: ["journal"], example: "/cnki/journals/debut/LKGP", parameters: { name: "期刊缩写,可以在网址中得到" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["navi.cnki.net/knavi/journals/:name/detail"] }], name: "网络首发", maintainers: ["Fatpandac"], handler }; async function handler(ctx) { const name = ctx.req.param("name"); const journalUrl = `${rootUrl}/knavi/JournalDetail?pcode=CjFD&pykm=${name}`; const title = await got_default.get(journalUrl).then((res) => load(res.data)("head > title").text()); const $ = load((await got_default({ method: "post", url: `${rootUrl}/knavi/JournalDetail/GetnfAllOutline`, form: { pageIdx: "0", type: "2", pcode: "CJFD", pykm: name } })).data); const list = $("dd").toArray().map((item) => ({ title: $(item).find("span.name > a").text().trim(), link: `${rootUrl}/kcms/detail/${new URLSearchParams(new URL(`${rootUrl}/${$(item).find("span.name > a").attr("href")}`).search).get("url")}.html`, pubDate: parseDate($(item).find("span.company").text(), "YYYY-MM-DD HH:mm:ss") })); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const $$1 = load((await got_default.get(item.link)).data); item.description = art(path.join(__dirname, "templates/desc-ffba0d62.art"), { author: $$1("h3.author > span").toArray().map((item$1) => $$1(item$1).text()).join(" "), company: $$1("a.author").toArray().map((item$1) => $$1(item$1).text()).join(" "), content: $$1("div.row > span.abstract-text").parent().text() }); return item; }))); return { title: `${title} - 全网首发`, link: `https://navi.cnki.net/knavi/journals/${name}/detail`, item: items }; } //#endregion export { route };