rsshub
Version:
Make RSS Great Again!
163 lines (159 loc) • 4.62 kB
JavaScript
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 { load } from "cheerio";
//#region lib/routes/nwafu/utils.ts
const nwafuMap = new Map([
["lib", [
"https://lib.nwafu.edu.cn/gg/",
".pageList ul li",
"li a",
".pageArticle",
`西北农林科技大学图书馆通知公告`
]],
["youth", [
"https://54youth.nwsuaf.edu.cn/twsy/tzgg//",
"section ul li",
"li a",
"article",
`共青团西北农林科技大学委员会通知公告`
]],
["cie", [
"https://cie.nwsuaf.edu.cn/dtytz/tzgg/",
"ul.list li",
"li a",
".article",
`西北农林科技大学信息工程学院通知公告`
]],
["gs", [
"https://gs.nwsuaf.edu.cn/tzggB/",
"dl#sort ul.list li",
"li a",
".content",
`西北农林科技大学后勤管理处通知公告`
]],
["jcc", [
"https://jcc.nwsuaf.edu.cn/tzgg/",
"dl#sort ul.list li",
"li a",
".content",
`西北农林科技大学计划财务处通知公告`
]],
["jiaowu", [
"https://jiaowu.nwsuaf.edu.cn/tzggB/",
".list-i ul li",
"li a",
"article",
`西北农林科技大学教务通知公告`
]],
["news", [
"https://news.nwafu.edu.cn/yxxw/",
"ul.NWAFU-list01 li",
"li a",
".pageArticle",
`西北农林科技大学新闻网聚焦院处`
]],
["nic", [
"https://nic.nwsuaf.edu.cn/tzgg1/",
"dl#sort ul.list li",
"li a",
".content",
`西北农林科技大学信息化管理处通知公告`
]],
["yjshy", [
"https://yjshy.nwafu.edu.cn/tzgg/",
".sort_rightcont ul li",
"li a",
".cont",
`西北农林科技大学研究生院通知公告`
]],
["nxy", [
"https://nxy.nwafu.edu.cn/xytz/tzgg_xwzx/",
"div.sort_rightcont ul li",
"li a",
"div.sort_rightcont2",
"西北农林科技大学农业科学院通知公告"
]],
["cmee", [
"https://cmee.nwafu.edu.cn/xwzx/xytz/",
"div.sort_rightcont ul li",
"li a",
"div.sort_rightcont2",
"西北农林科技大学机械与电子工程学院通知公告"
]],
["xshd", [
"https://www.nwafu.edu.cn/xshd/",
"ul.subArticleList li",
"li a",
".article",
"西北农林科技大学学术活动"
]],
["sm", [
"https://sm.nwafu.edu.cn/tzgg/",
"ul.leading-12 li",
"li a",
"article",
"西北农林科技大学生命科学学院通知公告"
]],
["forbiddenList", [
"kjtg.nwafu.edu.cn",
"kjtg.nwsuaf.edu.cn",
"fwoa.nwafu.edu.cn",
"fwoa.nwsuaf.edu.cn",
"cg.nwafu.edu.cn",
"cg.nwsuaf.edu.cn"
]]
]);
//#endregion
//#region lib/routes/nwafu/all.ts
const route = {
path: "/:type?",
categories: ["university"],
example: "/nwafu/lib",
parameters: { type: "默认为 `jiaowu`" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
name: "校园要闻",
maintainers: ["karinido"],
handler,
description: `通知类别
| 图书馆 | 共青团团委 | 信工学院 | 后勤管理处 | 计划财务处 | 教务处 | 新闻网 | 信息化管理处 | 研究生院 | 农业科学院 | 机械与电子工程学院 | 学术活动 | 生命科学学院 |
| ------ | ---------- | -------- | ---------- | ---------- | ------ | ------ | ------------ | -------- | ---------- | ------------------ | -------- | ------------ |
| lib | youth | cie | gs | jcc | jiaowu | news | nic | yjshy | nxy | cmee | xshd | sm |`
};
async function handler(ctx) {
const { type = "jiaowu" } = ctx.req.param();
const $ = load((await got_default.get(nwafuMap.get(type)[0])).data);
const list = $(nwafuMap.get(type)[1]).toArray().map((ele) => {
return {
title: $(ele).find(nwafuMap.get(type)[2]).text(),
pubDate: parseDate($(ele).find("span").text(), "YYYY/MM/DD"),
link: new URL($(ele).find(nwafuMap.get(type)[2]).attr("href"), nwafuMap.get(type)[0]).toString()
};
});
const out = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => {
if (nwafuMap.get("forbiddenList").includes(new URL(item.link).hostname)) return item;
item.description = load((await got_default.get(item.link)).data)(nwafuMap.get(type)[3]).html();
return item;
})));
return {
title: nwafuMap.get(type)[4],
link: nwafuMap.get(type)[0],
description: nwafuMap.get(type)[4],
item: out
};
}
//#endregion
export { route };