diff --git a/lib/v2/qdu/houqin.js b/lib/v2/qdu/houqin.js
new file mode 100644
index 000000000..12bf0f03b
--- /dev/null
+++ b/lib/v2/qdu/houqin.js
@@ -0,0 +1,63 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const timezone = require('@/utils/timezone');
+const { parseDate } = require('@/utils/parse-date');
+
+const base = 'https://houqin.qdu.edu.cn/';
+
+module.exports = async (ctx) => {
+ const response = await got({
+ method: 'get',
+ url: `${base}index/tzgg.htm`,
+ });
+
+ const $ = cheerio.load(response.data);
+ const list = $('.n_newslist').children();
+ const items = await Promise.all(
+ list.map((i, item) => {
+ item = $(item);
+ const itemTitle = item.find('a').text();
+ let itemDate = timezone(parseDate(item.find('span').text()), 8);
+ const path = item.find('a').attr('href');
+ const itemUrl = base + path;
+ return ctx.cache.tryGet(itemUrl, async () => {
+ let description = '';
+ const result = await got(itemUrl);
+ const $ = cheerio.load(result.data);
+ if (
+ $('.article_body')
+ .find('div > h4')
+ .text()
+ .match(/发布时间:(.*)编辑:/) !== null
+ ) {
+ itemDate = timezone(
+ parseDate(
+ $('.article_body')
+ .find('div > h4')
+ .text()
+ .match(/发布时间:(.*)编辑:/)[1]
+ .trim(),
+ 'YYYY年MM月DD日 HH:mm'
+ ),
+ 8
+ );
+ }
+ description = $('.v_news_content').html().trim();
+
+ return {
+ title: itemTitle,
+ link: itemUrl,
+ pubDate: itemDate,
+ description,
+ };
+ });
+ })
+ );
+
+ ctx.state.data = {
+ title: '青岛大学 - 后勤管理处通知',
+ link: `${base}index/tzgg.htm`,
+ description: '青岛大学 - 后勤管理处通知',
+ item: items,
+ };
+};
diff --git a/lib/v2/qdu/maintainer.js b/lib/v2/qdu/maintainer.js
index f4270d26f..4350fcb6e 100644
--- a/lib/v2/qdu/maintainer.js
+++ b/lib/v2/qdu/maintainer.js
@@ -1,3 +1,4 @@
module.exports = {
+ '/houqin': ['abc1763613206'],
'/jwc': ['abc1763613206'],
};
diff --git a/lib/v2/qdu/radar.js b/lib/v2/qdu/radar.js
index e9f0a50c5..9db67e88e 100644
--- a/lib/v2/qdu/radar.js
+++ b/lib/v2/qdu/radar.js
@@ -9,5 +9,13 @@ module.exports = {
target: '/qdu/jwc',
},
],
+ houqin: [
+ {
+ title: '后勤管理处通知',
+ docs: 'https://docs.rsshub.app/routes/university#qing-dao-da-xue',
+ source: ['/tzgg.htm', '/'],
+ target: '/qdu/houqin',
+ },
+ ],
},
};
diff --git a/lib/v2/qdu/router.js b/lib/v2/qdu/router.js
index 2df835186..70712ea2b 100644
--- a/lib/v2/qdu/router.js
+++ b/lib/v2/qdu/router.js
@@ -1,3 +1,4 @@
module.exports = (router) => {
+ router.get('/houqin', require('./houqin'));
router.get('/jwc', require('./jwc'));
};
diff --git a/website/docs/routes/university.mdx b/website/docs/routes/university.mdx
index 1dca95c32..6aae18313 100644
--- a/website/docs/routes/university.mdx
+++ b/website/docs/routes/university.mdx
@@ -2199,6 +2199,10 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE\_TL
+### 后勤管理处通知 {#qing-dao-da-xue-hou-qin-guan-li-chu-tong-zhi}
+
+
+
## 清华大学 {#qing-hua-da-xue}
### 清华大学校内信息发布平台 {#qing-hua-da-xue-qing-hua-da-xue-xiao-nei-xin-xi-fa-bu-ping-tai}