添加了上海交通大学本科生教务办「国际办学」栏目 (#1227)

This commit is contained in:
Alex Chi 2018-12-04 14:26:00 +08:00 committed by DIYgod
parent e0dea8fb80
commit b207bc0e10
3 changed files with 60 additions and 0 deletions

View File

@ -1274,6 +1274,8 @@ GitHub 官方也提供了一些 RSS:
<route name="电子信息与电气工程学院本科教务办 -- 直升研究生" author="SkyZH" example="/sjtu/seiee/bjwb/postgraduate" path="/universities/sjtu/seiee/bjwb/postgraduate"/>
<route name="电子信息与电气工程学院本科教务办 -- 国际办学" author="SkyZH" example="/sjtu/seiee/bjwb/international" path="/universities/sjtu/seiee/bjwb/international"/>
<route name="研究生通知公告" author="mzr1996" example="/sjtu/gs/tzgg/pyxx" path="/universities/sjtu/gs/tzgg/:type?" :paramsDesc="['默认列举所有通知公告']">
| 通知公告 | 工作信息 | 招生信息 | 培养信息 | 学位学科 | 国际交流 | 创新工程 |

View File

@ -550,6 +550,7 @@ router.get('/sjtu/seiee/bjwb/major_select', require('./routes/universities/sjtu/
router.get('/sjtu/seiee/bjwb/major_transfer', require('./routes/universities/sjtu/seiee/bjwb/major_transfer'));
router.get('/sjtu/seiee/bjwb/postgraduate', require('./routes/universities/sjtu/seiee/bjwb/postgraduate'));
router.get('/sjtu/seiee/bjwb/abroad', require('./routes/universities/sjtu/seiee/bjwb/abroad'));
router.get('/sjtu/seiee/bjwb/international', require('./routes/universities/sjtu/seiee/bjwb/international'));
router.get('/sjtu/gs/tzgg/:type?', require('./routes/universities/sjtu/gs/tzgg'));

View File

@ -0,0 +1,57 @@
const axios = require('../../../../../utils/axios');
const cheerio = require('cheerio');
const url = require('url');
const host = 'http://bjwb.seiee.sjtu.edu.cn';
module.exports = async (ctx) => {
const link = url.resolve(host, `bkjwb/list/2281-1-20.htm`);
const response = await axios.get(link);
const $ = cheerio.load(response.data);
const list = $('.list_box_5 li')
.map((i, e) => ({
date: $(e)
.children('span')
.text()
.slice(1, -1),
title: $(e)
.children('a')
.text()
.slice(2),
link: $(e)
.children('a')
.attr('href'),
}))
.get();
const out = await Promise.all(
list.map(async (item) => {
const itemUrl = url.resolve(host, item.link);
const cache = await ctx.cache.get(itemUrl);
if (cache) {
return Promise.resolve(JSON.parse(cache));
}
const response = await axios.get(itemUrl);
const $ = cheerio.load(response.data);
const single = {
title: item.title,
link: itemUrl,
author: '上海交通大学电子信息与电气工程学院本科教务办',
description: $('.article_content').text(),
pubDate: new Date(item.date),
};
ctx.cache.set(itemUrl, JSON.stringify(single), 24 * 60 * 60);
return Promise.resolve(single);
})
);
ctx.state.data = {
title: '上海交通大学电子信息与电气工程学院本科教务办 -- 国际办学通知',
link,
item: out,
};
};