UNPKG

rsshub

Version:
80 lines (79 loc) 2.5 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 { t as InvalidParameterError } from "./invalid-parameter-CGxhjomn.mjs"; import { load } from "cheerio"; //#region lib/routes/gov/gd/edu.ts const route = { path: "/edu/:caty", categories: ["government"], example: "/gov/gd/edu/gdjyxw", parameters: { caty: "资讯类别" }, name: "省教育厅", maintainers: ["nczitzk"], handler, description: `| 时政要闻 | 广东教育新闻 | 图片新闻 | 战线联播 | 公示公告 | 教育政策法规 | 政策解读 | | :------: | :----------: | :------: | :------: | :------: | :----------: | :------: | | szyw | gdjyxw | tpxw | zxlb | gsgg | jyzcfg | zcjd |` }; const rootUrl = "https://edu.gd.gov.cn/"; const config = { szyw: { link: "/jyzxnew/szyw/index.html", title: "时政要闻" }, gdjyxw: { link: "/jyzxnew/gdjyxw/index.html", title: "广东教育新闻" }, tpxw: { link: "/jyzxnew/tpxw/index.html", title: "图片新闻" }, zxlb: { link: "/jyzxnew/zxlb/index.html", title: "战线联播" }, gsgg: { link: "/zwgknew/gsgg/index.html", title: "公示公告" }, jyzcfg: { link: "/zwgknew/jyzcfg/index.html", title: "教育政策法规" }, zcjd: { link: "/zwgknew/zcjd/index.html", title: "政策解读" } }; async function handler(ctx) { const { caty } = ctx.req.param(); const cfg = config[caty]; if (!cfg) throw new InvalidParameterError("Bad category. See docs"); const currentUrl = new URL(cfg.link, rootUrl).href; const $ = load(await rofetch(currentUrl)); const list = $("div.newsList ul.list li").toArray().map((item) => { const a = $(item).find("a"); return { title: a.text(), link: a.attr("href"), pubDate: timezone(parseDate($(item).find("span.time").text()), 8) }; }); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { if (!new URL(item.link).hostname.endsWith(".gd.gov.cn")) return item; const content = load(await rofetch(item.link)); item.description = content("div.article").html(); item.pubDate = timezone(parseDate(content("div.message span.time").text().replace("时间:", "")), 8); return item; }))); return { title: `广东省教育厅 - ${cfg.title}`, link: currentUrl, item: items }; } //#endregion export { route };