const schedule = require('node-schedule') // date 参数 // 其他规则见 https://www.npmjs.com/package/node-schedule // 规则参数讲解, 规则类似 Linux 下的 crontab ('*'代表通配符) // // * * * * * * // ┬ ┬ ┬ ┬ ┬ ┬ // │ │ │ │ │ | // │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun) // │ │ │ │ └───── month (1 - 12) // │ │ │ └────────── day of month (1 - 31) // │ │ └─────────────── hour (0 - 23) // │ └──────────────────── minute (0 - 59) // └───────────────────────── second (0 - 59, OPTIONAL) // 1. 按固定时间触发 // // 每分钟的第30秒触发: '30 * * * * *' // // 每小时的1分30秒触发 :'30 1 * * * *' // // 每天的凌晨1点1分30秒触发 :'30 1 1 * * *' // // 每月的1日1点1分30秒触发 :'30 1 1 1 * *' // // 每周1的1点1分30秒触发 :'30 1 1 * * 1' // 2. 按时间差触发 (日/月/周同理) // // 每30分钟触发一次: '0 */30 * * * *' // // 每6小时触发一次: '0 0 */6 * * *' function setSchedule(date,callback) { schedule.scheduleJob({tz: 'Asia/ '}, date, callback) } module.exports = { setSchedule }
// 创建微信每日说定时任务 async function initDay() { console.log(`已经设定每日说任务`); schedule.setSchedule(config.SENDDATE, async () => { console.log('你的贴心小助理开始工作啦!'); let logMsg; let contact = (await bot.Contact.find({ name: config.NICKNAME })) || (await bot.Contact.find({ alias: config.NAME })); // 获取你要发送的联系人 let one = await superagent.getOne(); //获取每日一句 let weather = await superagent.getTXweather(); //获取天气信息 let today = await untils.formatDate(new Date()); //获取今天的日期 let memorialDay = untils.getDay(config.MEMORIAL_DAY); //获取纪念日天数 let sweetWord = await superagent.getSweetWord(); // 你可以修改下面的 str 来自定义每日说的内容和格式 // PS: 如果需要插入 emoji(表情), 可访问 "https://getemoji.com/" 复制插入 let str = `${today}\n我们在一起的第${memorialDay}天\n\n元气满满的一天开始啦,要开心噢^_^\n\n今日天气\n${weather.weatherTips}\n${weather.todayWeather}\n每日一句:\n${one}\n\n每日土味情话:\n${sweetWord}\n\n————————最爱你的我`; try { logMsg = str; await delay(2000); await contact.say(str); // 发送消息 } catch (e) { logMsg = e.message; } console.log(logMsg); }); }