feat(route): add 中国海洋大学选课信息教务通知 (#12880)

* feat(route): add 中国海洋大学教务处

* fix: sort entries

* fix: 修复错误的entries排序

* feat(route): add 中国海洋大学选课信息教务通知

* add selfhost

---------
This commit is contained in:
2023-07-28 20:59:58 +08:00 committed by GitHub
parent d8ddc29e43
commit 5373b5878b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 67 additions and 8 deletions

View File

@ -3669,6 +3669,13 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE_TLS
<Route author="3401797899" example="/ouc/jwc" path="/ouc/jwc" radar="1"/>
### 选课信息教务通知
<Route author="3401797899" example="/ouc/jwgl" path="/ouc/jwgl" radar="1" selfhost="1"/>
::: warning 注意
由于选课通知仅允许校园网访问,需自行部署。
:::
## 中国科学技术大学
### 官网通知公告

42
lib/v2/ouc/jwgl.js Normal file
View File

@ -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,
};
};

View File

@ -2,5 +2,6 @@ module.exports = {
'/it/postgraduate': ['shengmaosu'],
'/it/:type?': ['GeoffreyChen777'],
'/jwc': ['3401797899'],
'/jwgl': ['3401797899'],
'/yjs': ['shengmaosu'],
};

View File

@ -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: '研究生院',

View File

@ -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'));
};