diff --git a/lib/v2/gov/maintainer.js b/lib/v2/gov/maintainer.js index b80356ec4a7740..58a5704316287a 100644 --- a/lib/v2/gov/maintainer.js +++ b/lib/v2/gov/maintainer.js @@ -76,6 +76,7 @@ module.exports = { '/shanghai/wgj/:page?': ['gideonsenku'], '/shenzhen/hrss/szksy/:caty/:page?': ['zlasd'], '/shenzhen/xxgk/zfxxgj/:caty': ['laoxua'], + '/shenzhen/zjj/xxgk/:caty': ['lonn'], '/shenzhen/zzb/:caty/:page?': ['zlasd'], '/sichuan/deyang/govpublicinfo/:countyName/:infoType?': ['zytomorrow'], '/sichuan/deyang/mztoday/:infoType?': ['zytomorrow'], diff --git a/lib/v2/gov/radar.js b/lib/v2/gov/radar.js index fd565af45237d9..fb357bdb4e3ef0 100644 --- a/lib/v2/gov/radar.js +++ b/lib/v2/gov/radar.js @@ -1008,6 +1008,14 @@ module.exports = { target: '/gov/shenzhen/hrss/szksy/:caty/:page?', }, ], + zjj: [ + { + title: '深圳市住房和建设局', + docs: 'https://docs.rsshub.app/routes/government#guang-dong-sheng-ren-min-zheng-fu-shen-zhen-shi-zhu-fang-he-jian-she-ju', + source: ['/xxgk/:caty'], + target: '/gov/shenzhen/zjj/xxgk/:caty', + }, + ], zzb: [ { title: '组工在线公告', diff --git a/lib/v2/gov/router.js b/lib/v2/gov/router.js index d21b76f7fd6d30..3205f67b3f8820 100644 --- a/lib/v2/gov/router.js +++ b/lib/v2/gov/router.js @@ -67,6 +67,7 @@ module.exports = function (router) { router.get(/shanghai\/yjj\/([\w/-]+)?/, require('./shanghai/yjj')); router.get('/shenzhen/hrss/szksy/:caty/:page?', require('./shenzhen/hrss/szksy/index')); router.get('/shenzhen/xxgk/zfxxgj/:caty', require('./shenzhen/xxgk/zfxxgj')); + router.get('/shenzhen/zjj/xxgk/:caty', require('./shenzhen/zjj/index')); router.get('/shenzhen/zzb/:caty/:page?', require('./shenzhen/zzb/index')); router.get('/sichuan/deyang/govpublicinfo/:countyName/:infoType?', require('./sichuan/deyang/govpublicinfo')); router.get('/sichuan/deyang/mztoday/:infoType?', require('./sichuan/deyang/mztoday')); diff --git a/lib/v2/gov/shenzhen/zjj/index.js b/lib/v2/gov/shenzhen/zjj/index.js new file mode 100644 index 00000000000000..26ffa63387a47c --- /dev/null +++ b/lib/v2/gov/shenzhen/zjj/index.js @@ -0,0 +1,45 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); +const timezone = require('@/utils/timezone'); + +const config = { + tzgg: { + link: 'tzgg/', + title: '通知公告', + }, +}; + +module.exports = async (ctx) => { + const baseUrl = 'http://zjj.sz.gov.cn/xxgk/'; + const cfg = config[ctx.params.caty]; + if (!cfg) { + throw Error('Bad category. See docs'); + } + + const currentUrl = new URL(cfg.link, baseUrl).href; + + const { data: response } = await got(currentUrl); + const $ = cheerio.load(response); + + const items = $('div.listcontent_right ul li') + // 使用“toArray()”方法将选择的所有 DOM 元素以数组的形式返回。 + .toArray() + // 使用“map()”方法遍历数组,并从每个元素中解析需要的数据。 + .map((item) => { + item = $(item); + const a = item.find('a').first(); + return { + title: a.text(), + // `link` 需要一个绝对 URL,但 `a.attr('href')` 返回一个相对 URL。 + link: a.attr('href'), + pubDate: timezone(parseDate(item.find('span').first().text(), 'YY-MM-DD'), 0), + }; + }); + + ctx.state.data = { + title: '深圳市住房和建设局 - ' + cfg.title, + link: currentUrl, + item: items, + }; +}; diff --git a/website/docs/routes/government.md b/website/docs/routes/government.md index 2e4f4cbf39b748..12c92c1bce829b 100644 --- a/website/docs/routes/government.md +++ b/website/docs/routes/government.md @@ -401,6 +401,16 @@ Language +### 深圳市住房和建设局 {#guang-dong-sheng-ren-min-zheng-fu-shen-zhen-shi-zhu-fang-he-jian-she-ju} + + + +| 通知公告 | +| :------: | +| tzgg | + + + ### 惠州市人民政府 {#guang-dong-sheng-ren-min-zheng-fu-hui-zhou-shi-ren-min-zheng-fu} #### 政务公开