UNPKG

rsshub

Version:
77 lines (76 loc) 2.2 kB
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 { load } from "cheerio"; //#region lib/routes/shanghaitech/sist/activity.ts const baseUrl = "https://sist.shanghaitech.edu.cn"; const route = { path: "/sist/activity", categories: ["university"], example: "/shanghaitech/sist/activity", radar: [{ source: ["sist.shanghaitech.edu.cn/xyhd/list.htm"] }], name: "信息科技与技术学院活动", maintainers: ["HenryQW"], handler, url: "sist.shanghaitech.edu.cn/xyhd/list.htm" }; async function handler(ctx) { const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 20; const list = (await rofetch(`${baseUrl}/_wp3services/generalQuery?queryObj=articles`, { method: "POST", headers: { Referer: `${baseUrl}/xyhd/list.htm` }, body: new URLSearchParams({ siteId: "43", columnId: "10969", pageIndex: "1", rows: String(limit), orders: JSON.stringify([{ field: "publishTime", type: "desc" }]), returnInfos: JSON.stringify([ { field: "title", name: "title" }, { field: "summary", name: "summary" }, { field: "publishTime", pattern: [{ name: "d", value: "yyyy-MM-dd" }], name: "publishTime" } ]), conditions: JSON.stringify([{ field: "scope", value: 1, judge: "=" }]) }), parseResponse: JSON.parse })).data.map((item) => ({ title: item.title, link: item.url.replace(/^http:\/\//, "https://"), author: item.publisher, pubDate: timezone(parseDate(item.publishTime), 8), description: item.summary })); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { if (new URL(item.link).hostname !== "sist.shanghaitech.edu.cn") return item; item.description = load(await rofetch(item.link))(".wp_articlecontent").html(); return item; }))); return { title: "上海科技大学信息科技与技术学院 -- 活动", link: `${baseUrl}/xyhd/list.htm`, item: items }; } //#endregion export { route };