rsshub
Version:
Make RSS Great Again!
330 lines (320 loc) • 11.2 kB
JavaScript
import "./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 timezone } from "./timezone-D8cuwzTY.mjs";
import { load } from "cheerio";
//#region lib/routes/gov/mee/nnsa.ts
const handler = async (ctx) => {
const { category = "ywdt/hjyw" } = ctx.req.param();
const limit = Number.parseInt(ctx.req.query("limit") ?? "15", 10);
const baseUrl = "https://nnsa.mee.gov.cn";
const targetUrl = new URL(category.endsWith("/") ? category : `${category}/`, baseUrl).href;
const $ = load(await ofetch_default(targetUrl));
const language = $("html").attr("lang") ?? "zh";
let items = [];
items = $("a.cjcx_biaob, ul#div li a").slice(0, limit).toArray().map((el) => {
const $el = $(el);
const title = $el.text();
const linkUrl = $el.attr("href");
return {
title,
link: linkUrl ? linkUrl.startsWith("http") ? linkUrl : new URL(linkUrl, baseUrl).href : void 0,
language
};
});
items = await Promise.all(items.map((item) => {
if (!item.link) return item;
return cache_default.tryGet(item.link, async () => {
const $$ = load(await ofetch_default(item.link));
const title = $$("meta[name=\"ArticleTitle\"]").attr("content") ?? item.title;
const description = $$("div.Custom_UnionStyle").html() ?? void 0;
const pubDateStr = $$("meta[name=\"PubDate\"]").attr("content");
const categoryEls = [
$$("meta[name=\"ColumnName\"]"),
$$("meta[name=\"ColumnType\"]"),
$$("meta[name=\"ContentSource\"]"),
$$("meta[name=\"source\"]")
];
const categories = [...new Set(categoryEls.map((el) => $$(el)?.attr("content") ?? "").filter(Boolean))];
const authors = [
$$("meta[name=\"Author\"]"),
$$("meta[name=\"author\"]"),
$$("meta[name=\"source\"]")
].filter((authorEl) => $$(authorEl).attr("content")).map((authorEl) => {
return { name: $$(authorEl).attr("content") ?? "" };
});
const upDatedStr = pubDateStr;
const processedItem = {
title,
description,
pubDate: pubDateStr ? timezone(parseDate(pubDateStr), 8) : item.pubDate,
category: categories,
author: authors,
content: {
html: description,
text: description
},
updated: upDatedStr ? timezone(parseDate(upDatedStr), 8) : item.updated,
language
};
return {
...item,
...processedItem
};
});
}));
return {
title: $("title").text(),
description: $("meta[name=\"description\"]").attr("content"),
link: targetUrl,
item: items,
allowEmpty: true,
image: $("a.logo img").attr("src") ? new URL($("a.logo img").attr("src"), baseUrl).href : void 0,
author: $("meta[name=\"SiteName\"]").attr("content"),
language,
id: targetUrl
};
};
const route = {
path: "/mee/nnsa/:category{.+}?",
name: "国家核安全局",
url: "nnsa.mee.gov.cn",
maintainers: ["nczitzk"],
handler,
example: "/gov/mee/nnsa/ywdt/hjyw",
parameters: { category: {
description: "分类,默认为 `ywdt/hjyw`,即环境要闻,可在对应分类页 URL 中找到",
options: [
{
label: "要闻动态 - 时政要闻",
value: "ywdt/szyw"
},
{
label: "要闻动态 - 环境要闻",
value: "ywdt/hjyw"
},
{
label: "要闻动态 - 监管动态",
value: "ywdt/gzdt"
},
{
label: "要闻动态 - 行业资讯",
value: "ywdt/hyzx"
},
{
label: "要闻动态 - 国际资讯",
value: "ywdt/gjzx"
},
{
label: "要闻动态 - 公示公告",
value: "ywdt/gsqg"
},
{
label: "要闻动态 - 曝光台",
value: "ywdt/bgt"
},
{
label: "政策文件 - 中央有关文件",
value: "zcwj/zyygwj"
},
{
label: "政策文件 - 国务院有关文件",
value: "zcwj/gwyygwj"
},
{
label: "政策文件 - 部文件",
value: "zcwj/bwj"
},
{
label: "政策文件 - 核安全局文件",
value: "zcwj/haqjwj"
},
{
label: "政策文件 - 其他",
value: "zcwj/qt"
},
{
label: "政策文件 - 解读",
value: "zcwj/jd"
},
{
label: "业务工作 - 核动力厂和研究堆",
value: "ywdh/fyd"
},
{
label: "业务工作 - 核燃料、放废",
value: "ywdh/hrlff"
},
{
label: "业务工作 - 核技术、电磁、矿冶",
value: "ywdh/hjsdcky"
},
{
label: "业务工作 - 监测与应急",
value: "ywdh/jcyj_1"
},
{
label: "业务工作 - 核安全设备与人员",
value: "ywdh/haqsbry"
},
{
label: "业务工作 - 国际合作",
value: "ywdh/gjhz"
}
]
} },
description: `:::tip
订阅 [环境要闻](https://nnsa.mee.gov.cn/ywdt/hjyw/),其源网址为 \`https://nnsa.mee.gov.cn/ywdt/hjyw/\`,请参考该 URL 指定部分构成参数,此时路由为 [\`/gov/mee/nnsa/ywdt/hjyw\`](https://rsshub.app/gov/mee/nnsa/ywdt/hjyw)。
:::
<details>
<summary>更多分类</summary>
#### [要闻动态](https://nnsa.mee.gov.cn/ywdt/)
| 分类 | ID |
| ---------------------------------------------- | ------------------------------------------------------ |
| [时政要闻](https://nnsa.mee.gov.cn/ywdt/szyw/) | [ywdt/szyw](https://rsshub.app/gov/mee/nnsa/ywdt/szyw) |
| [环境要闻](https://nnsa.mee.gov.cn/ywdt/hjyw/) | [ywdt/hjyw](https://rsshub.app/gov/mee/nnsa/ywdt/hjyw) |
| [监管动态](https://nnsa.mee.gov.cn/ywdt/gzdt/) | [ywdt/gzdt](https://rsshub.app/gov/mee/nnsa/ywdt/gzdt) |
| [行业资讯](https://nnsa.mee.gov.cn/ywdt/hyzx/) | [ywdt/hyzx](https://rsshub.app/gov/mee/nnsa/ywdt/hyzx) |
| [国际资讯](https://nnsa.mee.gov.cn/ywdt/gjzx/) | [ywdt/gjzx](https://rsshub.app/gov/mee/nnsa/ywdt/gjzx) |
| [公示公告](https://nnsa.mee.gov.cn/ywdt/gsqg/) | [ywdt/gsqg](https://rsshub.app/gov/mee/nnsa/ywdt/gsqg) |
| [曝光台](https://nnsa.mee.gov.cn/ywdt/bgt/) | [ywdt/bgt](https://rsshub.app/gov/mee/nnsa/ywdt/bgt) |
#### [政策文件](https://nnsa.mee.gov.cn/zcwj/)
| 分类 | ID |
| ------------------------------------------------------- | ------------------------------------------------------------ |
| [中央有关文件](https://nnsa.mee.gov.cn/zcwj/zyygwj/) | [zcwj/zyygwj](https://rsshub.app/gov/mee/nnsa/zcwj/zyygwj) |
| [国务院有关文件](https://nnsa.mee.gov.cn/zcwj/gwyygwj/) | [zcwj/gwyygwj](https://rsshub.app/gov/mee/nnsa/zcwj/gwyygwj) |
| [部文件](https://nnsa.mee.gov.cn/zcwj/bwj/) | [zcwj/bwj](https://rsshub.app/gov/mee/nnsa/zcwj/bwj) |
| [核安全局文件](https://nnsa.mee.gov.cn/zcwj/haqjwj/) | [zcwj/haqjwj](https://rsshub.app/gov/mee/nnsa/zcwj/haqjwj) |
| [其他](https://nnsa.mee.gov.cn/zcwj/qt/) | [zcwj/qt](https://rsshub.app/gov/mee/nnsa/zcwj/qt) |
| [解读](https://nnsa.mee.gov.cn/zcwj/jd/) | [zcwj/jd](https://rsshub.app/gov/mee/nnsa/zcwj/jd) |
#### [业务工作](https://nnsa.mee.gov.cn/ywdh/)
| 分类 | ID |
| ----------------------------------------------------------- | ------------------------------------------------------------ |
| [核动力厂和研究堆](https://nnsa.mee.gov.cn/ywdh/fyd/) | [ywdh/fyd](https://rsshub.app/gov/mee/nnsa/ywdh/fyd) |
| [核燃料、放废](https://nnsa.mee.gov.cn/ywdh/hrlff/) | [ywdh/hrlff](https://rsshub.app/gov/mee/nnsa/ywdh/hrlff) |
| [核技术、电磁、矿冶](https://nnsa.mee.gov.cn/ywdh/hjsdcky/) | [ywdh/hjsdcky](https://rsshub.app/gov/mee/nnsa/ywdh/hjsdcky) |
| [监测与应急](https://nnsa.mee.gov.cn/ywdh/jcyj_1/) | [ywdh/jcyj_1](https://rsshub.app/gov/mee/nnsa/ywdh/jcyj_1) |
| [核安全设备与人员](https://nnsa.mee.gov.cn/ywdh/haqsbry/) | [ywdh/haqsbry](https://rsshub.app/gov/mee/nnsa/ywdh/haqsbry) |
| [国际合作](https://nnsa.mee.gov.cn/ywdh/gjhz/) | [ywdh/gjhz](https://rsshub.app/gov/mee/nnsa/ywdh/gjhz) |
</details>
`,
categories: ["government"],
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportRadar: true,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [
{
source: ["nnsa.mee.gov.cn/:category"],
target: "/mee/nnsa/:category"
},
{
title: "要闻动态 - 时政要闻",
source: ["nnsa.mee.gov.cn/ywdt/szyw/"],
target: "/mee/nnsa/ywdt/szyw"
},
{
title: "要闻动态 - 环境要闻",
source: ["nnsa.mee.gov.cn/ywdt/hjyw/"],
target: "/mee/nnsa/ywdt/hjyw"
},
{
title: "要闻动态 - 监管动态",
source: ["nnsa.mee.gov.cn/ywdt/gzdt/"],
target: "/mee/nnsa/ywdt/gzdt"
},
{
title: "要闻动态 - 行业资讯",
source: ["nnsa.mee.gov.cn/ywdt/hyzx/"],
target: "/mee/nnsa/ywdt/hyzx"
},
{
title: "要闻动态 - 国际资讯",
source: ["nnsa.mee.gov.cn/ywdt/gjzx/"],
target: "/mee/nnsa/ywdt/gjzx"
},
{
title: "要闻动态 - 公示公告",
source: ["nnsa.mee.gov.cn/ywdt/gsqg/"],
target: "/mee/nnsa/ywdt/gsqg"
},
{
title: "要闻动态 - 曝光台",
source: ["nnsa.mee.gov.cn/ywdt/bgt/"],
target: "/mee/nnsa/ywdt/bgt"
},
{
title: "政策文件 - 中央有关文件",
source: ["nnsa.mee.gov.cn/zcwj/zyygwj/"],
target: "/mee/nnsa/zcwj/zyygwj"
},
{
title: "政策文件 - 国务院有关文件",
source: ["nnsa.mee.gov.cn/zcwj/gwyygwj/"],
target: "/mee/nnsa/zcwj/gwyygwj"
},
{
title: "政策文件 - 部文件",
source: ["nnsa.mee.gov.cn/zcwj/bwj/"],
target: "/mee/nnsa/zcwj/bwj"
},
{
title: "政策文件 - 核安全局文件",
source: ["nnsa.mee.gov.cn/zcwj/haqjwj/"],
target: "/mee/nnsa/zcwj/haqjwj"
},
{
title: "政策文件 - 其他",
source: ["nnsa.mee.gov.cn/zcwj/qt/"],
target: "/mee/nnsa/zcwj/qt"
},
{
title: "政策文件 - 解读",
source: ["nnsa.mee.gov.cn/zcwj/jd/"],
target: "/mee/nnsa/zcwj/jd"
},
{
title: "业务工作 - 核动力厂和研究堆",
source: ["nnsa.mee.gov.cn/ywdh/fyd/"],
target: "/mee/nnsa/ywdh/fyd"
},
{
title: "业务工作 - 核燃料、放废",
source: ["nnsa.mee.gov.cn/ywdh/hrlff/"],
target: "/mee/nnsa/ywdh/hrlff"
},
{
title: "业务工作 - 核技术、电磁、矿冶",
source: ["nnsa.mee.gov.cn/ywdh/hjsdcky/"],
target: "/mee/nnsa/ywdh/hjsdcky"
},
{
title: "业务工作 - 监测与应急",
source: ["nnsa.mee.gov.cn/ywdh/jcyj_1/"],
target: "/mee/nnsa/ywdh/jcyj_1"
},
{
title: "业务工作 - 核安全设备与人员",
source: ["nnsa.mee.gov.cn/ywdh/haqsbry/"],
target: "/mee/nnsa/ywdh/haqsbry"
},
{
title: "业务工作 - 国际合作",
source: ["nnsa.mee.gov.cn/ywdh/gjhz/"],
target: "/mee/nnsa/ywdh/gjhz"
}
],
view: ViewType.Articles
};
//#endregion
export { handler, route };