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>
|
||||||
|
|
||||||
|
### 山西省人民政府
|
||||||
|
|
||||||
|
#### 山西省人社厅
|
||||||
|
|
||||||
|
<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="['分类名']">
|
<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/news/:uid', require('./routes/gov/news'));
|
||||||
router.get('/gov/suzhou/news/:uid', require('./routes/gov/suzhou/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/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'));
|
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