From 46d8f36616191b697e1f18dc10262299ab48eb4a Mon Sep 17 00:00:00 2001 From: cijiugechu <32487868+cijiugechu@users.noreply.github.com> Date: Tue, 17 Mar 2020 11:56:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:add=20=E6=B9=96=E5=8C=97=E5=A4=A7=E5=AD=A6?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=20(#4237)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/university.md | 12 ++++++++ lib/router.js | 3 ++ lib/routes/universities/hubu/news.js | 45 ++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 lib/routes/universities/hubu/news.js diff --git a/docs/university.md b/docs/university.md index 80b21098f..fda78332d 100644 --- a/docs/university.md +++ b/docs/university.md @@ -496,6 +496,18 @@ category 列表: +## 湖北大学 + +### 新闻通知 + + + +| 综合新闻 | 湖大要闻 | 通知公告 | 学术学者学生 | 媒体湖大 | +| -------- | -------- | -------- | ------------ | -------- | +| zhxw | hdyw | tzgg | xsxzxs | mthd | + + + ## 华中科技大学 ### 人工智能和自动化学院通知 diff --git a/lib/router.js b/lib/router.js index 06f516f54..e5bcfaa1d 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2360,4 +2360,7 @@ router.get('/moxingfans', require('./routes/moxingfans')); // Chiphell router.get('/chiphell/forum/:forumId?', require('./routes/chiphell/forum')); +// 湖北大学 +router.get('/hubu/news/:type', require('./routes/universities/hubu/news')); + module.exports = router; diff --git a/lib/routes/universities/hubu/news.js b/lib/routes/universities/hubu/news.js new file mode 100644 index 000000000..5ab6a4410 --- /dev/null +++ b/lib/routes/universities/hubu/news.js @@ -0,0 +1,45 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const resolve_url = require('url').resolve; + +const base_url = 'http://www.hubu.edu.cn/index'; + +const map = { + zhxw: '/zhxw.htm', + hdyw: '/hdyw.htm', + tzgg: '/tzgg.htm', + xsxzxs: '/xsxzxs.htm', + mthd: '/mthd.htm', +}; + +module.exports = async (ctx) => { + const type = ctx.params.type; + const link = `${base_url}${map[type]}`; + const date = new Date(); + + const response = await got({ + method: 'get', + url: link, + headers: { + Referer: link, + }, + }); + + const $ = cheerio.load(response.data); + + ctx.state.data = { + link: link, + title: $('title').text(), + item: $('.list>ul>li') + .slice(0, 10) + .map((_, elem) => ({ + link: resolve_url(link, $('a', elem).attr('href')), + title: $('a', elem).text(), + pubDate: + new Date(`${date.getFullYear()}-${$('span.food-time', elem).text()}`) > date + ? new Date(`${date.getFullYear() - 1}-${$('span.food-time', elem).text()}`).toUTCString() + : new Date(`${date.getFullYear()}-${$('span.food-time', elem).text()}`).toUTCString(), + })) + .get(), + }; +};