Files
周财发andZhou Caifa 13883cafa9 fix(route): fix dxy; feat(route): add sh-wsjkw (#8922)
* fix(route)(dxy)

* add(route):上海卫健委疫情通报

* U 使用https获取上海疫情通报数据
U 移动上海疫情通报至gov

* U 删除多余router.js文件
U 移动上海疫情通报radar信息到上级radar中
U 修复doc中疫情通报地址错误的问题

* U 调整备注

* A 新增 pubDate

* U 和并radar中的上海市人民政府项目,合并doc中上海市人民政府项目

* U 时间标准化

* U 调整发布时间格式化

Co-authored-by: Zhou Caifa <caifa.zhou@naiveblue.com>

fix #9010
2022-02-07 07:12:45 +08:00

87 lines
2.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const got = require('@/utils/got');
const { JSDOM } = require('jsdom');
module.exports = async (ctx) => {
const PROVINCE = ctx.params.province || '国内';
let CITY = ctx.params.city || '';
const link = 'https://ncov.dxy.cn/ncovh5/view/pneumonia';
const response = await got({
method: 'get',
url: link,
});
const dom = new JSDOM(response.data, {
runScripts: 'dangerously',
});
const item = {
description: '',
};
let AREA, DATA, META;
const getProvince = () => {
AREA = PROVINCE;
DATA = dom.window.getAreaStat.find((item) => item.provinceShortName === PROVINCE);
if (!DATA) {
// 省份名不存在
return getCountry();
}
if (CITY) {
return getCity();
}
DATA.cities.forEach((city) => {
item.description += `${city.cityName}累计确诊 ${city.confirmedCount} 例,累计死亡 ${city.deadCount} 例,累计治愈 ${city.curedCount} 例。<br><br>`;
});
item.title = `${AREA}累计确诊 ${DATA.confirmedCount} 例,现存确诊 ${DATA.currentConfirmedCount} 例,累计死亡 ${DATA.deadCount} 例,累计治愈 ${DATA.curedCount} 例`;
};
const getCity = () => {
AREA = CITY;
DATA = DATA.cities.find((c) => c.cityName.includes(CITY));
if (DATA) {
item.title = `${DATA.cityName}累计确诊 ${DATA.confirmedCount} 例,现存确诊 ${DATA.currentConfirmedCount} 例,累计死亡 ${DATA.deadCount} 例,累计治愈 ${DATA.curedCount} 例`;
} else {
// 城市不存在
CITY = '';
return getProvince();
}
};
const getCountry = () => {
AREA = '国内';
META = dom.window.getStatisticsService;
item.title = `国内累计确诊 ${META.confirmedCount} 例${META.confirmedIncr ? `(较昨日 ${(META.confirmedIncr > 0 ? '+' : '') + META.confirmedIncr})` : ''},现存确诊 ${META.currentConfirmedCount} 例${
META.currentConfirmedIncr ? `(较昨日 ${(META.currentConfirmedIncr > 0 ? '+' : '') + META.currentConfirmedIncr})` : ''
},累计死亡 ${META.deadCount} 例${META.deadIncr ? `(较昨日 ${(META.deadIncr > 0 ? '+' : '') + META.deadIncr})` : ''},累计治愈 ${META.curedCount} 例${
META.curedIncr ? `(较昨日 ${(META.curedIncr > 0 ? '+' : '') + META.curedIncr})` : ''
}`;
};
if (PROVINCE !== '国内' && PROVINCE !== '全国') {
getProvince();
} else {
getCountry();
}
if (META && META.modifyTime) {
item.pubDate = new Date(META.modifyTime).toUTCString();
}
item.link = link;
item.guid = item.title;
ctx.state.data = {
title: `${AREA}新冠病毒疫情数据统计 - 丁香园`,
link,
item: [item],
};
};