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(),
+ };
+};