diff --git a/docs/README.md b/docs/README.md index f08d720cd..c783064b5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1412,14 +1412,22 @@ category 列表: ### 四川旅游学院 - + - + + + + + + + | 教务通知 | 信息公告 | | -------- | -------- | | 13 | 14 | + + ### 电子科技大学 diff --git a/router.js b/router.js index 29fce831b..484fc4a74 100644 --- a/router.js +++ b/router.js @@ -596,8 +596,10 @@ router.get('/njust/cwc/:type', require('./routes/universities/njust/cwc')); router.get('/njust/gs/:type', require('./routes/universities/njust/gs')); // 四川旅游学院 -router.get('/sctu/xgxy', require('./routes/universities/sctu/xgxy')); -router.get('/sctu/jwc/:type?', require('./routes/universities/sctu/jwc')); +router.get('/sctu/xgxy', require('./routes/universities/sctu/information-engineer-faculty/index')); +router.get('/sctu/xgxy/:id', require('./routes/universities/sctu/information-engineer-faculty/context')); +router.get('/sctu/jwc/:type?', require('./routes/universities/sctu/jwc/index')); +router.get('/sctu/jwc/:type/:id', require('./routes/universities/sctu/jwc/context')); // 电子科技大学 router.get('/uestc/jwc/:type?', require('./routes/universities/uestc/jwc')); diff --git a/routes/universities/sctu/information-engineer-faculty/context.js b/routes/universities/sctu/information-engineer-faculty/context.js new file mode 100644 index 000000000..1a4ffaa9e --- /dev/null +++ b/routes/universities/sctu/information-engineer-faculty/context.js @@ -0,0 +1,44 @@ +const axios = require('../../../../utils/axios'); +const cheerio = require('cheerio'); +const iconv = require('iconv-lite'); + +module.exports = async (ctx) => { + const response = await axios({ + method: 'get', + url: `http://it.sctu.edu.cn/data.asp?fa=2&fl=12&zi=0&id=${ctx.params.id}`, + responseType: 'arraybuffer', + headers: { + Referer: 'http://it.sctu.edu.cn/', + }, + }); + + const formal = (buffer) => { + // HTML-buffer转为gb2312 + const data = iconv.decode(buffer, 'gb2312'); + + return cheerio.load(data); + }; + + const $ = formal(response.data); + + const list = $('.data'); + + ctx.state.data = { + title: '四川旅游学院', + link: 'http://www.sctu.edu.cn', + description: $('meta[name="description"]').attr('content'), + item: + list && + list + .map((index, item) => { + item = $(item); + + return { + title: $(item.find('.data_bt')).text(), + pubDate: $(item.find('.data_in')).text(), + description: item.find('.data_co').html(), + }; + }) + .get(), + }; +}; diff --git a/routes/universities/sctu/xgxy.js b/routes/universities/sctu/information-engineer-faculty/index.js similarity index 91% rename from routes/universities/sctu/xgxy.js rename to routes/universities/sctu/information-engineer-faculty/index.js index 5f94ea1a5..1a99f8f25 100644 --- a/routes/universities/sctu/xgxy.js +++ b/routes/universities/sctu/information-engineer-faculty/index.js @@ -1,4 +1,4 @@ -const axios = require('../../../utils/axios'); +const axios = require('../../../../utils/axios'); const cheerio = require('cheerio'); const iconv = require('iconv-lite'); @@ -19,7 +19,7 @@ module.exports = async (ctx) => { const list = $('.list_dt a'); ctx.state.data = { - title: '四川旅游学院首页', + title: '四川旅游学院信息与工程系', link: 'http://www.sctu.edu.cn', description: $('meta[name="description"]').attr('content'), item: diff --git a/routes/universities/sctu/jwc/context.js b/routes/universities/sctu/jwc/context.js new file mode 100644 index 000000000..cbe073b97 --- /dev/null +++ b/routes/universities/sctu/jwc/context.js @@ -0,0 +1,44 @@ +const axios = require('../../../../utils/axios'); +const cheerio = require('cheerio'); +const iconv = require('iconv-lite'); + +module.exports = async (ctx) => { + const response = await axios({ + method: 'get', + url: `http://www.sctu.edu.cn/jwc/content.asp?type=12&fl=${ctx.params.type}&id=${ctx.params.id}`, + responseType: 'arraybuffer', + headers: { + Referer: 'http://sctu.edu.cn/', + }, + }); + + const formal = (buffer) => { + // HTML-buffer转为gb2312 + const data = iconv.decode(buffer, 'gb2312'); + + return cheerio.load(data); + }; + + const $ = formal(response.data); + + const list = $('#list2'); + + ctx.state.data = { + title: '四川旅游学院信息与工程学院', + link: 'http://www.sctu.edu.cn', + description: $('meta[name="description"]').attr('content'), + item: + list && + list + .map((index, item) => { + item = $(item); + + return { + title: $(item.find('.title')).text(), + pubDate: $(item.find('.info')).text(), + description: item.html(), + }; + }) + .get(), + }; +}; diff --git a/routes/universities/sctu/jwc.js b/routes/universities/sctu/jwc/index.js similarity index 79% rename from routes/universities/sctu/jwc.js rename to routes/universities/sctu/jwc/index.js index 035b124f2..4cb6cb9ba 100644 --- a/routes/universities/sctu/jwc.js +++ b/routes/universities/sctu/jwc/index.js @@ -1,4 +1,4 @@ -const axios = require('../../../utils/axios'); +const axios = require('../../../../utils/axios'); const cheerio = require('cheerio'); const iconv = require('iconv-lite'); @@ -13,15 +13,19 @@ module.exports = async (ctx) => { }, }); - // HTML-buffer转为gb2312 - const data = iconv.decode(response.data, 'gb2312'); + const formal = (buffer) => { + // HTML-buffer转为gb2312 + const data = iconv.decode(buffer, 'gb2312'); - const $ = cheerio.load(data); + return cheerio.load(data); + }; + + const $ = formal(response.data); const list = $('#list1 ul li'); ctx.state.data = { - title: '四川旅游学院首页', + title: '四川旅游学院', link: 'http://www.sctu.edu.cn', description: $('meta[name="description"]').attr('content'), item: