diff --git a/docs/other.md b/docs/other.md index 78c94d0af..4bba03e2e 100644 --- a/docs/other.md +++ b/docs/other.md @@ -390,6 +390,10 @@ type 为 all 时,category 参数不支持 cost 和 free ## 武汉肺炎疫情新闻动态 +### 国家卫健委 - 疫情通报 + + + ### 财新网 - 武汉肺炎防疫全纪录 diff --git a/lib/router.js b/lib/router.js index ecbd39c3a..b4ab4e2bd 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2159,5 +2159,6 @@ router.get('/coronavirus/dxy/data/:province', require('./routes/coronavirus/dxy- router.get('/coronavirus/dxy/data', require('./routes/coronavirus/dxy-data-country')); router.get('/coronavirus/dxy', require('./routes/coronavirus/dxy')); router.get('/coronavirus/scmp', require('./routes/coronavirus/scmp')); +router.get('/nhc/list_gzbd', require('./routes/nhc/list_gzbd')); module.exports = router; diff --git a/lib/routes/nhc/list_gzbd.js b/lib/routes/nhc/list_gzbd.js new file mode 100644 index 000000000..2b077901f --- /dev/null +++ b/lib/routes/nhc/list_gzbd.js @@ -0,0 +1,35 @@ +const cheerio = require('cheerio'); +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const url = `http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml`; + + const res = await got.get(url); + const $ = cheerio.load(res.data); + const list = $('.zxxx_list a').get(); + const out = await Promise.all( + list.map(async (item) => { + const $ = cheerio.load(item); + const title = $(item).text(); + const address = $(item).attr('href'); + const cache = await ctx.cache.get(address); + if (cache) { + return Promise.resolve(JSON.parse(cache)); + } + const host = `http://www.nhc.gov.cn/`; + const single = { + title, + description: title, + link: host + address, + guid: host + address, + }; + ctx.cache.set(address, JSON.stringify(single)); + return Promise.resolve(single); + }) + ); + ctx.state.data = { + title: '疫情通报', + link: url, + item: out, + }; +};