From de03bc750d800421b32688a02f6eec41961dfeb4 Mon Sep 17 00:00:00 2001 From: DylanXie123 Date: Sat, 17 Jul 2021 17:13:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(route):=20add=20=E8=A5=BF=E5=AE=89?= =?UTF-8?q?=E4=BA=A4=E9=80=9A=E5=A4=A7=E5=AD=A6=E7=94=B5=E6=B0=94=E5=AD=A6?= =?UTF-8?q?=E9=99=A2=E5=AE=98=E7=BD=91=E8=B7=AF=E7=94=B1=20(#7876)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/university.md | 4 +++ lib/router.js | 1 + lib/routes/universities/xjtu/ee.js | 45 ++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 lib/routes/universities/xjtu/ee.js 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; + }) + ) + ), + }; +};