rsshub
Version:
Make RSS Great Again!
44 lines (43 loc) • 1.64 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
import { t as cache_default } from "./cache-CiDoUSLo.mjs";
import { t as timezone } from "./timezone-DE--ze1V.mjs";
import { load } from "cheerio";
//#region lib/routes/gov/cnca/utils.ts
const baseUrl = "https://www.cnca.gov.cn";
const getFeed = async (path, description) => {
const link = `${baseUrl}/${path}/index.html`;
const buildUnitScript = load(await rofetch(link))("script[parseType=\"bulidstatic\"]");
const queryData = JSON.parse(buildUnitScript.attr("querydata").replaceAll("'", "\""));
const $ = load((await rofetch(`${baseUrl}${buildUnitScript.attr("url")}`, {
query: queryData,
headers: { accept: "application/json" }
})).data.html);
const list = $(".common_list_ul li").toArray().map((item) => {
const $item = $(item);
const a = $item.find("a");
return {
title: a.text(),
link: new URL(a.attr("href"), baseUrl).href,
pubDate: timezone(parseDate($item.find("span").text()), 8)
};
});
const items = await Promise.all(list.map((item) => {
if (!item.link.startsWith(`${baseUrl}/`)) return item;
return cache_default.tryGet(item.link, async () => {
const $ = load(await rofetch(item.link));
item.description = $(".detail_messge").html();
item.author = $("#source").text();
item.pubDate = timezone(parseDate($("meta[name=\"PubDate\"]").attr("content"), "YYYY-MM-DD HH:mm"), 8);
return item;
});
}));
return {
title: `国家认证认可监督管理委员会 - ${description}`,
link,
description,
item: items
};
};
//#endregion
export { getFeed as t };