rsshub
Version:
Make RSS Great Again!
80 lines (79 loc) • 2.5 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 { 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 };