UNPKG

rsshub

Version:
82 lines (79 loc) 3 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/nifd/research.ts const rootUrl = "http://www.nifd.cn"; const titleMap = { "7a6a826d-b525-42aa-b550-4236e524227f": "周报", "128d602c-7041-4546-beff-83e605f8a370": "双周报", "0712e220-fa3b-44d4-9226-bc3d57944e19": "月报", "b66aa691-87ee-4bfe-ac6b-2460386166ee": "季报", "c714853a-f09e-4510-8835-30a448fff7e3": "年报", "17d0b29b-7912-498a-b9c3-d30508220158": "课题报告", "e6a6d3a5-4bda-4739-9765-e4e41c900bcc": "学术报告", "3d23ba0e-4f46-44c2-9d21-6b38df4cdd70": "工作论文", "3333d2af-91d6-429b-be83-28b92f31b6d7": "研究评价", "6363bdc7-3e1b-4771-a904-6162cd3a3143": "其他报告" }; const route = { path: "/research/:categoryGuid?", categories: ["finance"], example: "/nifd/research/3333d2af-91d6-429b-be83-28b92f31b6d7", parameters: { categoryGuid: "资讯类型,默认为周报" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "研究", maintainers: ["Fatpandac"], handler, description: `资讯类型可以从网址中获取,如: \`http://www.nifd.cn/Research?categoryGuid=7a6a826d-b525-42aa-b550-4236e524227f\` 对应 \`/nifd/research/7a6a826d-b525-42aa-b550-4236e524227f\`` }; async function handler(ctx) { const categoryGuid = ctx.req.param("categoryGuid") ?? "7a6a826d-b525-42aa-b550-4236e524227f"; const url = `${rootUrl}/Research?categoryGuid=${categoryGuid}`; const $ = load((await got_default.get(url)).data); const list = $("div.qr-main-item").toArray().map((item) => ({ title: $(item).find("h2").text(), link: rootUrl + $(item).find("a").attr("href"), author: $(item).find("p > span:nth-child(2)").text(), pubDate: parseDate($(item).find("p > span:nth-child(1)").text(), "YYYY-MM-DD") })); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const content = load((await got_default.get(item.link)).data); item.description = content("div.qrd-content").html(); const $enclosureEl = content("div.report-bottom a").first(); const enclosureUrl = $enclosureEl.attr("href"); if (enclosureUrl) { const enclosureItem = { enclosure_url: new URL(enclosureUrl, rootUrl).href, enclosure_type: `application/${enclosureUrl.split(/\./).pop() ?? "pdf"}`, enclosure_title: $enclosureEl.prev().text() }; item = { ...item, ...enclosureItem }; } return item; }))); return { title: `国家金融与发展实验室 - ${titleMap[categoryGuid]}`, link: url, item: items }; } //#endregion export { route };