mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-24 23:12:34 +08:00
feat(route): add 华北电力大学研究生院通知 (#10233)
* Update router.js * Create masterinfo.js * Update university.md * Update university.md * Update router.js * Update university.md * Update masterinfo.js * Update masterinfo.js * Delete lib/routes/universities/ncepu directory * commit1 * Update router.js * Update description.art * Update docs/university.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/university.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/ncepu/master/masterinfo.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/ncepu/master/masterinfo.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/ncepu/master/masterinfo.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/ncepu/master/masterinfo.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/ncepu/master/masterinfo.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/ncepu/master/masterinfo.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Delete description.art * Update masterinfo.js * Update masterinfo.js * Update masterinfo.js * Update masterinfo.js * Update masterinfo.js
This commit is contained in:
@@ -3291,3 +3291,15 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE_TLS
|
||||
### 数据科学与计算机学院动态
|
||||
|
||||
<Route author="Neutrino3316 MegrezZhu nczitzk" example="/sysu/cse" path="/sysu/cse"/>
|
||||
|
||||
## 华北电力大学
|
||||
|
||||
### 北京校区研究生院
|
||||
|
||||
<Route author="nilleo" example="/ncepu/master/tzgg" path="/ncepu/master/:type" :paramsDesc="['类型参数']">
|
||||
|
||||
| 类型 | 硕士招生信息 | 通知公告 |
|
||||
| -- | ------ | ---- |
|
||||
| 参数 | zsxx | tzgg |
|
||||
|
||||
</Route>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
'/master/:type': ['nilleo'],
|
||||
};
|
||||
@@ -0,0 +1,70 @@
|
||||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const timezone = require('@/utils/timezone');
|
||||
const { parseDate } = require('@/utils/parse-date');
|
||||
|
||||
const title_map = {
|
||||
tzgg: '通知公告',
|
||||
zsxx: '硕士招生信息',
|
||||
};
|
||||
const description_map = {
|
||||
tzgg: '通知公告',
|
||||
zsxx: '硕士招生信息',
|
||||
};
|
||||
const url_map = {
|
||||
tzgg: 'tzgg',
|
||||
zsxx: 'zsxx/sszsxx',
|
||||
};
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const type = ctx.params.type;
|
||||
const response = await got(`https://yjsy.ncepu.edu.cn/${url_map[type]}/index.htm`);
|
||||
const data = response.data; // 获取页面 html 数据
|
||||
|
||||
const $ = cheerio.load(data);
|
||||
const list = $('.articleList ul li')
|
||||
.map((_, item) => {
|
||||
item = $(item);
|
||||
// 单篇文章块的信息,其中文字部分是标题,属性是文章链接
|
||||
const a = item.find('a');
|
||||
// 发表日期
|
||||
const pubDate = timezone(parseDate(item.find('span').text().replace('[', '').replace(']', '')), +8);
|
||||
// 相对地址转化为绝对地址
|
||||
const url_head = `https://yjsy.ncepu.edu.cn/${url_map[type]}/`;
|
||||
const url_part = a.attr('href');
|
||||
const url = url_head + url_part;
|
||||
// 返回格式化数据
|
||||
return {
|
||||
title: a.attr('title'),
|
||||
link: url,
|
||||
pubDate,
|
||||
};
|
||||
})
|
||||
.get();
|
||||
|
||||
const items = await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const itemData = await ctx.cache.tryGet(item.link, async () => (await got(item.link)).data);
|
||||
const content = cheerio.load(itemData);
|
||||
|
||||
const articleAuthor = content('.articleAuthor').html().replace('作者: ', '');
|
||||
const eDescription = content('.article').html();
|
||||
const files = content('.Annex').html();
|
||||
|
||||
const single = {
|
||||
title: item.title,
|
||||
link: item.link,
|
||||
description: articleAuthor + eDescription + files,
|
||||
pubDate: item.pubDate,
|
||||
};
|
||||
return single;
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: `${title_map[type]}-华北电力大学研究生院`,
|
||||
link: `http://yjsy.ncepu.edu.cn/${url_map[type]}`,
|
||||
description: `华北电力大学研究生院${description_map[type]}`,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
module.exports = {
|
||||
'yjsy.ncepu.edu.cn': {
|
||||
_name: '华北电力大学研究生院',
|
||||
'.': [
|
||||
{
|
||||
title: '通知公告',
|
||||
docs: ' https://docs.rsshub.app/university.html#hua-bei-dian-li-da-xue',
|
||||
source: ['/tzgg/index.htm', '/'],
|
||||
target: '/ncepu/master/tzgg',
|
||||
},
|
||||
{
|
||||
title: '硕士招生信息',
|
||||
docs: 'https://docs.rsshub.app/university.html#hua-bei-dian-li-da-xue',
|
||||
source: ['/zsxx/sszsxx/index.htm', '/'],
|
||||
target: '/ncepu/master/zsxx',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,3 @@
|
||||
module.exports = function (router) {
|
||||
router.get('/master/:type', require('./master/masterinfo'));
|
||||
};
|
||||
Reference in New Issue
Block a user