diff --git a/docs/other.md b/docs/other.md
index fa49681ca..db7b4e2bd 100644
--- a/docs/other.md
+++ b/docs/other.md
@@ -394,10 +394,18 @@ type 为 all 时,category 参数不支持 cost 和 free
-### 丁香园 - 全国新型肺炎疫情实时动态
+### 丁香园 - 全国新型肺炎疫情实时播报
+### 丁香园 - 全国新型肺炎疫情数据统计(全国)
+
+
+
+### 丁香园 - 全国新型肺炎疫情数据统计(各省份)
+
+
+
### South China Morning Post - China coronavirus outbreak
diff --git a/lib/router.js b/lib/router.js
index 18739ab19..ecbd39c3a 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -2155,6 +2155,8 @@ router.get('/weixin/miniprogram/release', require('./routes/weixinMiniprogram/re
// 武汉肺炎疫情动态
router.get('/coronavirus/caixin', require('./routes/coronavirus/caixin'));
+router.get('/coronavirus/dxy/data/:province', require('./routes/coronavirus/dxy-data-province'));
+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'));
diff --git a/lib/routes/coronavirus/dxy-data-country.js b/lib/routes/coronavirus/dxy-data-country.js
new file mode 100644
index 000000000..493f8224c
--- /dev/null
+++ b/lib/routes/coronavirus/dxy-data-country.js
@@ -0,0 +1,27 @@
+const got = require('@/utils/got');
+const jsdom = require('jsdom');
+const { JSDOM } = jsdom;
+
+module.exports = async (ctx) => {
+ const response = await got({
+ method: 'get',
+ url: 'https://3g.dxy.cn/newh5/view/pneumonia',
+ });
+
+ const dom = new JSDOM(response.data, {
+ runScripts: 'dangerously',
+ });
+
+ const data = dom.window.getStatisticsService;
+
+ ctx.state.data = {
+ title: '全国新型肺炎疫情数据统计(全国)-丁香园',
+ link: 'https://3g.dxy.cn/newh5/view/pneumonia',
+ item: [
+ {
+ title: data.countRemark,
+ pubDate: new Date(data.modifyTime).toUTCString(),
+ },
+ ],
+ };
+};
diff --git a/lib/routes/coronavirus/dxy-data-province.js b/lib/routes/coronavirus/dxy-data-province.js
new file mode 100644
index 000000000..b59e07e86
--- /dev/null
+++ b/lib/routes/coronavirus/dxy-data-province.js
@@ -0,0 +1,37 @@
+const got = require('@/utils/got');
+const jsdom = require('jsdom');
+const { JSDOM } = jsdom;
+
+module.exports = async (ctx) => {
+ const province = ctx.params.province;
+ const response = await got({
+ method: 'get',
+ url: 'https://3g.dxy.cn/newh5/view/pneumonia',
+ });
+
+ const dom = new JSDOM(response.data, {
+ runScripts: 'dangerously',
+ });
+
+ const data = dom.window.getAreaStat.find((item) => item.provinceShortName === province);
+ let descriptionCity = '';
+ if (data.cities) {
+ for (let i = 0; i < data.cities.length; i++) {
+ descriptionCity += `
${data.cities[i].cityName}:确诊 ${data.cities[i].confirmedCount} 例,死亡 ${data.cities[i].deadCount} 例,治愈 ${data.cities[i].curedCount} 例`;
+ }
+ }
+
+ const title = `确诊 ${data.confirmedCount} 例,死亡 ${data.deadCount} 例,治愈 ${data.curedCount} 例`;
+
+ ctx.state.data = {
+ title: `全国新型肺炎疫情数据统计(${province})-丁香园`,
+ link: 'https://3g.dxy.cn/newh5/view/pneumonia',
+ item: data && [
+ {
+ title: title,
+ description: `${title}${descriptionCity}`,
+ pubDate: new Date(dom.window.getStatisticsService.modifyTime).toUTCString(),
+ },
+ ],
+ };
+};
diff --git a/lib/routes/coronavirus/dxy.js b/lib/routes/coronavirus/dxy.js
index eb3631108..af6f81bcf 100644
--- a/lib/routes/coronavirus/dxy.js
+++ b/lib/routes/coronavirus/dxy.js
@@ -15,7 +15,7 @@ module.exports = async (ctx) => {
const data = dom.window.getTimelineService;
ctx.state.data = {
- title: '全国新型肺炎疫情实时动态-丁香园',
+ title: '全国新型肺炎疫情实时播报-丁香园',
link: 'https://3g.dxy.cn/newh5/view/pneumonia',
item: data.map((item) => ({
title: item.title,