feat(route): add 北京交通大学研究生院通知公告 (#7010)

This commit is contained in:
E1nzbern 2021-03-02 12:55:16 +08:00 committed by GitHub
parent 05ea0aa3ae
commit c744e9a2e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 156 additions and 0 deletions

View File

@ -4,6 +4,20 @@ pageClass: routes
# University
## Beijing Jiaotong University
### BJTU Graduate School
<RouteEn author="E1nzbern" example="/bjtu/gs/all" path="/bjtu/gs/:type" :paramsDesc="['Type of articles']">
| All articles | Notification | News | Admissions Promotion | Training | Degrees | Admissions | Master Admissions | PhD Admissions | Admissions Brochure | Admissions Policies and Regulations | Notice from Graduate Student Work Department | News from Graduate Student Work Department |
| ---- | -------- | -------- | ------------ | ------------ | -------- | -------- | ------ | ---------- | ------ | ------ | ------ | ------ |
| all | noti | news | zsxc | py | xw | zs | sszs | bszs | zsjz | zcfg | ygbtzgg | ygbnews |
</RouteEn>
Note: [Source website](https://gs.bjtu.edu.cn/) only provides articles in Chinese.
## MIT
### MIT OCW Most popular courses of the month

View File

@ -148,6 +148,18 @@ pageClass: routes
</Route>
## 北京交通大学
### 研究生院
<Route author="E1nzbern" example="/bjtu/gs/all" path="/bjtu/gs/:type" :paramsDesc="['文章类别']">
| 所有文章 | 通知公告 | 新闻动态 | 招生宣传 | 培养 | 学位 | 招生 | 硕士招生 | 博士招生 | 招生简章 | 招生政策法规 | 研工部通知公告 | 研工部新闻动态 |
| ---- | -------- | -------- | ------------ | ------------ | -------- | -------- | ------ | ---------- | ------ | ------ | ------ | ------ |
| all | noti | news | zsxc | py | xw | zs | sszs | bszs | zsjz | zcfg | ygbtzgg | ygbnews |
</Route>
## 北京科技大学天津学院
### 北京科技大学天津学院

View File

@ -613,6 +613,9 @@ router.get('/bjfu/news/:type', require('./routes/universities/bjfu/news/index'))
router.get('/bit/jwc', require('./routes/universities/bit/jwc/jwc'));
router.get('/bit/cs', require('./routes/universities/bit/cs/cs'));
// 北京交通大学
router.get('/bjtu/gs/:type', require('./routes/universities/bjtu/gs'));
// 大连工业大学
router.get('/dpu/jiaowu/news/:type?', require('./routes/universities/dpu/jiaowu/news'));
router.get('/dpu/wlfw/news/:type?', require('./routes/universities/dpu/wlfw/news'));

View File

@ -0,0 +1,127 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const type = ctx.params.type;
const struct = {
zs: {
selector: {
list: '.mainleft_box li',
},
url: 'https://gs.bjtu.edu.cn/cms/zszt/item/?tag=1',
name: '招生 - 北京交通大学研究生院'
},
noti: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=2',
name: '通知公告 - 北京交通大学研究生院'
},
news: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=3',
name: '新闻动态 - 北京交通大学研究生院'
},
zsxc: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=4',
name: '招生宣传 - 北京交通大学研究生院'
},
py: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=5',
name: '培养 - 北京交通大学研究生院'
},
xw: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=7',
name: '学位 - 北京交通大学研究生院'
},
ygbtzgg: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=9',
name: '通知公告 - 研工部 - 北京交通大学研究生院'
},
ygbnews: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=10',
name: '新闻动态 - 研工部 - 北京交通大学研究生院'
},
all: {
selector: {
list: '.tab-content li',
},
url: 'https://gs.bjtu.edu.cn/cms/item/?tag=12',
name: '所有文章 - 北京交通大学研究生院'
},
bszs: {
selector: {
list: '.mainleft_box li',
},
url: 'https://gs.bjtu.edu.cn/cms/zszt/item/?cat=2',
name: '博士招生 - 北京交通大学研究生院'
},
sszs: {
selector: {
list: '.mainleft_box li',
},
url: 'https://gs.bjtu.edu.cn/cms/zszt/item/?cat=3',
name: '硕士招生 - 北京交通大学研究生院'
},
zsjz: {
selector: {
list: '.mainleft_box li',
},
url: 'https://gs.bjtu.edu.cn/cms/zszt/item/?cat=4',
name: '招生简章 - 北京交通大学研究生院'
},
zcfg: {
selector: {
list: '.mainleft_box li',
},
url: 'https://gs.bjtu.edu.cn/cms/zszt/item/?cat=5',
name: '政策法规 - 北京交通大学研究生院'
},
};
const url = struct[type].url;
const response = await got({
method: 'get',
url: url,
});
const data = response.data;
const $ = cheerio.load(data);
const list = $(struct[type].selector.list);
ctx.state.data = {
title: struct[type].name,
link: `${url}`,
description: '北京交通大学研究生院',
item:
list &&
list
.map((index, item) => {
item = $(item);
const date = new Date(Date.parse(item.find('li span').text().slice(1, 11).replace(/-/g, "/")));
const bj_date = date.getTime() / 1000 + 8 * 60 * 60;
const title = item.find('li a').text().replace(/\[.*?\]/g, '');
return { title: title, description: title, link: item.find('li a').attr('href'), pubDate: new Date(parseInt(bj_date) * 1000) };
})
.get(),
};
};