Skip to content

Commit

Permalink
feat(route): add 浙江省公务员考试录用网 (#13526)
Browse files Browse the repository at this point in the history
  • Loading branch information
nczitzk authored Oct 16, 2023
1 parent c05524b commit bb820b0
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/v2/gov/maintainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,5 @@ module.exports = {
'/wuhan/sy/whyw': ['nczitzk'],
'/xinyi/:path+': ['ShuiHuo'],
'/xuzhou/hrss/:category?': ['nczitzk'],
'/zhejiang/gwy/:category?/:column?': ['nczitzk'],
};
11 changes: 11 additions & 0 deletions lib/v2/gov/radar.js
Original file line number Diff line number Diff line change
Expand Up @@ -1168,4 +1168,15 @@ module.exports = {
},
],
},
'zjks.gov.cn': {
_name: '浙江省公务员考试录用网',
'.': [
{
title: '地市专栏',
docs: 'https://docs.rsshub.app/routes/government#zhe-jiang-sheng-gong-wu-yuan-kao-shi-lu-yong-wang',
source: ['/zjgwy/website/init.htm', '/zjgwy/website/queryDetail.htm', '/zjgwy/website/queryMore.htm'],
target: '/gov/zhejiang/gwy',
},
],
},
};
1 change: 1 addition & 0 deletions lib/v2/gov/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,5 @@ module.exports = function (router) {
router.get('/wuhan/sy/whyw', require('./wuhan/whyw'));
router.get(/xinyi(\/[\w/-]+)?/, require('./xinyi/xinyi'));
router.get('/xuzhou/hrss/:category?', require('./xuzhou/hrss'));
router.get('/zhejiang/gwy/:category?/:column?', require('./zhejiang/gwy'));
};
84 changes: 84 additions & 0 deletions lib/v2/gov/zhejiang/gwy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');

module.exports = async (ctx) => {
const { category, column } = ctx.params;
const limit = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 50;

const rootUrl = 'http://gwy.zjks.gov.cn';
const currentUrl = new URL(`zjgwy/website/${category ? 'queryMore' : 'init'}.htm`, rootUrl).href;
const detailUrl = new URL('zjgwy/website/queryDetail.htm', rootUrl).href;

const { data: response } = await got.post(currentUrl, {
form: {
dsdm: column,
mkxh: category,
oldornew: 'new',
},
});

const $ = cheerio.load(response);

let items = $('a[onclick^="queryDetail"]')
.slice(0, limit)
.toArray()
.map((item) => {
item = $(item);

const matches = item.prop('onclick').match(/queryDetail\('?(\d+)'?, '?(\d+)'?\);/);

return {
title: item.text(),
link: detailUrl,
category: matches[1],
guid: `zjks-${matches[1]}-${matches[2]}`,
pubDate: parseDate(item.parent().next().text()),
tzid: matches[2],
};
});

items = await Promise.all(
items.map((item) =>
ctx.cache.tryGet(item.guid, async () => {
const { data: detailResponse } = await got.post(detailUrl, {
form: {
mkxh: item.category,
oldornew: 'new',
dsdm: column,
tzid: item.tzid,
},
});

const content = cheerio.load(detailResponse);

item.description = content('div.ibox-content').last().html();
item.category = [content('div.ibox-title').last().find('h5').first().text()];

const files = content('a.ke-insertfile');

if (files.length > 0) {
const file = files.first();
item.enclosure_url = file.prop('href');
}

delete item.tzid;

return item;
})
)
);

const columnName = $('button.btn-success').last().text();
const categoryName = $('table').parent().prev().find('h5').text();

ctx.state.data = {
item: items,
title: `${$('title').text()} - ${columnName}${categoryName}`,
link: currentUrl,
description: $('div.title-font2').text(),
subtitle: `${columnName}${categoryName}`,
author: $('div.title-font').text(),
allowEmpty: true,
};
};
32 changes: 32 additions & 0 deletions website/docs/routes/government.md
Original file line number Diff line number Diff line change
Expand Up @@ -1144,6 +1144,38 @@ Language

</Route>

## 浙江省公务员考试录用网 {#zhe-jiang-sheng-gong-wu-yuan-kao-shi-lu-yong-wang}

### 通知 {#zhe-jiang-sheng-gong-wu-yuan-kao-shi-lu-yong-wang-tong-zhi}

<Route author="nczitzk" example="/gov/zhejiang/gwy/1" path="/gov/zhejiang/gwy/:category?/:column?" paramsDesc={['分类,见下表,默认为全部', '地市专栏,见下表,默认为全部']}>

| 分类 | id |
| ------------ | --- |
| 重要通知 | 1 |
| 招考公告 | 2 |
| 招考政策 | 3 |
| 面试体检考察 | 4 |
| 录用公示专栏 | 5 |

| 地市 | id |
| ------------ | ----- |
| 浙江省 | 133 |
| 浙江省杭州市 | 13301 |
| 浙江省宁波市 | 13302 |
| 浙江省温州市 | 13303 |
| 浙江省嘉兴市 | 13304 |
| 浙江省湖州市 | 13305 |
| 浙江省绍兴市 | 13306 |
| 浙江省金华市 | 13307 |
| 浙江省衢州市 | 13308 |
| 浙江省舟山市 | 13309 |
| 浙江省台州市 | 13310 |
| 浙江省丽水市 | 13311 |
| 省级单位 | 13317 |

</Route>

## 浙江省土地使用权网上交易系统 {#zhe-jiang-sheng-tu-di-shi-yong-quan-wang-shang-jiao-yi-xi-tong}

### 公告信息 {#zhe-jiang-sheng-tu-di-shi-yong-quan-wang-shang-jiao-yi-xi-tong-gong-gao-xin-xi}
Expand Down

0 comments on commit bb820b0

Please sign in to comment.