diff --git a/docs/university.md b/docs/university.md
index c676883c0..90f61d3c1 100644
--- a/docs/university.md
+++ b/docs/university.md
@@ -3669,6 +3669,13 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE_TLS
+### 选课信息教务通知
+
+
+::: warning 注意
+由于选课通知仅允许校园网访问,需自行部署。
+:::
+
## 中国科学技术大学
### 官网通知公告
diff --git a/lib/v2/ouc/jwgl.js b/lib/v2/ouc/jwgl.js
new file mode 100644
index 000000000..6f2a88262
--- /dev/null
+++ b/lib/v2/ouc/jwgl.js
@@ -0,0 +1,42 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const { parseDate } = require('@/utils/parse-date');
+
+module.exports = async (ctx) => {
+ const link = 'http://jwgl.ouc.edu.cn/public/listSchoolNotices.action?currentPage=1&recordsPerPage=15&qtitle=';
+ const response = await got(link);
+ const $ = cheerio.load(response.data);
+ const list = $('div.datalist table tbody tr')
+ .toArray()
+ .map((e) => {
+ e = $(e);
+ const noticeId = e
+ .find('a')
+ .attr('onclick')
+ .match(/viewNotice\('(.+?)'\)/)[1];
+ const tds = e.find('td');
+ return {
+ title: tds.eq(2).text(),
+ link: 'http://jwgl.ouc.edu.cn/public/viewSchoolNoticeDetail.action?schoolNoticeId=' + noticeId,
+ pubDate: parseDate(tds.eq(3).text(), 'YYYY-MM-DD HH:mm'),
+ };
+ });
+
+ const out = await Promise.all(
+ list.map((item) =>
+ ctx.cache.tryGet(item.link, async () => {
+ const response = await got(item.link);
+ const $ = cheerio.load(response.data);
+ item.description = $('div.notice').html();
+ return item;
+ })
+ )
+ );
+
+ ctx.state.data = {
+ title: '中国海洋大学选课信息教务通知',
+ link,
+ description: '中国海洋大学选课信息教务通知',
+ item: out,
+ };
+};
diff --git a/lib/v2/ouc/maintainer.js b/lib/v2/ouc/maintainer.js
index dc547d772..7cb365c2b 100644
--- a/lib/v2/ouc/maintainer.js
+++ b/lib/v2/ouc/maintainer.js
@@ -2,5 +2,6 @@ module.exports = {
'/it/postgraduate': ['shengmaosu'],
'/it/:type?': ['GeoffreyChen777'],
'/jwc': ['3401797899'],
+ '/jwgl': ['3401797899'],
'/yjs': ['shengmaosu'],
};
diff --git a/lib/v2/ouc/radar.js b/lib/v2/ouc/radar.js
index 6399cbc26..5b5a6e6cb 100644
--- a/lib/v2/ouc/radar.js
+++ b/lib/v2/ouc/radar.js
@@ -1,14 +1,6 @@
module.exports = {
'ouc.edu.cn': {
_name: '中国海洋大学',
- jwc: [
- {
- title: '教务处',
- docs: 'https://docs.rsshub.app/university.html#zhong-guo-hai-yang-da-xue',
- source: ['/', '/6517/list.htm'],
- target: '/ouc/jwc',
- },
- ],
it: [
{
title: '信息科学与工程学院',
@@ -23,6 +15,22 @@ module.exports = {
target: '/ouc/it/postgraduate',
},
],
+ jwc: [
+ {
+ title: '教务处',
+ docs: 'https://docs.rsshub.app/university.html#zhong-guo-hai-yang-da-xue',
+ source: ['/', '/6517/list.htm'],
+ target: '/ouc/jwc',
+ },
+ ],
+ jwgl: [
+ {
+ title: '选课信息教务通知',
+ docs: 'https://docs.rsshub.app/university.html#zhong-guo-hai-yang-da-xue',
+ source: ['/cas/login.action', '/public/SchoolNotice.jsp'],
+ target: '/ouc/jwgl',
+ },
+ ],
yz: [
{
title: '研究生院',
diff --git a/lib/v2/ouc/router.js b/lib/v2/ouc/router.js
index 96f4ae329..5ca322591 100644
--- a/lib/v2/ouc/router.js
+++ b/lib/v2/ouc/router.js
@@ -2,5 +2,6 @@ module.exports = (router) => {
router.get('/it/postgraduate', require('./it-postgraduate'));
router.get('/it/:type?', require('./it'));
router.get('/jwc', require('./jwc'));
+ router.get('/jwgl', require('./jwgl'));
router.get('/yjs', require('./yjs'));
};