From f55cc763f4bd6dc32cae7edd8d29e1702d53392d Mon Sep 17 00:00:00 2001 From: Fatpandac <1779196284@qq.com> Date: Sun, 23 Jan 2022 04:08:52 +0800 Subject: [PATCH] =?UTF-8?q?Add(route):=20add=20=E5=8C=97=E4=BA=AC=E5=B8=82?= =?UTF-8?q?=E7=A7=91=E5=A7=94=20(#8811)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DIYgod --- docs/government.md | 10 ++ lib/radar-rules.js | 10 -- lib/v2/gov/beijing/kw/index.js | 44 ++++++ lib/v2/gov/maintainer.js | 1 + lib/v2/gov/radar.js | 273 +++++++++++++++++++++++++++++++++ lib/v2/gov/router.js | 1 + 6 files changed, 329 insertions(+), 10 deletions(-) create mode 100644 lib/v2/gov/beijing/kw/index.js diff --git a/docs/government.md b/docs/government.md index 0d126c6b60..1077459557 100644 --- a/docs/government.md +++ b/docs/government.md @@ -16,6 +16,16 @@ pageClass: routes +## 北京市科学技术委员会、中关村科技园区管理委员会 + + + +频道参数可在官网获取,如: + +`http://kw.beijing.gov.cn/col/col736/index.html` 对应 `/kwbeijing/col736` + + + ## 澳门卫生局 ### 最新消息 diff --git a/lib/radar-rules.js b/lib/radar-rules.js index c7f6be1a4e..7e756aaf72 100644 --- a/lib/radar-rules.js +++ b/lib/radar-rules.js @@ -1540,16 +1540,6 @@ module.exports = { }, ], }, - 'beijing.gov.cn': { - wjw: [ - { - title: '北京卫生健康委员会', - docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-wei-sheng-jian-kang-wei-yuan-hui', - source: '/xwzx_20031/:caty', - target: '/gov/beijing/mhc/:caty', - }, - ], - }, 'ynu.edu.cn': { _name: '云南大学', home: [ diff --git a/lib/v2/gov/beijing/kw/index.js b/lib/v2/gov/beijing/kw/index.js new file mode 100644 index 0000000000..f6bb0143b8 --- /dev/null +++ b/lib/v2/gov/beijing/kw/index.js @@ -0,0 +1,44 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); + +const rootUrl = 'http://kw.beijing.gov.cn'; + +module.exports = async (ctx) => { + const channel = ctx.params.channel; + const url = `${rootUrl}/col/${channel}/index.html`; + + const response = await got.get(url); + const $ = cheerio.load(response.data); + const title = $('a.bt_link').last().text().replace('>', ''); + const dataJs = $('div.left.zhengce_right > script[language="javascript"]').html() ? $('div.left.zhengce_right > script[language="javascript"]').html() : $('div.centent_width > script[language="javascript"]').html(); + let items = dataJs + .match(/urls\[i]='(.*?)';headers\[i]="(.*?)";year\[i]='(\d+)';month\[i]='(\d+)';day\[i]='(\d+)';/g) + .slice(0, ctx.query.limit ? parseInt(ctx.query.limit) : 25) + .map((item) => { + const result = item.match(/urls\[i]='(.*?)';headers\[i]="(.*?)";year\[i]='(\d+)';month\[i]='(\d+)';day\[i]='(\d+)';/); + return { + title: cheerio.load(result[2])('a').attr('title') || result[2], + link: `${rootUrl}${result[1]}`, + pubDate: parseDate(`${result[3]}-${result[4]}-${result[5]}`, 'YYYY-MM-DD'), + }; + }); + + items = await Promise.all( + items.map((item) => + ctx.cache.tryGet(item.link, async () => { + const content = await got.get(item.link); + const $ = cheerio.load(content.data); + item.description = $('#zoom').html() ? $('#zoom').html() : $('div.left.zhengce_right').html(); + + return item; + }) + ) + ); + + ctx.state.data = { + title: `北京市科学技术委员会、中关村科技园区管理委员会 - ${title}`, + link: url, + item: items, + }; +}; diff --git a/lib/v2/gov/maintainer.js b/lib/v2/gov/maintainer.js index 7d10f2b15c..6387bce05e 100644 --- a/lib/v2/gov/maintainer.js +++ b/lib/v2/gov/maintainer.js @@ -1,4 +1,5 @@ module.exports = { + '/beijing/kw/:channel': ['Fatpandac'], '/shenzhen/hrss/szksy/:caty/:page?': ['zlasd'], '/shenzhen/zzb/:caty/:page?': ['zlasd'], '/shanghai/rsj/ksxm': ['Fatpandac'], diff --git a/lib/v2/gov/radar.js b/lib/v2/gov/radar.js index 45510255bc..bb5a1ca2d3 100644 --- a/lib/v2/gov/radar.js +++ b/lib/v2/gov/radar.js @@ -1,4 +1,277 @@ module.exports = { + 'beijing.gov.cn': { + _name: '北京市人民政府', + kw: [ + { + title: '北京市科委央地协同', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1132') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委三城一区', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1134') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委高精尖产业', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1136') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委开放创新', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1138') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委深化改革', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1140') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委内设机构', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col746') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委直属机构', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col748') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委行政许可', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1520') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委行政处罚', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1522') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委行政确认', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1524') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委行政奖励', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1526') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '行北京市科委政检查', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1528') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委其他权力', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1542') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委最新政策', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2380') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委科技政策-科技法规规章文件', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2962' || params.channel === 'col2384') { + return '/gov/beijing/kw/col2384'; + } + }, + }, + { + title: '北京市科委科技政策-科委规范性文件', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2962' || params.channel === 'col2386') { + return '/gov/beijing/kw/col2386'; + } + }, + }, + { + title: '北京市科委科技政策-其他科技政策', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2962' || params.channel === 'col2388') { + return '/gov/beijing/kw/col2388'; + } + }, + }, + { + title: '北京市科委国家科技政策', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2964') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委政策解读', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2396') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委通知公告', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col736') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委新闻中心', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col6382') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委要闻', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col6344') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委工作动态', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2330') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委媒体报道', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col2332') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委图片报道', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col6346') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + { + title: '北京市科委政府网站年报专栏', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-ke-xue-ji-shu-wei-yuan-hui-、-zhong-guan-cun-ke-ji-yuan-qu-guan-li-wei-yuan-hui', + source: ['/col/:channel/index.html'], + target: (params) => { + if (params.channel === 'col1008') { + return '/gov/beijing/kw/:channel'; + } + }, + }, + ], + wjw: [ + { + title: '北京卫生健康委员会', + docs: 'https://docs.rsshub.app/government.html#bei-jing-shi-wei-sheng-jian-kang-wei-yuan-hui', + source: '/xwzx_20031/:caty', + target: '/gov/beijing/mhc/:caty', + }, + ], + }, 'hrss.sz.gov.cn': { _name: '深圳考试院', '.': [ diff --git a/lib/v2/gov/router.js b/lib/v2/gov/router.js index 1c75877faf..21a6541c5c 100644 --- a/lib/v2/gov/router.js +++ b/lib/v2/gov/router.js @@ -1,4 +1,5 @@ module.exports = function (router) { + router.get('/beijing/kw/:channel', require('./beijing/kw/index')); router.get('/shenzhen/hrss/szksy/:caty/:page?', require('./shenzhen/hrss/szksy/index')); router.get('/shenzhen/zzb/:caty/:page?', require('./shenzhen/zzb/index')); router.get('/shanghai/rsj/ksxm', require('./shanghai/rsj/ksxm'));