@@ -60,6 +60,7 @@ index.js
60
60
const config = require('./config/index')
61
61
const untils = require('./untils/index')
62
62
const superagent = require('./superagent/index')
63
+ const {FileBox} = require('file-box') //文件读取模块
63
64
// 二维码生成
64
65
function onScan (qrcode, status) {
65
66
require('qrcode-terminal').generate(qrcode) // 在console端显示二维码
@@ -84,29 +85,36 @@ index.js
84
85
function onLogout(user) {
85
86
console.log(` ${user} 登出 ` )
86
87
}
87
- // 自动加群功能
88
+ // 监听对话 根据关键词自动加群
88
89
async function onMessage (msg) {
89
90
const contact = msg.from() // 发消息人
90
91
const content = msg.text() //消息内容
91
92
const room = msg.room() //是否是群消息
92
- if(room){
93
- console.log(` 群名: ${room.topic()} 发消息人: ${contact.name()} 内容: ${content} ` )
94
- }else {
95
- console.log(` 发消息人: ${contact.name()} 消息内容: ${content} ` )
96
- }
93
+ const roomCodeUrl = FileBox.fromUrl(config.ROOMCODEURL) //来自url的文件
94
+ const roomCodeLocal = FileBox.fromFile(config.ROOMLOCALPATH) //添加本地文件
97
95
if (msg.self()) {
98
96
return
99
97
}
100
- if(/微信每日说|每日说|微信机器人/.test(content)){
101
- let keyRoom = await this.Room.find({topic: /^微信每日说/i})
102
- if(keyRoom){
103
- try{
104
- await keyRoom.add(contact)
105
- await keyRoom.say('微信每日说:欢迎新朋友 ', contact)
106
- }catch (e) {
107
- console.error(e)
98
+ if(room){ // 如果是群消息
99
+ const topic = await room.topic()
100
+ console.log(` 群名: ${topic} 发消息人: ${contact.name()} 内容: ${content} ` )
101
+ }else { // 如果非群消息
102
+ console.log(` 发消息人: ${contact.name()} 消息内容: ${content} ` )
103
+ let addRoomReg = eval(config.ADDROOMWORD)
104
+ let roomReg = eval(config.ROOMNAME)
105
+ if(addRoomReg.test(content)&&!room){
106
+ let keyRoom = await this.Room.find({topic: roomReg})
107
+ if(keyRoom){
108
+ try{
109
+ await contact.say(roomCodeLocal||roomCodeUrl)
110
+ await keyRoom.say('微信每日说:欢迎新朋友', contact)
111
+ }catch (e) {
112
+ console.error(e)
113
+ }
108
114
}
109
-
115
+ }else {
116
+ await contact.say('你好,不要轻易调戏我,我只会发群二维码,不会聊天的!')
117
+ await contact.say('请回复暗号:加群 获取群二维码图片')
110
118
}
111
119
}
112
120
}
@@ -126,14 +134,14 @@ index.js
126
134
* and accept this request by ` request.accept() `
127
135
* /
128
136
case Friendship.Type.Receive:
129
- if (/微信每日说|微信机器人|微信|每日说/i.test(friendship.hello())) {
137
+ let addFriendReg = eval(config.ADDFRIENDWORD)
138
+ if (addFriendReg.test(friendship.hello())) {
130
139
logMsg = '自动添加好友,因为验证信息中带关键字‘每日说’'
131
140
await friendship.accept()
132
141
} else {
133
142
logMsg = '没有通过验证 ' + friendship.hello()
134
143
}
135
144
break
136
-
137
145
/**
138
146
*
139
147
* 2. Friend Ship Confirmed
@@ -173,6 +181,7 @@ index.js
173
181
.catch(e => console.error(e))
174
182
175
183
184
+
176
185
superagent/index.js
177
186
178
187
const superagent = require('../config/superagent')
@@ -237,18 +246,23 @@ yarn
237
246
238
247
wechatBot/config/index.js
239
248
240
- // 配置文件
241
249
// 配置文件
242
250
module.exports ={
243
- ONE:'http://wufazhuce.com/',//ONE的web版网站
244
- MOJI_HOST:'https://tianqi.moji.com/weather/china/', //中国墨迹天气url
245
- CITY:'shanghai',//收信者所在城市
246
- LOCATION:'pudong-new-district',//收信者所在区
247
- MEMORIAL_DAY:'2015/04/18', //你和收信者的纪念日
248
- NAME:'Leo_chen',//微信备注姓名
249
- NICKNAME:'Leo_chen', //微信昵称
250
- SENDDATE:'30 * * * * *',//定时发送时间,规则见 /schedule/index.js
251
+ ONE:'http://wufazhuce.com/',////ONE的web版网站
252
+ MOJI_HOST:'https://tianqi.moji.com/weather/china/', //中国墨迹天气url
253
+ CITY:'shanghai',//收信者所在城市
254
+ LOCATION:'pudong-new-district',//收信者所在区 (可以访问墨迹天气网站后,查询区的英文拼写)
255
+ MEMORIAL_DAY:'2015/04/18', //你和收信者的纪念日
256
+ NAME:'Leo_chen',//备注姓名
257
+ NICKNAME:'Leo_chen', //昵称
258
+ SENDDATE:'30 15 8 * * *',//定时发送时间 每天8点15分30秒发送,规则见 /schedule/index.js
259
+ ROOMNAME:'/^微信每日说/i', //群名(请只修改中文,不要删除符号,这是正则)
260
+ ADDFRIENDWORD:'/微信每日说/i',//自动加好友触发的关键词(请只修改中文,不要删除符号,这是正则)
261
+ ADDROOMWORD:'/加群/',//自动发送群图片触发关键词(请只修改中文,不要删除符号,这是正则)
262
+ ROOMCODEURL:'http://image.bloggeng.com/qun.png',//群二维码url链接(与本地群二维码路径选填一个)
263
+ ROOMLOCALPATH:'./static/qun.png',//本地群二维码图片路径(与群url选填一个)
251
264
}
265
+
252
266
开始运行
253
267
254
268
npm run start
0 commit comments