UNPKG

rsshub

Version:
468 lines (443 loc) 21 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/chinacdc/index.ts init_esm_shims(); const handler = async (ctx) => { const { category = "zxyw" } = ctx.req.param(); const limit = Number.parseInt(ctx.req.query("limit") ?? "11", 10); const targetUrl = new URL(category.endsWith("/") ? category : `${category}/`, "https://www.chinacdc.cn").href; const $ = load(await ofetch_default(targetUrl)); const language = $("html").prop("lang"); let items = $("ul.xw_list li").slice(0, limit).toArray().map((item) => { const $item = $(item); const aEl = $item.find("a"); const title$1 = aEl.prop("title") === void 0 ? aEl.text() : aEl.prop("title"); const dateMatch = title$1.match(/(\d{4}-\d{2}-\d{2})$/); let pubDate; let cleanTitle = title$1; if (dateMatch) { pubDate = parseDate(dateMatch[0]); cleanTitle = title$1.replace(/\d{4}-\d{2}-\d{2}$/, "").trim(); } else { const spanText = $item.find("span").text().trim(); pubDate = spanText ? parseDate(spanText) : void 0; } const description = art(path.join(__dirname, "templates/description-ca64252b.art"), { intro: $item.find("p.zy").text() }); const imageSrc = $item.find("img").prop("src"); const imageType = imageSrc?.split(/\./).pop(); const image = imageSrc ? new URL(imageSrc, targetUrl).href : void 0; const media = {}; if (imageType && image) media[imageType] = { url: image }; return { title: cleanTitle, description, pubDate, link: new URL(aEl.prop("href"), targetUrl).href, content: { html: description, text: $item.find("p.zy").text() }, image, banner: image, language, media: Object.keys(media).length > 0 ? media : void 0 }; }); items = (await Promise.all(items.map((item) => { if (!item.link && typeof item.link !== "string") return item; return cache_default.tryGet(item.link, async () => { const $$ = load(await ofetch_default(item.link)); const detailTitle = $$("h5").text(); const description = art(path.join(__dirname, "templates/description-ca64252b.art"), { description: $$("div.TRS_Editor").html() }); const detailDate = $$("span.fb em").text().trim(); const pubDate = detailDate ? parseDate(detailDate) : item.pubDate; return { title: detailTitle || item.title, description, link: item.link, pubDate, content: { html: description, text: $$("div.TRS_Editor").text() }, image: item.image, banner: item.banner, language, media: item.media }; }); }))).filter((_) => true); const author = $("title").text(); const title = $("div.erjiCurNav").text(); const feedImage = new URL($("img.logo").prop("src"), targetUrl).href; return { title: `${author} - ${title}`, description: title, link: targetUrl, item: items, allowEmpty: true, image: feedImage, author, language, id: targetUrl }; }; const route = { path: "/:category{.+}?", name: "通用", url: "www.chinacdc.cn", maintainers: ["nczitzk"], handler, example: "/chinacdc/zxyw", parameters: { category: "分类,默认为 `zxyw`,即中心要闻,可在对应分类页 URL 中找到,Category, `zxyw`,即中心要闻 by default" }, description: `::: tip 若订阅 [中心要闻](https://www.chinacdc.cn/zxyw/),网址为 \`https://www.chinacdc.cn/zxyw/\`,请截取 \`https://www.chinacdc.cn/\` 到末尾 \`/\` 的部分 \`zxyw\` 作为 \`category\` 参数填入,此时目标路由为 [\`/chinacdc/zxyw\`](https://rsshub.app/chinacdc/zxyw)。 ::: | [中心要闻](https://www.chinacdc.cn/zxyw/) | [通知公告](https://www.chinacdc.cn/tzgg/) | | ----------------------------------------- | ----------------------------------------- | | [zxyw](https://rsshub.app/chinacdc/zxyw) | [tzgg](https://rsshub.app/chinacdc/tzgg) | <details> <summary>更多分类</summary> #### [党建园地](https://www.chinacdc.cn/dqgz/djgz/) | [党建工作](https://www.chinacdc.cn/dqgz/djgz/) | [廉政文化](https://www.chinacdc.cn/djgz_13611/) | [工会工作](https://www.chinacdc.cn/ghgz/) | [团青工作](https://www.chinacdc.cn/tqgz/) | [理论学习](https://www.chinacdc.cn/tqgz_13618/) | | -------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------------- | | [dqgz/djgz](https://rsshub.app/chinacdc/dqgz/djgz) | [dqgz/djgz_13611](https://rsshub.app/chinacdc/dqgz/djgz_13611) | [dqgz/ghgz](https://rsshub.app/chinacdc/dqgz/ghgz) | [dqgz/tqgz](https://rsshub.app/chinacdc/dqgz/tqgz) | [dqgz/tqgz_13618](https://rsshub.app/chinacdc/dqgz/tqgz_13618) | #### [疾控应急](https://www.chinacdc.cn/jkyj/) | [传染病](https://www.chinacdc.cn/jkyj/crb2/) | [突发公共卫生事件](https://www.chinacdc.cn/jkyj/tfggws/) | [慢性病与伤害防控](https://www.chinacdc.cn/jkyj/mxfcrxjb2/) | [烟草控制](https://www.chinacdc.cn/jkyj/yckz/) | [营养与健康](https://www.chinacdc.cn/jkyj/yyyjk2/) | | -------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------- | ------------------------------------------------------ | | [jkyj/crb2](https://rsshub.app/chinacdc/jkyj/crb2) | [jkyj/tfggws](https://rsshub.app/chinacdc/jkyj/tfggws) | [jkyj/mxfcrxjb2](https://rsshub.app/chinacdc/jkyj/mxfcrxjb2) | [jkyj/yckz](https://rsshub.app/chinacdc/jkyj/yckz) | [jkyj/yyyjk2](https://rsshub.app/chinacdc/jkyj/yyyjk2) | | [环境与健康](https://www.chinacdc.cn/jkyj/hjyjk/) | [职业卫生与中毒控制](https://www.chinacdc.cn/jkyj/hjwsyzdkz/) | [放射卫生](https://www.chinacdc.cn/jkyj/fsws/) | [免疫规划](https://www.chinacdc.cn/jkyj/mygh02/) | [结核病防控](https://www.chinacdc.cn/jkyj/jhbfk/) | | ---------------------------------------------------- | ------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------- | | [jkyj/hjyjk](https://rsshub.app/chinacdc/jkyj/hjyjk) | [jkyj/hjwsyzdkz](https://rsshub.app/chinacdc/jkyj/hjwsyzdkz) | [jkyj/fsws](https://rsshub.app/chinacdc/jkyj/fsws) | [jkyj/mygh02](https://rsshub.app/chinacdc/jkyj/mygh02) | [jkyj/jhbfk](https://rsshub.app/chinacdc/jkyj/jhbfk) | | [寄生虫病](https://www.chinacdc.cn/jkyj/jscb/) | | -------------------------------------------------- | | [jkyj/jscb](https://rsshub.app/chinacdc/jkyj/jscb) | #### [科学研究](https://www.chinacdc.cn/kxyj/) | [科技进展](https://www.chinacdc.cn/kxyj/kjjz/) | [学术动态](https://www.chinacdc.cn/kxyj/xsdt/) | [科研平台](https://www.chinacdc.cn/kxyj/xsjl/) | [科研亮点](https://www.chinacdc.cn/kxyj/kyld/) | [科技政策](https://www.chinacdc.cn/kxyj/kjzc/) | | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | | [kxyj/kjjz](https://rsshub.app/chinacdc/kxyj/kjjz) | [kxyj/xsdt](https://rsshub.app/chinacdc/kxyj/xsdt) | [kxyj/xsjl](https://rsshub.app/chinacdc/kxyj/xsjl) | [kxyj/kyld](https://rsshub.app/chinacdc/kxyj/kyld) | [kxyj/kjzc](https://rsshub.app/chinacdc/kxyj/kjzc) | #### [教育培训](https://www.chinacdc.cn/jypx/) | [研究生院](https://www.chinacdc.cn/jypx/yjsy/) | [继续教育](https://www.chinacdc.cn/jypx/jxjy/) | [博士后](https://www.chinacdc.cn/jypx/bsh/) | [中国现场流行病学培训项目(CFETP)](https://www.chinacdc.cn/jypx/CFETP/) | | -------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------ | | [jypx/yjsy](https://rsshub.app/chinacdc/jypx/yjsy) | [jypx/jxjy](https://rsshub.app/chinacdc/jypx/jxjy) | [jypx/bsh](https://rsshub.app/chinacdc/jypx/bsh) | [jypx/CFETP](https://rsshub.app/chinacdc/jypx/CFETP) | #### [全球公卫](https://www.chinacdc.cn/qqgw/) | [合作伙伴](https://www.chinacdc.cn/qqgw/hzhb/) | [世界卫生组织合作中心和参比实验室](https://www.chinacdc.cn/qqgw/wszz/) | [国际交流 (港澳台交流)](https://www.chinacdc.cn/qqgw/gjjl/) | [公共卫生援外与合作](https://www.chinacdc.cn/qqgw/ggws/) | | -------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------- | | [qqgw/hzhb](https://rsshub.app/chinacdc/qqgw/hzhb) | [qqgw/wszz](https://rsshub.app/chinacdc/qqgw/wszz) | [qqgw/gjjl](https://rsshub.app/chinacdc/qqgw/gjjl) | [qqgw/ggws](https://rsshub.app/chinacdc/qqgw/ggws) | #### [人才建设](https://www.chinacdc.cn/rcjs/) | [院士风采](https://www.chinacdc.cn/rcjs/ysfc/) | [首席专家](https://www.chinacdc.cn/rcjs/sxzj/) | [人才队伍](https://www.chinacdc.cn/rcjs/rcdw/) | [人才招聘](https://www.chinacdc.cn/rcjs/rczp/) | | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | | [rcjs/ysfc](https://rsshub.app/chinacdc/rcjs/ysfc) | [rcjs/sxzj](https://rsshub.app/chinacdc/rcjs/sxzj) | [rcjs/rcdw](https://rsshub.app/chinacdc/rcjs/rcdw) | [rcjs/rczp](https://rsshub.app/chinacdc/rcjs/rczp) | #### [健康数据](https://www.chinacdc.cn/jksj/) | [全国法定传染病疫情情况](https://www.chinacdc.cn/jksj/jksj01/) | [全国新型冠状病毒感染疫情情况](https://www.chinacdc.cn/jksj/xgbdyq/) | [重点传染病和突发公共卫生事件风险评估报告](https://www.chinacdc.cn/jksj/jksj02/) | [全球传染病事件风险评估报告](https://www.chinacdc.cn/jksj/jksj03/) | [全国预防接种异常反应监测信息概况](https://www.chinacdc.cn/jksj/jksj04_14209/) | | -------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------ | | [jksj/jksj01](https://rsshub.app/chinacdc/jksj/jksj01) | [jksj/xgbdyq](https://rsshub.app/chinacdc/jksj/xgbdyq) | [jksj/jksj02](https://rsshub.app/chinacdc/jksj/jksj02) | [jksj/jksj03](https://rsshub.app/chinacdc/jksj/jksj03) | [jksj/jksj04_14209](https://rsshub.app/chinacdc/jksj/jksj04_14209) | | [流感监测周报](https://www.chinacdc.cn/jksj/jksj04_14249/) | [全国急性呼吸道传染病哨点监测情况](https://www.chinacdc.cn/jksj/jksj04_14275/) | [健康报告](https://www.chinacdc.cn/jksj/jksj04/) | | ------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------ | | [jksj/jksj04_14249](https://rsshub.app/chinacdc/jksj/jksj04_14249) | [jksj/jksj04_14275](https://rsshub.app/chinacdc/jksj/jksj04_14275) | [jksj/jksj04](https://rsshub.app/chinacdc/jksj/jksj04) | #### [健康科普](https://www.chinacdc.cn/jkkp/) | [传染病](https://www.chinacdc.cn/jkkp/crb/) | [慢性非传染性疾病](https://www.chinacdc.cn/jkkp/mxfcrb/) | [免疫规划](https://www.chinacdc.cn/jkkp/mygh/) | [公共卫生事件](https://www.chinacdc.cn/jkkp/ggws/) | [烟草控制](https://www.chinacdc.cn/jkkp/yckz/) | | ------------------------------------------------ | -------------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | | [jkkp/crb](https://rsshub.app/chinacdc/jkkp/crb) | [jkkp/mxfcrb](https://rsshub.app/chinacdc/jkkp/mxfcrb) | [jkkp/mygh](https://rsshub.app/chinacdc/jkkp/mygh) | [jkkp/ggws](https://rsshub.app/chinacdc/jkkp/ggws) | [jkkp/yckz](https://rsshub.app/chinacdc/jkkp/yckz) | | [营养与健康](https://www.chinacdc.cn/jkkp/yyjk/) | [环境健康](https://www.chinacdc.cn/jkkp/hjjk/) | [职业健康与中毒控制](https://www.chinacdc.cn/jkkp/zyjk/) | [放射卫生](https://www.chinacdc.cn/jkkp/fsws/) | | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------- | | [jkkp/yyjk](https://rsshub.app/chinacdc/jkkp/yyjk) | [jkkp/hjjk](https://rsshub.app/chinacdc/jkkp/hjjk) | [jkkp/zyjk](https://rsshub.app/chinacdc/jkkp/zyjk) | [jkkp/fsws](https://rsshub.app/chinacdc/jkkp/fsws) | </details> `, categories: ["government"], features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: true, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [ { source: ["www.chinacdc.cn/:category"], target: (params) => { const category = params.category; return `/chinacdc${category ? `/${category}` : ""}`; } }, { title: "中心要闻", source: ["www.chinacdc.cn/zxyw/"], target: "/zxyw" }, { title: "通知公告", source: ["www.chinacdc.cn/tzgg/"], target: "/tzgg" }, { title: "党建园地 - 廉政文化", source: ["www.chinacdc.cn/djgz_13611/"], target: "/dqgz/djgz_13611" }, { title: "党建园地 - 党建工作", source: ["www.chinacdc.cn/dqgz/"], target: "/dqgz/djgz" }, { title: "党建园地 - 廉政文化", source: ["www.chinacdc.cn/djgz_13611/"], target: "/dqgz/djgz_13611" }, { title: "党建园地 - 工会工作", source: ["www.chinacdc.cn/ghgz/"], target: "/dqgz/ghgz" }, { title: "党建园地 - 团青工作", source: ["www.chinacdc.cn/tqgz/"], target: "/dqgz/tqgz" }, { title: "党建园地 - 理论学习", source: ["www.chinacdc.cn/tqgz_13618/"], target: "/dqgz/tqgz_13618" }, { title: "疾控应急 - 传染病", source: ["www.chinacdc.cn/jkyj/crb2/"], target: "/jkyj/crb2" }, { title: "疾控应急 - 突发公共卫生事件", source: ["www.chinacdc.cn/jkyj/tfggws/"], target: "/jkyj/tfggws" }, { title: "疾控应急 - 慢性病与伤害防控", source: ["www.chinacdc.cn/jkyj/mxfcrxjb2/"], target: "/jkyj/mxfcrxjb2" }, { title: "疾控应急 - 烟草控制", source: ["www.chinacdc.cn/jkyj/yckz/"], target: "/jkyj/yckz" }, { title: "疾控应急 - 营养与健康", source: ["www.chinacdc.cn/jkyj/yyyjk2/"], target: "/jkyj/yyyjk2" }, { title: "疾控应急 - 环境与健康", source: ["www.chinacdc.cn/jkyj/hjyjk/"], target: "/jkyj/hjyjk" }, { title: "疾控应急 - 职业卫生与中毒控制", source: ["www.chinacdc.cn/jkyj/hjwsyzdkz/"], target: "/jkyj/hjwsyzdkz" }, { title: "疾控应急 - 放射卫生", source: ["www.chinacdc.cn/jkyj/fsws/"], target: "/jkyj/fsws" }, { title: "疾控应急 - 免疫规划", source: ["www.chinacdc.cn/jkyj/mygh02/"], target: "/jkyj/mygh02" }, { title: "疾控应急 - 结核病防控", source: ["www.chinacdc.cn/jkyj/jhbfk/"], target: "/jkyj/jhbfk" }, { title: "疾控应急 - 寄生虫病", source: ["www.chinacdc.cn/jkyj/jscb/"], target: "/jkyj/jscb" }, { title: "科学研究 - 科技进展", source: ["www.chinacdc.cn/kxyj/kjjz/"], target: "/kxyj/kjjz" }, { title: "科学研究 - 学术动态", source: ["www.chinacdc.cn/kxyj/xsdt/"], target: "/kxyj/xsdt" }, { title: "科学研究 - 科研平台", source: ["www.chinacdc.cn/kxyj/xsjl/"], target: "/kxyj/xsjl" }, { title: "科学研究 - 科研亮点", source: ["www.chinacdc.cn/kxyj/kyld/"], target: "/kxyj/kyld" }, { title: "科学研究 - 科技政策", source: ["www.chinacdc.cn/kxyj/kjzc/"], target: "/kxyj/kjzc" }, { title: "教育培训 - 研究生院", source: ["www.chinacdc.cn/jypx/yjsy/"], target: "/jypx/yjsy" }, { title: "教育培训 - 继续教育", source: ["www.chinacdc.cn/jypx/jxjy/"], target: "/jypx/jxjy" }, { title: "教育培训 - 博士后", source: ["www.chinacdc.cn/jypx/bsh/"], target: "/jypx/bsh" }, { title: "教育培训 - 中国现场流行病学培训项目(CFETP)", source: ["www.chinacdc.cn/jypx/CFETP/"], target: "/jypx/CFETP" }, { title: "全球公卫 - 合作伙伴", source: ["www.chinacdc.cn/qqgw/hzhb/"], target: "/qqgw/hzhb" }, { title: "全球公卫 - 世界卫生组织合作中心和参比实验室", source: ["www.chinacdc.cn/qqgw/wszz/"], target: "/qqgw/wszz" }, { title: "全球公卫 - 国际交流 (港澳台交流)", source: ["www.chinacdc.cn/qqgw/gjjl/"], target: "/qqgw/gjjl" }, { title: "全球公卫 - 公共卫生援外与合作", source: ["www.chinacdc.cn/qqgw/ggws/"], target: "/qqgw/ggws" }, { title: "人才建设 - 院士风采", source: ["www.chinacdc.cn/rcjs/ysfc/"], target: "/rcjs/ysfc" }, { title: "人才建设 - 首席专家", source: ["www.chinacdc.cn/rcjs/sxzj/"], target: "/rcjs/sxzj" }, { title: "人才建设 - 人才队伍", source: ["www.chinacdc.cn/rcjs/rcdw/"], target: "/rcjs/rcdw" }, { title: "人才建设 - 人才招聘", source: ["www.chinacdc.cn/rcjs/rczp/"], target: "/rcjs/rczp" }, { title: "健康数据 - 全国法定传染病疫情情况", source: ["www.chinacdc.cn/jksj/jksj01/"], target: "/jksj/jksj01" }, { title: "健康数据 - 全国新型冠状病毒感染疫情情况", source: ["www.chinacdc.cn/jksj/xgbdyq/"], target: "/jksj/xgbdyq" }, { title: "健康数据 - 重点传染病和突发公共卫生事件风险评估报告", source: ["www.chinacdc.cn/jksj/jksj02/"], target: "/jksj/jksj02" }, { title: "健康数据 - 全球传染病事件风险评估报告", source: ["www.chinacdc.cn/jksj/jksj03/"], target: "/jksj/jksj03" }, { title: "健康数据 - 全国预防接种异常反应监测信息概况", source: ["www.chinacdc.cn/jksj/jksj04_14209/"], target: "/jksj/jksj04_14209" }, { title: "健康数据 - 流感监测周报", source: ["www.chinacdc.cn/jksj/jksj04_14249/"], target: "/jksj/jksj04_14249" }, { title: "健康数据 - 全国急性呼吸道传染病哨点监测情况", source: ["www.chinacdc.cn/jksj/jksj04_14275/"], target: "/jksj/jksj04_14275" }, { title: "健康数据 - 健康报告", source: ["www.chinacdc.cn/jksj/jksj04/"], target: "/jksj/jksj04" }, { title: "健康科普 - 传染病", source: ["www.chinacdc.cn/jkkp/crb/"], target: "/jkkp/crb" }, { title: "健康科普 - 慢性非传染性疾病", source: ["www.chinacdc.cn/jkkp/mxfcrb/"], target: "/jkkp/mxfcrb" }, { title: "健康科普 - 免疫规划", source: ["www.chinacdc.cn/jkkp/mygh/"], target: "/jkkp/mygh" }, { title: "健康科普 - 公共卫生事件", source: ["www.chinacdc.cn/jkkp/ggws/"], target: "/jkkp/ggws" }, { title: "健康科普 - 烟草控制", source: ["www.chinacdc.cn/jkkp/yckz/"], target: "/jkkp/yckz" }, { title: "健康科普 - 营养与健康", source: ["www.chinacdc.cn/jkkp/yyjk/"], target: "/jkkp/yyjk" }, { title: "健康科普 - 环境健康", source: ["www.chinacdc.cn/jkkp/hjjk/"], target: "/jkkp/hjjk" }, { title: "健康科普 - 职业健康与中毒控制", source: ["www.chinacdc.cn/jkkp/zyjk/"], target: "/jkkp/zyjk" }, { title: "健康科普 - 放射卫生", source: ["www.chinacdc.cn/jkkp/fsws/"], target: "/jkkp/fsws" } ], view: ViewType.Articles }; //#endregion export { handler, route };