From c744e9a2e075477f04eee3c23deac8423d5c6340 Mon Sep 17 00:00:00 2001 From: E1nzbern <42884262+E1nzbern@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:55:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(route):=20add=20=E5=8C=97=E4=BA=AC?= =?UTF-8?q?=E4=BA=A4=E9=80=9A=E5=A4=A7=E5=AD=A6=E7=A0=94=E7=A9=B6=E7=94=9F?= =?UTF-8?q?=E9=99=A2=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A=20(#7010)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en/university.md | 14 +++ docs/university.md | 12 +++ lib/router.js | 3 + lib/routes/universities/bjtu/gs/index.js | 127 +++++++++++++++++++++++ 4 files changed, 156 insertions(+) create mode 100644 lib/routes/universities/bjtu/gs/index.js diff --git a/docs/en/university.md b/docs/en/university.md index 7a73ca331..90598dec8 100644 --- a/docs/en/university.md +++ b/docs/en/university.md @@ -4,6 +4,20 @@ pageClass: routes # University +## Beijing Jiaotong University + +### BJTU Graduate School + + + +| 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 | + + + +Note: [Source website](https://gs.bjtu.edu.cn/) only provides articles in Chinese. + ## MIT ### MIT OCW Most popular courses of the month diff --git a/docs/university.md b/docs/university.md index 25dcb6cc6..b7b7707c6 100644 --- a/docs/university.md +++ b/docs/university.md @@ -148,6 +148,18 @@ pageClass: routes +## 北京交通大学 + +### 研究生院 + + + +| 所有文章 | 通知公告 | 新闻动态 | 招生宣传 | 培养 | 学位 | 招生 | 硕士招生 | 博士招生 | 招生简章 | 招生政策法规 | 研工部通知公告 | 研工部新闻动态 | +| ---- | -------- | -------- | ------------ | ------------ | -------- | -------- | ------ | ---------- | ------ | ------ | ------ | ------ | +| all | noti | news | zsxc | py | xw | zs | sszs | bszs | zsjz | zcfg | ygbtzgg | ygbnews | + + + ## 北京科技大学天津学院 ### 北京科技大学天津学院 diff --git a/lib/router.js b/lib/router.js index de6c05c02..03c7fb8de 100644 --- a/lib/router.js +++ b/lib/router.js @@ -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')); diff --git a/lib/routes/universities/bjtu/gs/index.js b/lib/routes/universities/bjtu/gs/index.js new file mode 100644 index 000000000..717f9a8a6 --- /dev/null +++ b/lib/routes/universities/bjtu/gs/index.js @@ -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(), + }; +}; \ No newline at end of file