diff --git a/docs/university.md b/docs/university.md
index 4b2f55ed0..492bed720 100644
--- a/docs/university.md
+++ b/docs/university.md
@@ -757,6 +757,12 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE_TLS
+## 吉林大学
+
+### 校内通知
+
+
+
## 江南大学
### 教务处通知
diff --git a/lib/router.js b/lib/router.js
index 406709941..c80f616b5 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -2953,4 +2953,7 @@ router.get('/ngbj/cat/:cat', require('./routes/niaogebiji/cat'));
// 东方我乐多丛志
router.get('/touhougarakuta/:language/:type', require('./routes/touhougarakuta'));
+// 吉林大学校内通知
+router.get('/jlu/oa', require('./routes/universities/jlu/oa'));
+
module.exports = router;
diff --git a/lib/routes/universities/jlu/oa.js b/lib/routes/universities/jlu/oa.js
new file mode 100644
index 000000000..b850e0c0d
--- /dev/null
+++ b/lib/routes/universities/jlu/oa.js
@@ -0,0 +1,31 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const response = await got({
+ method: 'get',
+ url: 'https://oa.jlu.edu.cn/defaultroot/PortalInformation!jldxList.action',
+ });
+
+ const data = response.data;
+
+ const $ = cheerio.load(data); // 使用 cheerio 加载返回的 HTML
+ const list = $('div[class="li rel"]');
+
+ ctx.state.data = {
+ title: 'jlu oa',
+ link: 'https://oa.jlu.edu.cn/defaultroot/PortalInformation!jldxList.action',
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ return {
+ title: item.find('a.font14').text(),
+ description: item.find('a.column').text(),
+ link: item.find('a.font14').attr('href'),
+ };
+ })
+ .get(),
+ };
+};