rsshub
Version:
Make RSS Great Again!
53 lines (52 loc) • 1.75 kB
JavaScript
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs";
import { t as cache_default } from "./cache-BkqOokyU.mjs";
import { t as got_default } from "./got-BTowW50G.mjs";
import { load } from "cheerio";
//#region lib/routes/bnu/dwxgb.ts
const route = {
path: "/dwxgb/:category/:type",
categories: ["university"],
example: "/bnu/dwxgb/xwzx/tzgg",
parameters: {
category: "大分类",
type: "子分类,例子如下"
},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{ source: ["dwxgb.bnu.edu.cn/:category/:type/index.html"] }],
name: "党委学生工作部",
maintainers: ["Fatpandac"],
handler,
description: "`https://dwxgb.bnu.edu.cn/xwzx/tzgg/index.html` 则对应为 \\`/bnu/dwxgb/xwzx/tzgg"
};
async function handler(ctx) {
const { category, type } = ctx.req.param();
const currentUrl = `https://dwxgb.bnu.edu.cn/${category}/${type}/index.html`;
const $ = load((await got_default(currentUrl)).data);
const list = $("ul.container.list > li").toArray().map((item) => {
const link = $(item).find("a").attr("href");
const absoluteLink = new URL(link, currentUrl).href;
return {
title: $(item).find("a").text().trim(),
pubDate: parseDate($(item).find("span").text()),
link: absoluteLink
};
});
const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => {
item.description = load((await got_default(item.link)).data)("div.article.typo").html();
return item;
})));
return {
title: `${$("div.breadcrumb1 > a:nth-child(3)").text()} - ${$("div.breadcrumb1 > a:nth-child(4)").text()}`,
link: currentUrl,
item: items
};
}
//#endregion
export { route };