UNPKG

rsshub

Version:
149 lines (143 loc) 3.89 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 { t as utils_default } from "./utils-kJNx41KG.mjs"; import { load } from "cheerio"; //#region lib/routes/cde/index.ts const channelLinkMap = { news: "https://www.cde.org.cn/main/news/listpage/545cf855a50574699b46b26bcb165f32", policy: "https://www.cde.org.cn/main/policy/listpage/9f9c74c73e0f8f56a8bfbc646055026d" }; const cateUrlMap = { news: { zwxw: "getList", ywdd: "getHotNewsList", tpxw: "getPictureNewsList", gzdt: "getWorkList" }, policy: { flfg: "getPolicyList", zxgz: "getRuleList" } }; const cateTitleMap = { news: { zwxw: "政务新闻", ywdd: "要闻导读", tpxw: "图片新闻", gzdt: "工作动态" }, policy: { flfg: "法律法规", zxgz: "政策规章" } }; const requestData = { news: { zwxw: { pageSize: 25, pageNum: 1, classId: "545cf855a50574699b46b26bcb165f32" }, ywdd: { pageSize: 25, pageNum: 1, ishot: 1 }, tpxw: { pageSize: 25, pageNum: 1 }, gzdt: { pageSize: 25, pageNum: 1, classId: "8dc6aac86eb083759b1e01615617a347" } }, policy: { flfg: { pageNum: 1, pageSize: 25, fclass: 0, keyName: "TITLE", logicC: "bh" }, zxgz: { pageNum: 1, pageSize: 25, fclass: 0, keyName: "TITLE", logicC: "bh" } } }; const route = { path: "/:channel/:category", categories: ["government"], example: "/cde/news/gzdt", parameters: { channel: "频道", category: "类别" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "首页", maintainers: ["Fatpandac"], handler, description: `- 频道 | 新闻中心 | 政策法规 | | :------: | :------: | | news | policy | - 类别 | 新闻中心 | 政务新闻 | 要闻导读 | 图片新闻 | 工作动态 | | :------: | :------: | :------: | :------: | :------: | | | zwxw | ywdd | tpxw | gzdt | | 政策法规 | 法律法规 | 中心规章 | | :------: | :------: | :------: | | | flfg | zxgz |` }; async function handler(ctx) { const channel = ctx.req.param("channel"); const cate = ctx.req.param("category"); requestData[channel][cate].pageSize = ctx.req.param("limit") ?? 25; const list = (await got_default({ method: "post", url: `${utils_default.rootUrl}/main/${channel}/${cateUrlMap[channel][cate]}`, headers: { cookie: await utils_default.getCookie(ctx) }, form: requestData[channel][cate] })).data.data.records.map((item) => { const linkMap = { news: `${utils_default.rootUrl}/main/${item.isPic ? "newspic/view/" : "news/viewInfoCommon/"}${item.newsIdCode}`, policy: `${utils_default.rootUrl}/main/${item.regulatIdCODE ? `policy/regulatview/${item.regulatIdCODE}` : `policy/view/${item.policyIdCODE}`}` }; return { title: item.title, link: linkMap[channel] }; }); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const $ = load((await got_default(item.link, { headers: { cookie: await utils_default.getCookie(ctx) } })).data); item.pubDate = parseDate($("div.news_detail_date").text(), "YYYYMMDD"); item.description = $("div.news_detail_box").find("div.news_detail_title").remove().end().find("div.news_detail_date").remove().end().find("img").remove().end().html(); return item; }))); return { title: `${utils_default.title} - ${cateTitleMap[channel][cate]}`, link: channelLinkMap[channel], item: items }; } //#endregion export { route };