UNPKG

rsshub

Version:
59 lines (58 loc) 2.15 kB
import { t as rofetch } from "./ofetch-U0CdpE2g.mjs"; import { t as parseDate } from "./parse-date-3kcy2Eau.mjs"; import { t as cache_default } from "./cache-C1Y-9qDV.mjs"; import { t as timezone } from "./timezone-UiMFOuvL.mjs"; import { load } from "cheerio"; //#region lib/routes/ahut/cstzgg.ts const route = { path: "/cstzgg", categories: ["university"], example: "/ahut/cstzgg", name: "计算机学院公告", maintainers: ["Diffumist"], handler }; async function handler() { const baseUrl = "https://cs.ahut.edu.cn"; const [listResponse, indexResponse] = await Promise.all([rofetch(`${baseUrl}/index/tzgg.htm`), rofetch(`${baseUrl}/index.htm`)]); const $list = load(listResponse); const list = $list("li[id^=\"line_u\"]").toArray().map((item) => { const $item = $list(item); return { title: $item.find("a").text().trim(), link: new URL($item.find("a").attr("href"), `${baseUrl}/index/tzgg.htm`).href, pubDate: timezone(parseDate($item.find("span").text(), "YYYY/MM/DD"), 8) }; }); const $index = load(indexResponse); const currentYear = (/* @__PURE__ */ new Date()).getFullYear(); const indexList = $index("div[frag=\"窗口21\"] .i-list li").toArray().map((item) => { const $item = $index(item); return { title: $item.find("a").text(), link: new URL($item.find("a").attr("href"), `${baseUrl}/index.htm`).href, pubDate: timezone(parseDate(`${currentYear}/${$item.find("span").text()}`, "YYYY/MM/DD"), 8) }; }); const seen = new Set(list.map((item) => item.link)); const merged = [...list, ...indexList.filter((item) => !seen.has(item.link))]; const out = await Promise.all(merged.map((item) => { if (item.link.includes("content.jsp")) return item; return cache_default.tryGet(item.link, async () => { const detailResponse = await rofetch(item.link); const $ = load(detailResponse); return { ...item, description: $(".v_news_content").html() }; }); })); return { title: "安徽工业大学 - 计算机学院公告", link: `${baseUrl}/index/tzgg.htm`, description: "安徽工业大学 - 计算机学院公告", item: out }; } //#endregion export { route };