UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

91 lines (88 loc) 2.57 kB
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 };