-
Notifications
You must be signed in to change notification settings - Fork 19
/
Bncr2.0_微信好友申请、拉群.js
161 lines (141 loc) · 5.19 KB
/
Bncr2.0_微信好友申请、拉群.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/**作者
* @author 薛定谔的大灰机
* @name 同意好友申请
* @origin 大灰机
* @version 2.0.1
* @rule 收到好友添加请求
* @description 下方加群关键词可自定义
* @rule ^(加|进)(.*)群$
* @platform wxXyo
* @priority 99999
* @admin false
* @disable false
*/
/** 更新日志:
2.0.1:
1.如果将“关键词和群ID”填写为`@1234567890`,发送“加群”则会拉对应群(仅支持设置1个不带关键词)
2.没有按照1描述中的关键词留空,则发送“加群”则会将已储存的关键词列表发送出来:
2.0.0:
适配Bncr2.0,支持web页、修改无界配置命令修改配置
*/
/** 使用说明:
修改适配器【wxXyo.js】
1:原文件35行下方"添加"以下内容
wxXyo.Bridge = {};
2:原58行注释
3:原文件83行最后位置"添加"以下内容
else if (body.Event === 'EventFrieneVerify') { // 好友申请
wxXyo.Bridge.body = body;
msgInfo = {
userId: 'EventFrieneVerify',
userName: '好友申请通知',
groupId: '0',
groupName: '',
msg: '收到好友添加请求',
msgId: '',
type: "friend",
};
}
4:原文件120-122行"替换"为以下内容
case 'friend':
body = {
type: replyInfo.fromType,
v1: replyInfo.json_msg.v1,
v2: replyInfo.json_msg.v2,
api: 'AgreeFriendVerify'
};
break;
default:
body = replyInfo
break;
5:重启无界
*/
const BCS = BncrCreateSchema
const jsonSchema = BCS.object({
Agree: BCS.boolean().setTitle('同意好友申请开关').setDescription('开启则自动同意同意').setDefault(false),
Mode: BCS.string().setTitle('邀请进群模式',).setDescription('请选择模式').setEnum(['InviteInGroup','InviteInGroupByLink']).setEnumNames(['直接拉群','发送卡片']).setDefault('InviteInGroupByLink'),
Agree_keyword: BCS.string().setTitle('关键词同意').setDescription('空则全部同意').setDefault(''),
AutoReply_keyword: BCS.string().setTitle('自动回复词').setDescription('空则不回复').setDefault(''),
GroupId_keyword: BCS.array(BCS.string()).setTitle('关键词和群ID').setDescription('关键词和群ID用@隔开').setDefault(['交流@25214210457']),
});
const ConfigDB = new BncrPluginConfig(jsonSchema);
module.exports = async s => {
await ConfigDB.get();
const CDB = ConfigDB.userConfig
if (!Object.keys(CDB).length) {
return await s.reply('请先发送"修改无界配置"来完成插件首次配置');
}
if (s.getMsg() !== '收到好友添加请求') {
Group()
} else {
Friend()
}
async function Group() {
if (CDB.GroupId_keyword.length < 1) {
return s.reply('未设置群ID')
}
let group_list = '已添加的群:\n '
for (let i = 0; i < CDB.GroupId_keyword.length; i++) {
let Keyword = CDB.GroupId_keyword[i].split("@")[0]
let GroupId = CDB.GroupId_keyword[i].split("@")[1]
if (Keyword == s.param(2)) {
await s.reply({
type: 'Group',
msg: '邀请入群',
api: CDB.Mode,
group_wxid: GroupId + '@chatroom',
friend_wxid: s.getUserId()
})
return
} else if(!s.param(2)) {
group_list += `\n${i + 1}.${Keyword}`
continue
} else if ((CDB.GroupId_keyword.length - 1) == i) {
s.reply("没有这个群哦[汗]")
}
}
if (group_list) {
s.reply(`${group_list}\n \n请发【加**群】`)
}
}
async function Friend() {
const body = s.Bridge.body.content
if (body && s.getUserId() == 'EventFrieneVerify') {
console.log(`收到【${body.from_name}】好友申请`)
await main()
} else {
console.log('非真实好友申请,忽略')
}
async function main() {
if (CDB.Agree) {
await AgreeFriendVerify()
if (!!CDB.AutoReply_keyword) {
await AutoReply()
}
}
}
async function AgreeFriendVerify() {
if (CDB.Agree_keyword) {
if (CDB.Agree_keyword !== body.json_msg.content) {
return console.log('暗号错误')
}
}
await s.reply({
type: 'friend',
msg: '同意好友申请',
fromType: body.type,
json_msg: body.json_msg
})
console.log('已同意好友申请')
}
async function AutoReply() {
if (CDB.AutoReply_keyword) {
await s.reply({
type: 'text',
userId: body.from_wxid,
msg: CDB.AutoReply_keyword,
})
}
}
}
}