新增大连工业大学网络服务新闻 优化结构 (#599)

This commit is contained in:
Yangjie Xu
2018-08-30 22:00:26 +08:00
committed by DIYgod
parent 9385f07bb5
commit ebd203f7e9
5 changed files with 68 additions and 11 deletions

View File

@@ -270,6 +270,7 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
- 文章 - 文章
- 大连工业大学 - 大连工业大学
- 教务处新闻 - 教务处新闻
- 网络服务新闻
- 东南大学 - 东南大学
- 信息科学与工程学院学术活动 - 信息科学与工程学院学术活动
- 上海科技大学 - 上海科技大学

View File

@@ -322,17 +322,29 @@ RSSHub 同时支持 RSS 2.0、Atom 和 [JSON Feed](https://jsonfeed.org/) 输出
#### 教务处新闻 <Author uid="xu42"/> #### 教务处新闻 <Author uid="xu42"/>
举例: [https://rsshub.app/dpu/jiaowu/xwdt](https://rsshub.app/dpu/jiaowu/xwdt) 举例: [https://rsshub.app/dpu/jiaowu/news/2](https://rsshub.app/dpu/jiaowu/news/2)
路由: `/dpu/jiaowu/:type?` 路由: `/dpu/jiaowu/news/:type?`
参数: 参数:
- type, 可选, 默认为 `xwdt` - type, 可选, 默认为 `2`
| 新闻动态 | 通知公告 | 教务文件 | | 新闻动态 | 通知公告 | 教务文件 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| xwdt | tzgg | jwwj | | 2 | 3 | 4 |
#### 网络服务新闻 <Author uid="xu42"/>
举例: [https://rsshub.app/dpu/wlfw/news/2](https://rsshub.app/dpu/wlfw/news/2)
路由: `/dpu/wlfw/news/:type?`
参数: type, 可选, 默认为 `1`
| 新闻动态 | 通知公告 |
| -------- | -------- |
| 1 | 2 |
### 东南大学 ### 东南大学

View File

@@ -471,8 +471,9 @@ router.get('/gitlab/explore/:type', require('./routes/gitlab/explore'));
// 忧郁的弟弟 // 忧郁的弟弟
router.get('/mygalgame', require('./routes/galgame/mygalgame')); router.get('/mygalgame', require('./routes/galgame/mygalgame'));
// DPU // 大连工业大学
router.get('/dpu/jiaowu/:type?', require('./routes/dpu/jiaowu')); router.get('/dpu/jiaowu/news/:type?', require('./routes/dpu/jiaowu/news'));
router.get('/dpu/wlfw/news/:type?', require('./routes/dpu/wlfw/news'));
// 东南大学 // 东南大学
router.get('/seu/radio/academic', require('./routes/seu/radio/academic')); router.get('/seu/radio/academic', require('./routes/seu/radio/academic'));

View File

@@ -1,4 +1,4 @@
const axios = require('../../utils/axios'); const axios = require('../../../utils/axios');
const iconv = require('iconv-lite'); const iconv = require('iconv-lite');
const cheerio = require('cheerio'); const cheerio = require('cheerio');
const resolve_url = require('url').resolve; const resolve_url = require('url').resolve;
@@ -6,13 +6,13 @@ const resolve_url = require('url').resolve;
const base_url = 'http://jiaowu.dlpu.edu.cn'; const base_url = 'http://jiaowu.dlpu.edu.cn';
const map = { const map = {
xwdt: '/more/2', 2: '/more/2',
tzgg: '/more/3', 3: '/more/3',
jwwj: '/more/4', 4: '/more/4',
}; };
module.exports = async (ctx) => { module.exports = async (ctx) => {
const type = ctx.params.type || 'xwdt'; const type = ctx.params.type || '2';
const link = `${base_url}${map[type]}`; const link = `${base_url}${map[type]}`;
const response = await axios({ const response = await axios({

43
routes/dpu/wlfw/news.js Normal file
View File

@@ -0,0 +1,43 @@
const axios = require('../../../utils/axios');
const iconv = require('iconv-lite');
const cheerio = require('cheerio');
const resolve_url = require('url').resolve;
const base_url = 'http://wlfw.dlpu.edu.cn';
const map = {
1: '/more/1',
2: '/more/2',
};
module.exports = async (ctx) => {
const type = ctx.params.type || '1';
const link = `${base_url}${map[type]}`;
const response = await axios({
method: 'get',
url: link,
responseType: 'arraybuffer',
headers: {
Referer: base_url,
},
});
const $ = cheerio.load(iconv.decode(response.data, 'gb2312'));
ctx.state.data = {
link: link,
title: $('#more>h1').text(),
item: $('.more_list>li')
.map((_, elem) => ({
link: resolve_url(base_url, $('a', elem).attr('href')),
title: $('a', elem).text(),
pubDate: new Date(
$('a>span', elem)
.text()
.replace(/.(\d+)年(\d+)月(\d+)日./, '$1-$2-$3')
).toUTCString(),
}))
.get(),
};
};