t-comm
Version:
专业、稳定、纯粹的工具库
91 lines (88 loc) • 2.57 kB
JavaScript
import { readJsonLog, saveJsonToLog } from '../node/fs-util.mjs';
import 'fs';
import 'path';
import '../fs/fs.mjs';
import '../time/time.mjs';
/* 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(readJsonLog(FILE_NAME));
} catch (e) {
console.log('[compareData] err: ', e);
}
var isSame = JSON.stringify(preData) === JSON.stringify(usefulData);
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
};
}
export { compareData, composeRobotContent, parseWeatherData };