mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-05 20:27:52 +08:00
feat: 增加山西省人社厅人事考试 (#2798)
* fix: 获取不到磁力链接的BUG;add: 正文中添加下载链接与网盘链接 * add: 山西省人社厅人事考试
This commit is contained in:
@@ -69,6 +69,18 @@ pageClass: routes
|
||||
|
||||
</Route>
|
||||
|
||||
### 山西省人民政府
|
||||
|
||||
#### 山西省人社厅
|
||||
|
||||
<Route author="wolfyu1991" example="/gov/shanxi/rst/rsks-tzgg" path="/gov/shanxi/rst/:category" :paramsDesc="['分类名']">
|
||||
|
||||
| 通知公告 | 公务员考试 | 事业单位考试 | 专业技术人员资格考试 | 其他考试 |
|
||||
| :-------: | :--------: | :----------: | :------------------: | :-------: |
|
||||
| rsks-tzgg | rsks-gwyks | rsks-sydwks | rsks-zyjsryzgks | rsks-qtks |
|
||||
|
||||
</Route>
|
||||
|
||||
### 南京市人民政府
|
||||
|
||||
<Route author="ocleo1" example="/gov/city/nanjing/news" path="/gov/city/nanjing/:category" :paramsDesc="['分类名']">
|
||||
|
||||
@@ -1033,6 +1033,7 @@ router.get('/gov/statecouncil/briefing', require('./routes/gov/statecouncil/brie
|
||||
router.get('/gov/news/:uid', require('./routes/gov/news'));
|
||||
router.get('/gov/suzhou/news/:uid', require('./routes/gov/suzhou/news'));
|
||||
router.get('/gov/suzhou/doc', require('./routes/gov/suzhou/doc'));
|
||||
router.get('/gov/shanxi/rst/:category', require('./routes/gov/shanxi/rst'));
|
||||
|
||||
// 中华人民共和国生态环境部
|
||||
router.get('/gov/mee/gs', require('./routes/gov/mee/gs'));
|
||||
|
||||
74
lib/routes/gov/shanxi/rst.js
Normal file
74
lib/routes/gov/shanxi/rst.js
Normal file
@@ -0,0 +1,74 @@
|
||||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const resolve_url = require('url').resolve;
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const category = ctx.params.category;
|
||||
let url = '';
|
||||
let title = '';
|
||||
switch (category) {
|
||||
case 'rsks-tzgg':
|
||||
url = `http://rst.shanxi.gov.cn/rsks/tzgg/`;
|
||||
title = '山西人事考试专栏 - 通知公告';
|
||||
break;
|
||||
case 'rsks-gwyks':
|
||||
url = 'http://rst.shanxi.gov.cn/rsks/gwyks/';
|
||||
title = '山西人事考试专栏 - 公务员考试';
|
||||
break;
|
||||
case 'rsks-sydwks':
|
||||
url = `http://rst.shanxi.gov.cn/rsks/sydwks/`;
|
||||
title = '山西人事考试专栏 - 事业单位考试';
|
||||
break;
|
||||
case 'rsks-zyjsryzgks':
|
||||
url = `http://rst.shanxi.gov.cn/rsks/zyjsryzgks/`;
|
||||
title = '山西人事考试专栏 - 专业技术人员资格考试';
|
||||
break;
|
||||
case 'rsks-qtks':
|
||||
url = `http://rst.shanxi.gov.cn/rsks/qtks/`;
|
||||
title = '山西人事考试专栏 - 其他考试';
|
||||
break;
|
||||
default:
|
||||
console.log('pattern not matched');
|
||||
}
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: url,
|
||||
Host: 'rst.shanxi.gov.cn',
|
||||
responseType: 'buffer',
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
const list = $('.exam-main ul.list-items-box-inner li');
|
||||
|
||||
ctx.state.data = {
|
||||
title: title,
|
||||
link: url,
|
||||
item: await Promise.all(
|
||||
list &&
|
||||
list
|
||||
.map(async (index, item) => {
|
||||
item = $(item);
|
||||
|
||||
// // 获取全文
|
||||
const contenlUrl = item.find('a').attr('href');
|
||||
const link = resolve_url(url, contenlUrl);
|
||||
const description = await ctx.cache.tryGet(link, async () => {
|
||||
const fullText = await got({
|
||||
method: 'get',
|
||||
url: link,
|
||||
Host: 'rst.shanxi.gov.cn',
|
||||
responseType: 'buffer',
|
||||
});
|
||||
const fullTextData = cheerio.load(fullText.data);
|
||||
return fullTextData('.common-detail-inner').html();
|
||||
});
|
||||
return {
|
||||
title: item.find('a').text(),
|
||||
description: description,
|
||||
link: link,
|
||||
};
|
||||
})
|
||||
.get()
|
||||
),
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user