rsshub
Version:
Make RSS Great Again!
71 lines (69 loc) • 2.55 kB
JavaScript
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 };