UNPKG

rsshub

Version:
97 lines (93 loc) 2.99 kB
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs"; import { t as timezone } from "./timezone-BBvDwS_3.mjs"; import { t as getContent } from "./utils-CFkZUlCD.mjs"; import { load } from "cheerio"; //#region lib/routes/njust/eo.ts const map = /* @__PURE__ */ new Map([ ["16tz", { title: "南京理工大学电光16 -- 通知公告", id: "/_t217/tzgg" }], ["16dt", { title: "南京理工大学电光16 -- 主任寄语", id: "/_t217/zrjy" }], ["17tz", { title: "南京理工大学电光17 -- 年级通知", id: "/_t689/njtz" }], ["17dt", { title: "南京理工大学电光17 -- 每日动态", id: "/_t689/mrdt" }], ["18tz", { title: "南京理工大学电光18 -- 年级通知", id: "/_t900/njtz_10234" }], ["18dt", { title: "南京理工大学电光18 -- 主任寄语", id: "/_t900/zrjy_10251" }], ["19tz", { title: "南京理工大学电光19 -- 通知公告", id: "/_t1163/tzgg_11606" }], ["19dt", { title: "南京理工大学电光19 -- 每日动态", id: "/_t1163/mrdt_11608" }] ]); const host = "https://dgxg.njust.edu.cn"; const route = { path: "/eo/:grade?/:type?", categories: ["university"], example: "/njust/eo/17/tz", parameters: { grade: "年级,见下表,默认为本科 2017 级,未列出的年级所对应的参数可以从级网二级页面的 URL Path 中找到,例如:本科 2020 级为 `_t1316`", type: "类别,见下表,默认为年级通知(通知公告),未列出的类别所对应的参数可以从级网二级页面的 URL Path 中找到,例如:电光 20 的通知公告为 `tzgg_12969`" }, features: { requireConfig: false, requirePuppeteer: true, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "电光学院年级网站", maintainers: ["jasongzy"], handler, description: `\`grade\` 列表: | 本科 2016 级 | 本科 2017 级 | 本科 2018 级 | 本科 2019 级 | | ------------ | ------------ | ------------ | ------------ | | 16 | 17 | 18 | 19 | \`type\` 列表: | 年级通知(通知公告) | 每日动态(主任寄语) | | -------------------- | -------------------- | | tz | dt |` }; async function handler(ctx) { const grade = ctx.req.param("grade") ?? "17"; const type = ctx.req.param("type") ?? "tz"; let info = map.get(grade + type); if (!info) info = { title: "", id: "/" + grade + "/" + type }; const id = info.id; const siteUrl = host + id + "/list.htm"; const $ = load(await getContent(siteUrl, true)); if (!info.title) info.title = $("title").text(); const list = $("li.list_item"); return { title: info.title, link: siteUrl, item: list.toArray().map((item) => ({ title: $(item).find("a").text().trim(), pubDate: timezone(parseDate($(item).find("span.Article_PublishDate").text(), "YYYY-MM-DD"), 8), link: $(item).find("a").attr("href") })) }; } //#endregion export { route };