UNPKG

rsshub

Version:
75 lines (73 loc) 2.22 kB
import "./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 got_default } from "./got-KxxWdaxq.mjs"; import { load } from "cheerio"; //#region lib/routes/ncpssd/newlist.ts const route = { path: "/newlist", categories: ["study"], example: "/ncpssd/newlist", radar: [{ source: ["ncpssd.cn/", "ncpssd.cn/newlist"] }], name: "最新文献", maintainers: ["LyleLee"], handler, url: "ncpssd.cn/" }; async function handler() { const baseUrl = "https://www.ncpssd.cn"; const argument = "/newlist?type=0"; const data = (await got_default({ method: "get", url: baseUrl + argument })).data; const $ = load(data); const list = $(".news-list > li").toArray().map((p) => { const title = $(p).find("a").text().replaceAll(/(\r\n|\n|\r)/gm, "").trim(); const articleUrl = baseUrl + $(p).find("a").attr("onclick")?.match(/\('(.*?)'\)/)?.[1]; const parseUrl = new URL(articleUrl); return { title, link: articleUrl, lngid: parseUrl.searchParams.get("id"), type: parseUrl.searchParams.get("typename"), pageType: parseUrl.searchParams.get("nav") }; }); const paper = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const url = "https://www.ncpssd.cn/articleinfoHandler/getjournalarticletable"; const headers = { Accept: "application/json, text/javascript, */*; q=0.01", "Content-Type": "application/json; charset=UTF-8" }; const requestBody = { lngid: item.lngid, type: item.type, pageType: item.pageType }; const response = await got_default.post(url, { headers, json: requestBody, responseType: "json" }); return { title: item.title, link: item.link, author: response.data.data.showwriter, description: response.data.data.remarkc, pubDate: parseDate(response.data.data.publishDateTime) }; }))); return { title: "国家哲学社会科学文献中心", link: baseUrl + argument, item: paper }; } //#endregion export { route };