Skip to content

Commit

Permalink
add plan
Browse files Browse the repository at this point in the history
  • Loading branch information
BingKui committed Sep 7, 2018
1 parent 4c71e1b commit 2e4886d
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 3 deletions.
2 changes: 2 additions & 0 deletions config/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
module.exports = {
// 限制群名,只在特定群内回复
groupList: ["一个人的群聊", "年轻人"],
// 机器人模式消息提示信息
robotTipMessage: '🤖:机器人模式开启,机器人接管聊天',
// 机器人回复前缀
robotSuffix: '🤖',
// 是否根据星期修改头像,默认关闭
Expand Down
13 changes: 13 additions & 0 deletions config/plan.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module.exports = {
plans: [{
startTime: {
hour: 19,
minute: 30,
},
endTime: {
hour: 21,
minute: 0,
},
message: '跑步中,有事电话联系~~',
},],
};
56 changes: 56 additions & 0 deletions feature/plan.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// 计划任务,在计划任务时间回复特定消息

const { messageText, messageInfo } = require('../tools/messageTools.js');
const { robotSuffix, robotTipMessage } = require('../config/config.js');
const { plans } = require('../config/plan.js');

/**
* 处理消息,返回是否在计划内和计划内的回复消息
* @param {Date} date
*/
const planState = (date) => {
let flag = false;
let result = '';
for (let i = 0; i < plans.length; i++) {
const { startTime, endTime, message } = plans[i];
if (dealTime(date, startTime, endTime)) {
result = message;
flag = true;
break;
}
}
return {
flag,
result,
};
}

const dealTime = (date, start, end) => {
const time = new Date(date);
const hour = time.getHours();
const minute = time.getMinutes();
const flag_one = hour >= start.hour && minute >= start.minute;
const flag_two = hour <= end.hour && minute <= end.minute;
if (flag_one && flag_two) {
return true;
}
return false;
}

/**
* 计划任务
* @param {Message} message 消息对象
* @return {Boolean} 返回发送是否成功
*/
const planMessage = async (message) => {
const { date } = await messageInfo(message);
const { flag, result } = planState(content, date);
if (flag) {
await message.say(robotTipMessage);
await message.say(`${robotSuffix}${result}`);
return true;
}
return false;
}

module.exports = planMessage;
2 changes: 1 addition & 1 deletion feature/poem.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const { messageText } = require('../tools/messageTools.js');
* @param {String} text 消息内容
*/
const poemState = (text) => {
const reg = new RegExp(`/首诗/g`);
const reg = new RegExp(`//g`);
return reg.test(text);
}

Expand Down
4 changes: 3 additions & 1 deletion feature/single.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const jokeMessage = require('./joke.js');
const { weatherMessage } = require('./weather.js');
const dialogMessage = require('./dialog.js')
const { groupAddAction } = require('./group.js');
const planMessage = require('./plan.js');

/**
* @description 个人类消息处理
Expand All @@ -20,7 +21,8 @@ const singleMessage = async (message, info) => {
const isJoke = await jokeMessage(message);
const isWeather = await weatherMessage(message);
const isJoinGroup = await groupAddAction(message);
if (!isAssets && !isJoke && !isWeather && !isJoinGroup) {
const isPlan = await planMessage(message);
if (!isAssets && !isJoke && !isWeather && !isJoinGroup && !isPlan) {
// 不是特殊类型消息,转入对话模块
await dialogMessage(message);
}
Expand Down
1 change: 1 addition & 0 deletions plan/v0.3.*.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

- [ ] 知识库功能重构,支持多关键字匹配,回复答案(主要针对客服类群聊)- 单独项目实现相应功能、高级版功能
- [x] 支持发送远程文件,生成远程文件 FileBox
- [x] 支持计划任务,特定时间段回复特定的消息
- [ ] 每日份精品歌单推荐,网易云或者QQ音乐
- [ ] 最火动漫推荐
- [ ] 小程序推荐,推送小程序码
Expand Down
6 changes: 5 additions & 1 deletion updatelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,8 @@
- 定版 v0.2.6 拉取稳定分支,可直接使用的分支
- 开始 v0.3.* 版本功能开发
- 增加远程文件发送功能
- 功能计划,按照版本细分文件,方便查阅
- 功能计划,按照版本细分文件,方便查阅

## 2018-09-03

- 增加计划任务

0 comments on commit 2e4886d

Please sign in to comment.