UNPKG

rsshub

Version:
44 lines (43 loc) 1.64 kB
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 };