UNPKG

t-comm

Version:

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

106 lines (103 loc) 3.36 kB
import { readJsonLog, saveJsonToLog } from '../fs/fs-util.mjs'; import '@babel/runtime/helpers/toConsumableArray'; import '../fs/fs.mjs'; import '../nodejs/crypto.mjs'; import '../nodejs/fs.mjs'; import '../nodejs/os.mjs'; import '../nodejs/path.mjs'; import '../time/time.mjs'; /** * 组装发送给机器人的消息 * @private * @param {Array<object>} usefulData 处理后的数据 * @returns {string} 发送给机器人的markdown消息 * @example * ```ts * composeRobotContent([]); * // '当前深圳预警已全部解除' * * composeRobotContent([ * { date: '2023-09-01 12:00', alarmArea: '南山区', alarmType: '暴雨', alarmColor: '黄色' }, * ]); * // '>【深圳当前生效的预警】\n1. 暴雨黄色预警·南山区,发布时间:2023-09-01 12:00\n[深圳市气象局](http://...)' * ``` */ function composeRobotContent() { var usefulData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 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} 是否和以前数据一样 * @example * ```ts * compareData([{ alarmType: '暴雨' }]); * // true 或 false(取决于上次保存的 alarm.json) * ``` */ function compareData() { var usefulData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 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 处理后的数据 * @example * ```ts * const { content, isSame } = parseWeatherData(subAlarm); * if (!isSame) sendRobot(content); * ``` */ function parseWeatherData() { var subAlarm = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 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 };