UNPKG

rsshub

Version:
95 lines (91 loc) 3.07 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 "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { load } from "cheerio"; //#region lib/routes/nuist/bulletin.ts const baseTitle = "南信大信息公告栏"; const baseUrl = "https://bulletin.nuist.edu.cn"; const map = { 791: "全部", 792: "文件公告", xsbgw: "学术报告", 779: "招标信息", 780: "会议通知", 781: "党政事务", 782: "组织人事", 783: "科研信息", 784: "招生就业", 785: "教学考试", 786: "专题讲座", 788: "校园活动", 789: "学院动态", qt: "其他" }; const route = { path: "/bulletin/:category?", categories: ["university"], example: "/nuist/bulletin/791", parameters: { category: "默认为 `791`" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: true, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["bulletin.nuist.edu.cn/:category/list.htm"], target: "/bulletin/:category" }], name: "南信大信息公告栏", maintainers: ["gylidian"], handler, description: `| 全部 | 文件公告 | 学术报告 | 招标信息 | 会议通知 | 党政事务 | 组织人事 | | ---- | -------- | -------- | -------- | -------- | -------- | -------- | | 791 | 792 | xsbgw | 779 | 780 | 781 | 782 | | 科研信息 | 招生就业 | 教学考试 | 专题讲座 | 校园活动 | 学院动态 | 其他 | | -------- | -------- | -------- | -------- | -------- | -------- | ---- | | 783 | 784 | 785 | 786 | 788 | 789 | qt | ::: warning 全文内容需使用 校园网或[VPN](http://vpn.nuist.edu.cn) 获取 :::` }; async function handler(ctx) { const category = Object.hasOwn(map, ctx.req.param("category")) ? ctx.req.param("category") : "791"; const link = `${baseUrl}/${category}/list.htm`; const $ = load((await got_default(link)).data); const list = $(".news_list").find(".news"); return { title: baseTitle + (category === "791" ? "" : ":" + map[category]), link, item: list.toArray().map((item) => { item = $(item); if (category === "xsbgw") { const itemXsTitle = item.find(".xs_title .btt a"); return { title: itemXsTitle.text(), author: item.find(".xs_bgr").text(), category: "学术报告", pubDate: parseDate(item.find(".xs_date").text()), link: new URL(itemXsTitle.attr("href"), baseUrl).href }; } const itemTitle = item.find(".news_title"); return { title: [itemTitle.find(".zdtb img").length > 0 ? "[顶]" : "", itemTitle.find(".btt").text()].join(" "), author: item.find(".news_org").text(), category: itemTitle.find(".wjj").text(), pubDate: parseDate(item.find(".news_date").text()), link: new URL(itemTitle.find(".btt a").attr("href"), baseUrl).href }; }) }; } //#endregion export { route };