t-comm
Version:
专业、稳定、纯粹的工具库
97 lines (92 loc) • 2.73 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var node_fsUtil = require('../node/fs-util.js');
require('fs');
require('path');
require('../fs/fs.js');
require('../time/time.js');
/* eslint-disable @typescript-eslint/no-require-imports */
/**
* 组装发送给机器人的消息
* @private
* @param {Array<object>} usefulData 处理后的数据
* @returns {string} 发送给机器人的markdown消息
*/
function composeRobotContent(usefulData) {
if (usefulData === void 0) {
usefulData = [];
}
if (!usefulData.length) {
return '当前深圳预警已全部解除';
}
var content = ['>【深圳当前生效的预警】'];
var WEB_LINK = 'http://weather.sz.gov.cn/qixiangfuwu/yujingfuwu/tufashijianyujing/';
var tempList = usefulData.map(function (item, index) {
var date = item.date,
alarmArea = item.alarmArea,
alarmType = item.alarmType,
alarmColor = item.alarmColor;
var list = ["".concat(index + 1, ". ").concat(alarmType).concat(alarmColor || '', "\u9884\u8B66\xB7").concat(alarmArea, "\uFF0C\u53D1\u5E03\u65F6\u95F4\uFF1A").concat(date)
// `${str}`,
];
return list.join('\n');
});
content.push(tempList.join('\n'));
content.push("[\u6DF1\u5733\u5E02\u6C14\u8C61\u5C40](".concat(WEB_LINK, ")"));
return content.join('\n');
}
/**
* 对比数据
* @private
* @param {Array<object>} usefulData 处理后的数据
* @returns {boolean} 是否和以前数据一样
*/
function compareData(usefulData) {
if (usefulData === void 0) {
usefulData = [];
}
var FILE_NAME = 'alarm.json';
var preData = {};
try {
preData = JSON.parse(node_fsUtil.readJsonLog(FILE_NAME));
} catch (e) {
console.log('[compareData] err: ', e);
}
var isSame = JSON.stringify(preData) === JSON.stringify(usefulData);
node_fsUtil.saveJsonToLog(usefulData, FILE_NAME);
return isSame;
}
/**
* 处理weather数据
* @private
* @param {Array<object>} subAlarm 天气数据
* @returns 处理后的数据
*/
function parseWeatherData(subAlarm) {
if (subAlarm === void 0) {
subAlarm = [];
}
var usefulData = subAlarm.map(function (item) {
var date = item.date,
alarmArea = item.alarmArea,
alarmType = item.alarmType,
alarmColor = item.alarmColor,
str = item.str;
return {
date: date,
alarmArea: alarmArea,
alarmType: alarmType,
alarmColor: alarmColor,
str: str
};
});
var isSame = compareData(usefulData);
var content = composeRobotContent(usefulData);
return {
content: content,
isSame: isSame
};
}
exports.compareData = compareData;
exports.composeRobotContent = composeRobotContent;
exports.parseWeatherData = parseWeatherData;