diff --git a/docs/university.md b/docs/university.md index cf4f8c3a9..2f851d0dc 100644 --- a/docs/university.md +++ b/docs/university.md @@ -1940,6 +1940,10 @@ type 列表: | -------- | -------------- | ------------ | -------- | ---------- | | zxtg | xdsgwy | gjzzsx | xwzx | hdyjz | +### 电气学院 + + + ## 西北工业大学 ### 翱翔门户 diff --git a/lib/router.js b/lib/router.js index 89152ddf2..1844db4ab 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2656,6 +2656,7 @@ router.get('/xjtu/gs/tzgg', require('./routes/universities/xjtu/gs/tzgg')); router.get('/xjtu/dean/:subpath+', require('./routes/universities/xjtu/dean')); router.get('/xjtu/international/:subpath+', require('./routes/universities/xjtu/international')); router.get('/xjtu/job/:subpath?', require('./routes/universities/xjtu/job')); +router.get('/xjtu/ee/:id?', require('./routes/universities/xjtu/ee')); // booksource router.get('/booksource', require('./routes/booksource/index')); diff --git a/lib/routes/universities/xjtu/ee.js b/lib/routes/universities/xjtu/ee.js new file mode 100644 index 000000000..7cba69ac8 --- /dev/null +++ b/lib/routes/universities/xjtu/ee.js @@ -0,0 +1,45 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); +const timezone = require('@/utils/timezone'); + +module.exports = async (ctx) => { + const id = ctx.params.id || '1124'; + const rootUrl = `http://ee.xjtu.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=${id}`; + const baseUrl = 'http://ee.xjtu.edu.cn'; + + const list_response = await got.get(rootUrl); + const $ = cheerio.load(list_response.data); + + const feed_title = $('span.windowstyle67278', "div[class='list_right fr']").text().trim(); + + const list = $("div[class='list_right fr'] ul li") + .slice(0, 10) + .map((_, item) => { + item = $(item); + const a = item.find('a'); + const date = parseDate(item.find('span').text()); + return { + title: a.text(), + link: new URL(a.attr('href'), baseUrl), + pubDate: timezone(date, +8), + }; + }) + .get(); + + ctx.state.data = { + title: `西安交通大学电气学院 - ${feed_title}`, + link: baseUrl, + item: await Promise.all( + list.map( + async (item) => + await ctx.cache.tryGet(item.link, async () => { + const res = await got.get(item.link); + const content = cheerio.load(res.data); + item.description = content('td.contentstyle67362', 'form').html(); + return item; + }) + ) + ), + }; +};