rsshub
Version:
Make RSS Great Again!
115 lines (113 loc) • 3.3 kB
JavaScript
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 { t as cache_default } from "./cache-Bo__VnGm.mjs";
import "./helpers-DxBp0Pty.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import { t as timezone } from "./timezone-D8cuwzTY.mjs";
import { n as finishArticleItem } from "./wechat-mp-Dq_pp853.mjs";
import { load } from "cheerio";
//#region lib/routes/tju/oaa/index.ts
const oaa_base_url = "http://oaa.tju.edu.cn/";
const repo_url = "https://github.com/DIYgod/RSSHub/issues";
const pageType = (href) => {
if (!href.startsWith("http")) return "in-site";
const url = new URL(href);
if (url.hostname === "mp.weixin.qq.com") return "wechat-mp";
else if (url.hostname === "oaa.tju.edu.cn") return "tju-oaa";
else return "unknown";
};
const route = {
path: "/oaa/:type?",
categories: ["university"],
example: "/tju/oaa/news",
parameters: { type: "default `news`" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
name: "The Office of Academic Affairs",
maintainers: [
"AlanZeng423",
"AmosChenYQ",
"SuperPung"
],
handler,
description: `| News | Notification |
| :--: | :----------: |
| news | notification |`
};
async function handler(ctx) {
const type = ctx.req.param("type");
let path, subtitle;
switch (type) {
case "news":
subtitle = "新闻动态";
path = "xwdt.htm";
break;
case "notification":
subtitle = "通知公告";
path = "tzgg.htm";
break;
default:
subtitle = "新闻动态";
path = "xwdt.htm";
}
let response = null;
try {
response = await got_default(oaa_base_url + path, { headers: { Referer: oaa_base_url } });
} catch {}
if (response === null) return {
title: "天津大学教务处 - " + subtitle,
link: oaa_base_url + path,
description: "链接失效" + oaa_base_url + path,
item: [{
title: "提示信息",
link: repo_url,
description: `<h2>请到<a href=${repo_url}>此处</a>提交Issue</h2>`
}]
};
else {
const $ = load(response.data);
const list = $(".notice_l > ul > li > dl > dt").toArray().map((item) => {
const href = $("a", item).attr("href");
const type$1 = pageType(href);
return {
title: $("h2", item).text(),
link: type$1 === "in-site" ? oaa_base_url + href : href,
pubDate: timezone(parseDate($(".fl_01_r_time", item).text(), "DDYYYY-MM"), 8),
type: type$1
};
});
const items = await Promise.all(list.map((item) => {
switch (item.type) {
case "wechat-mp": return finishArticleItem(item);
case "tju-oaa":
case "in-site": return cache_default.tryGet(item.link, async () => {
let detailResponse = null;
try {
detailResponse = await got_default(item.link, { https: { rejectUnauthorized: false } });
item.description = load(detailResponse.data)(".v_news_content").html();
} catch {}
return item;
});
default: return item;
}
}));
return {
title: "天津大学教务处 - " + subtitle,
link: oaa_base_url + path,
description: null,
item: items
};
}
}
//#endregion
export { route };