Skip to content

Commit 3089ec8

Browse files
author
chengeng
committed
添加自动加好友与自动加群可配置项,重启后无需再次扫描二维码
1 parent 9c1cae0 commit 3089ec8

File tree

5 files changed

+39
-22
lines changed

5 files changed

+39
-22
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@
1313
*node_modules
1414
*/log
1515
.env
16+
*.memory-card.json
17+
package-lock.json

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -295,3 +295,9 @@ github:[https://github.com/gengchen528/wechatBot](https://github.com/gengchen528
295295
另外我的公众号已经接入微软小冰,关注后发语音会有小姐姐的声音陪你聊天,也可以和她文字聊天,有兴趣可以试试看,单身的欢迎来撩
296296

297297
![](https://user-gold-cdn.xitu.io/2019/3/1/169381d277ba6401?w=258&h=258&f=png&s=42373)
298+
299+
## 更新日志
300+
301+
2019-03-02:
302+
* 添加自动加好友,自动拉群可配置项
303+
* 重启后可维持登录状态

config/index.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
// 配置文件
22
module.exports ={
3+
AUTOADDFRIEND:false,//自动加好友功能 默认关闭
4+
AUTOADDROOM:false,//自动拉群功能 默认关闭
35
ONE:'http://wufazhuce.com/',////ONE的web版网站
46
MOJI_HOST:'https://tianqi.moji.com/weather/china/', //中国墨迹天气url
57
CITY:'shanghai',//收信者所在城市
68
LOCATION:'pudong-new-district',//收信者所在区 (可以访问墨迹天气网站后,查询区的英文拼写)
79
MEMORIAL_DAY:'2015/04/18', //你和收信者的纪念日
8-
NAME:'Leo_chen',//备注姓名
9-
NICKNAME:'Leo_chen', //昵称
10+
NAME:'A兔子',//备注姓名
11+
NICKNAME:'嗯哼', //昵称
1012
SENDDATE:'30 15 8 * * *',//定时发送时间 每天8点15分30秒发送,规则见 /schedule/index.js
1113
ROOMNAME:'/^微信每日说/i', //群名(请只修改中文,不要删除符号,这是正则)
1214
ADDFRIENDWORD:'/微信每日说/i',//自动加好友触发的关键词(请只修改中文,不要删除符号,这是正则)
1315
ADDROOMWORD:'/加群/',//自动发送群图片触发关键词(请只修改中文,不要删除符号,这是正则)
1416
ROOMCODEURL:'http://image.bloggeng.com/qun.png',//群二维码url链接(与本地群二维码路径选填一个)
1517
ROOMLOCALPATH:'./static/qun.png',//本地群二维码图片路径(与群url选填一个)
16-
1718
}

index.js

+26-17
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,23 @@ async function onMessage (msg) {
4747
console.log(`群名: ${topic} 发消息人: ${contact.name()} 内容: ${content}`)
4848
}else { // 如果非群消息
4949
console.log(`发消息人: ${contact.name()} 消息内容: ${content}`)
50-
let addRoomReg = eval(config.ADDROOMWORD)
51-
let roomReg = eval(config.ROOMNAME)
52-
if(addRoomReg.test(content)&&!room){
53-
let keyRoom = await this.Room.find({topic: roomReg})
54-
if(keyRoom){
55-
try{
56-
await contact.say(roomCodeLocal||roomCodeUrl)
57-
await keyRoom.say('微信每日说:欢迎新朋友', contact)
58-
}catch (e) {
59-
console.error(e)
50+
if(config.AUTOADDROOM){ //判断是否开启自动加群功能
51+
let addRoomReg = eval(config.ADDROOMWORD)
52+
let roomReg = eval(config.ROOMNAME)
53+
if(addRoomReg.test(content)&&!room){
54+
let keyRoom = await this.Room.find({topic: roomReg})
55+
if(keyRoom){
56+
try{
57+
await contact.say(roomCodeLocal||roomCodeUrl)
58+
await keyRoom.say('微信每日说:欢迎新朋友', contact)
59+
}catch (e) {
60+
console.error(e)
61+
}
6062
}
63+
}else {
64+
await contact.say('你好,不要轻易调戏我,我只会发群二维码,不会聊天的!')
65+
await contact.say('请回复暗号:加群 获取群二维码图片')
6166
}
62-
}else {
63-
await contact.say('你好,不要轻易调戏我,我只会发群二维码,不会聊天的!')
64-
await contact.say('请回复暗号:加群 获取群二维码图片')
6567
}
6668
}
6769
}
@@ -82,7 +84,7 @@ async function onFriendShip(friendship) {
8284
*/
8385
case Friendship.Type.Receive:
8486
let addFriendReg = eval(config.ADDFRIENDWORD)
85-
if (addFriendReg.test(friendship.hello())) {
87+
if (addFriendReg.test(friendship.hello())&&config.AUTOADDFRIEND) { //判断是否开启自动加好友功能
8688
logMsg = '自动添加好友,因为验证信息中带关键字‘每日说’'
8789
await friendship.accept()
8890
} else {
@@ -105,17 +107,24 @@ async function onFriendShip(friendship) {
105107
}
106108
// 自动发消息功能
107109
async function main() {
110+
let logMsg
108111
let contact = await bot.Contact.find({name:config.NICKNAME}) || await bot.Contact.find({alias:config.NAME}) // 获取你要发送的联系人
109112
let one = await superagent.getOne() //获取每日一句
110113
let weather = await superagent.getWeather() //获取天气信息
111114
let today = await untils.formatDate(new Date())//获取今天的日期
112115
let memorialDay = untils.getDay(config.MEMORIAL_DAY)//获取纪念日天数
113116
let str = today + '<br>' + '今天是我们在一起的第' + memorialDay + '天'
114-
+ '<br><br>今日天气早知道<br><br>' + weather.weatherTips +'<br><br>' +weather.todayWeather+ '每日一句:<br><br>'+one+'<br><br>'+'------来自最爱你的我'
115-
await contact.say(str)//发送消息
117+
+ '<br><br>今日天气早知道<br>' + weather.weatherTips +'<br>' +weather.todayWeather+ '<br>每日一句:<br>'+one+'<br><br>'+'————————来自最爱你的我'
118+
try{
119+
logMsg = str
120+
await contact.say(str) // 发送消息
121+
}catch (e) {
122+
logMsg = e.message
123+
}
124+
console.log(logMsg)
116125
}
117126

118-
const bot = new Wechaty()
127+
const bot = new Wechaty({name:'WechatEveryDay'})
119128

120129
bot.on('scan', onScan)
121130
bot.on('login', onLogin)

schedule/index.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const schedule = require('node-schedule')
22
// date 参数
33

4+
//其他规则见 https://www.npmjs.com/package/node-schedule
45
// 规则参数讲解 *代表通配符
56
//
67
// * * * * * *
@@ -21,8 +22,6 @@ const schedule = require('node-schedule')
2122
//
2223
// 每月的1日1点1分30秒触发 :'30 1 1 1 * *'
2324
//
24-
// 2016年的1月1日1点1分30秒触发 :'30 1 1 1 2016 *'
25-
//
2625
// 每周1的1点1分30秒触发 :'30 1 1 * * 1'
2726

2827
function setSchedule(date,callback) {

0 commit comments

Comments
 (0)