第二次提交
This commit is contained in:
148
apps/handle.js
Normal file
148
apps/handle.js
Normal file
@@ -0,0 +1,148 @@
|
||||
import plugin from '../../../lib/plugins/plugin.js'
|
||||
|
||||
|
||||
export class anotice extends plugin {
|
||||
constructor() {
|
||||
super({
|
||||
name: '处理',
|
||||
dsc: '申请处理',
|
||||
event: 'message',
|
||||
rule: [
|
||||
{
|
||||
/** 命令正则匹配 */
|
||||
reg: '^#?同意申请.*$',
|
||||
/** 执行方法 */
|
||||
fnc: 'agree'
|
||||
},
|
||||
{
|
||||
/** 命令正则匹配 */
|
||||
reg: '^#?(同意|拒绝)$',
|
||||
/** 执行方法 */
|
||||
fnc: 'agrees'
|
||||
},
|
||||
{
|
||||
/** 命令正则匹配 */
|
||||
reg: '^#?回复.*$',
|
||||
/** 执行方法 */
|
||||
fnc: 'Replys'
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
/** 同意好友申请 */
|
||||
async agree(e) {
|
||||
if (!e.isMaster) return
|
||||
|
||||
let qq = e.message[0].text.replace(/#|同意申请/g, '').trim()
|
||||
if (e.message[1]) {
|
||||
qq = e.message[1].qq
|
||||
} else {
|
||||
qq = qq.match(/[1-9]\d*/g)
|
||||
}
|
||||
|
||||
if (!qq) {
|
||||
e.reply('❎ 请输入正确的QQ号')
|
||||
return false
|
||||
}
|
||||
await Bot.pickFriend(qq)
|
||||
.setFriendReq()
|
||||
.then(() => e.reply(`✅ 已同意${qq}的好友申请`))
|
||||
.catch((err) => console.log(err))
|
||||
}
|
||||
|
||||
/** 引用同意好友申请和群邀请 */
|
||||
async agrees(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.source) return
|
||||
if (!e.isPrivate) return
|
||||
let yes = true
|
||||
if (/拒绝/.test(e.msg)) {
|
||||
yes = false
|
||||
}
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
|
||||
|
||||
let res
|
||||
try {
|
||||
res = source.raw_message.split('\n')
|
||||
} catch {
|
||||
e.reply('❎ 消息可能已过期')
|
||||
return false
|
||||
}
|
||||
if (/申请人QQ/.test(res[1]) && /好友申请/.test(res[0])) {
|
||||
let qq = res[1].match(/[1-9]\d*/g)
|
||||
if (Bot.fl.get(Number(qq))) return e.reply('❎ 已经同意过该申请了哦~')
|
||||
Bot.pickFriend(qq)
|
||||
.setFriendReq('', yes)
|
||||
.then(() => e.reply(`✅ 已${yes ? '同意' : '拒绝'}${qq}的好友申请`))
|
||||
.catch(() => e.reply('❎ 请检查是否已同意该申请'))
|
||||
} else if (
|
||||
/目标群号/.test(res[1]) &&
|
||||
/邀请人QQ/.test(res[3]) &&
|
||||
/邀请码/.test(res[6])
|
||||
) {
|
||||
let groupid = res[1].match(/[1-9]\d*/g)
|
||||
if (Bot.fl.get(Number(groupid))) { return e.reply('❎ 已经同意过该申请了哦~') }
|
||||
|
||||
let qq = res[3].match(/[1-9]\d*/g)
|
||||
let seq = res[6].match(/[1-9]\d*/g)
|
||||
Bot.pickUser(qq)
|
||||
.setGroupInvite(groupid, seq, yes)
|
||||
.then(() => e.reply(`✅ 已${yes ? '同意' : '拒绝'}${qq}的群邀请`))
|
||||
.catch(() => e.reply('❎ 请检查是否已同意该邀请'))
|
||||
} else {
|
||||
e.reply('❎ 请检查是否引用正确')
|
||||
}
|
||||
}
|
||||
|
||||
// 回复好友消息
|
||||
async Replys(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.isPrivate) return
|
||||
let qq;
|
||||
let msgs = e.message[0].text.split(' ')
|
||||
if (e.source) {
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop();
|
||||
let res;
|
||||
try {
|
||||
res = source.raw_message.split('\n')
|
||||
} catch {
|
||||
return e.reply('❎ 消息可能已过期')
|
||||
}
|
||||
if (/好友消息/.test(res[0]) && /好友QQ/.test(res[1])) {
|
||||
qq = res[1].match(/[1-9]\d*/g)
|
||||
} else if (/群临时消息/.test(res[0])) {
|
||||
return e.reply('❎ 群临时消息无法回复,请添加好友')
|
||||
} else {
|
||||
return e.reply('❎ 请检查是否引用正确')
|
||||
}
|
||||
e.message[0].text = e.message[0].text.replace(/#|回复/g, '').trim()
|
||||
} else {
|
||||
|
||||
if (msgs.length == 1 && !/\d/.test(msgs[0])) {
|
||||
return e.reply('❎ QQ号不能为空')
|
||||
} else if (/\d/.test(msgs[0])) {
|
||||
qq = msgs[0].match(/[1-9]\d*/g)
|
||||
e.message[0].text = msgs.slice(1).join(' ')
|
||||
} else {
|
||||
qq = msgs[1]
|
||||
e.message[0].text = msgs.slice(2).join(' ')
|
||||
}
|
||||
}
|
||||
|
||||
if (!/^\d+$/.test(qq)) return e.reply('❎ QQ号不正确,人家做不到的啦>_<~')
|
||||
|
||||
if (!Bot.fl.get(Number(qq))) return e.reply('❎ 好友列表查无此人')
|
||||
|
||||
if (!e.message[0].text) e.message.shift()
|
||||
|
||||
if (e.message.length === 0) return e.reply('❎ 消息不能为空')
|
||||
|
||||
Bot.pickFriend(qq)
|
||||
.sendMsg(e.message)
|
||||
.then(() => { e.reply('✅ 已把消息发给它了哦~') })
|
||||
.catch((err) => e.reply(`❎ 发送失败\n错误信息为:${err.message}`))
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
206
apps/notice.js
206
apps/notice.js
@@ -2,9 +2,7 @@ import plugin from '../../../lib/plugins/plugin.js'
|
||||
import { segment } from 'oicq'
|
||||
import cfg from '../../../lib/config/config.js'
|
||||
import common from '../../../lib/common/common.js'
|
||||
import xcfg from "../model/Config"
|
||||
|
||||
let config = {}
|
||||
|
||||
const ROLE_MAP = {
|
||||
admin: '群管理',
|
||||
@@ -21,11 +19,6 @@ export class Friends extends plugin {
|
||||
event: 'notice.friend',
|
||||
priority: 5000
|
||||
})
|
||||
this.configpath = './plugins/yenai-plugin/config/config.json'
|
||||
}
|
||||
|
||||
async init() {
|
||||
config = await xcfg.getread(this.configpath)
|
||||
}
|
||||
|
||||
async accept(e) {
|
||||
@@ -33,7 +26,7 @@ export class Friends extends plugin {
|
||||
let forwardMsg
|
||||
switch (e.sub_type) {
|
||||
case 'increase': {
|
||||
if (!config.friendNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:friendNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
'[通知 - 新增好友]\n',
|
||||
@@ -43,7 +36,7 @@ export class Friends extends plugin {
|
||||
break
|
||||
}
|
||||
case 'decrease': {
|
||||
if (!config.friendNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:friendNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
'[通知 - 好友减少]\n',
|
||||
@@ -53,7 +46,7 @@ export class Friends extends plugin {
|
||||
break
|
||||
}
|
||||
case 'recall': {
|
||||
if (!config.PrivateRecall) return
|
||||
if (!await redis.get(`yenai:notice:PrivateRecall`)) return
|
||||
|
||||
if (e.user_id == cfg.qq) return
|
||||
|
||||
@@ -94,7 +87,7 @@ export class Friends extends plugin {
|
||||
break
|
||||
}
|
||||
case 'poke': {
|
||||
if (!config.privateMessage) return
|
||||
if (!await redis.get(`yenai:notice:privateMessage`)) return
|
||||
msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
'[消息 - 戳一戳]\n',
|
||||
@@ -128,7 +121,7 @@ export class newgroups extends plugin {
|
||||
switch (e.sub_type) {
|
||||
case 'increase': {
|
||||
if (e.user_id === cfg.qq) {
|
||||
if (!config.groupNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -137,7 +130,7 @@ export class newgroups extends plugin {
|
||||
`新增群号:${e.group_id}`
|
||||
]
|
||||
} else {
|
||||
if (!config.groupMemberNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupMemberNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -152,7 +145,7 @@ export class newgroups extends plugin {
|
||||
}
|
||||
case 'decrease': {
|
||||
if (e.dismiss) {
|
||||
if (!config.groupNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -162,7 +155,7 @@ export class newgroups extends plugin {
|
||||
`解散群号:${e.group_id}`
|
||||
]
|
||||
} else if (e.user_id === cfg.qq && e.operator_id !== cfg.qq) {
|
||||
if (!config.groupNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -172,7 +165,8 @@ export class newgroups extends plugin {
|
||||
`被踢群号:${e.group_id}`
|
||||
]
|
||||
} else if (e.user_id === cfg.qq && e.operator_id === cfg.qq) {
|
||||
if (!config.groupNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupNumberChange`)) return
|
||||
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -181,7 +175,8 @@ export class newgroups extends plugin {
|
||||
`退出群号:${e.group_id}`
|
||||
]
|
||||
} else if (e.operator_id === e.user_id) {
|
||||
if (!config.groupMemberNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupMemberNumberChange`)) return
|
||||
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -197,7 +192,8 @@ export class newgroups extends plugin {
|
||||
`退出群号:${e.group_id}`
|
||||
]
|
||||
} else if (e.operator_id !== e.user_id) {
|
||||
if (!config.groupMemberNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupMemberNumberChange`)) return
|
||||
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -218,7 +214,8 @@ export class newgroups extends plugin {
|
||||
}
|
||||
// 群管理变动
|
||||
case 'admin': {
|
||||
if (!config.groupAdminChange) return
|
||||
if (!await redis.get(`yenai:notice:groupAdminChange`)) return
|
||||
|
||||
if (e.user_id === cfg.qq) {
|
||||
msg = [
|
||||
segment.image(
|
||||
@@ -245,8 +242,10 @@ export class newgroups extends plugin {
|
||||
case 'ban': {
|
||||
let Forbiddentime = getsecond(e.duration)
|
||||
|
||||
if (!config.botBeenBanned) return
|
||||
if (!await redis.get(`yenai:notice:botBeenBanned`)) return
|
||||
|
||||
if (e.user_id != cfg.qq) return
|
||||
|
||||
if (e.duration == 0) {
|
||||
msg = [
|
||||
segment.image(
|
||||
@@ -271,7 +270,7 @@ export class newgroups extends plugin {
|
||||
}
|
||||
// 群转让
|
||||
case 'transfer': {
|
||||
if (!config.groupNumberChange) return
|
||||
if (!await redis.get(`yenai:notice:groupNumberChange`)) return
|
||||
msg = [
|
||||
segment.image(
|
||||
`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`
|
||||
@@ -286,7 +285,7 @@ export class newgroups extends plugin {
|
||||
// 群撤回
|
||||
case 'recall': {
|
||||
// 开启或关闭
|
||||
if (!config.groupRecall) return
|
||||
if (!await redis.get(`yenai:notice:groupRecall`)) return
|
||||
// 是否为机器人撤回
|
||||
if (e.user_id == cfg.qq) return
|
||||
// 是否为主人撤回
|
||||
@@ -374,7 +373,7 @@ export class application extends plugin {
|
||||
}
|
||||
|
||||
async accept(e) {
|
||||
if (!config.friendRequest) return
|
||||
if (!await redis.get(`yenai:notice:friendRequest`)) return
|
||||
let msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
'[通知 - 添加好友申请]\n',
|
||||
@@ -406,7 +405,7 @@ export class invitation extends plugin {
|
||||
|
||||
async accept(e) {
|
||||
let msg = ''
|
||||
if (!config.groupInviteRequest) return
|
||||
if (!await redis.get(`yenai:notice:groupInviteRequest`)) return
|
||||
|
||||
if (cfg.masterQQ.includes(e.user_id)) return
|
||||
|
||||
@@ -429,34 +428,18 @@ export class invitation extends plugin {
|
||||
}
|
||||
}
|
||||
/** 消息 */
|
||||
let deltime
|
||||
export class anotice extends plugin {
|
||||
constructor() {
|
||||
super({
|
||||
name: '消息',
|
||||
dsc: '闪照等消息',
|
||||
event: 'message',
|
||||
rule: [
|
||||
{
|
||||
/** 命令正则匹配 */
|
||||
reg: '^#?同意申请.*$',
|
||||
/** 执行方法 */
|
||||
fnc: 'agree'
|
||||
},
|
||||
{
|
||||
/** 命令正则匹配 */
|
||||
reg: '^#?(同意|拒绝)$',
|
||||
/** 执行方法 */
|
||||
fnc: 'agrees'
|
||||
},
|
||||
{
|
||||
/** 命令正则匹配 */
|
||||
reg: '^#?回复.*$',
|
||||
/** 执行方法 */
|
||||
fnc: 'Replys'
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
async init() {
|
||||
deltime = await redis.get(`yenai:notice:deltime`)
|
||||
}
|
||||
|
||||
async accept(e) {
|
||||
// 判断是否为机器人消息
|
||||
@@ -464,6 +447,8 @@ export class anotice extends plugin {
|
||||
// 判断是否主人消息
|
||||
if (cfg.masterQQ.includes(e.user_id)) return
|
||||
|
||||
|
||||
|
||||
// 判断群聊还是私聊
|
||||
if (e.isGroup) {
|
||||
// 关闭撤回停止存储
|
||||
@@ -472,7 +457,7 @@ export class anotice extends plugin {
|
||||
await redis.set(
|
||||
`notice:messageGroup:${e.message_id}`,
|
||||
JSON.stringify(e.message),
|
||||
{ EX: config.deltime }
|
||||
{ EX: deltime }
|
||||
)
|
||||
}
|
||||
} else if (e.isPrivate) {
|
||||
@@ -482,7 +467,7 @@ export class anotice extends plugin {
|
||||
await redis.set(
|
||||
`notice:messagePrivate:${e.message_id}`,
|
||||
JSON.stringify(e.message),
|
||||
{ EX: config.deltime }
|
||||
{ EX: deltime }
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -493,7 +478,7 @@ export class anotice extends plugin {
|
||||
if (
|
||||
e.message[0].type == 'flash' &&
|
||||
e.message_type === 'group' &&
|
||||
config.flashPhoto
|
||||
await redis.get(`yenai:notice:flashPhoto`)
|
||||
) {
|
||||
msg = [
|
||||
segment.image(`https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/100`),
|
||||
@@ -507,7 +492,7 @@ export class anotice extends plugin {
|
||||
} else if (
|
||||
e.message[0].type == 'flash' &&
|
||||
e.message_type === 'discuss' &&
|
||||
config.flashPhoto
|
||||
await redis.get(`yenai:notice:flashPhoto`)
|
||||
) {
|
||||
msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
@@ -521,7 +506,7 @@ export class anotice extends plugin {
|
||||
} else if (
|
||||
e.message[0].type == 'flash' &&
|
||||
e.message_type === 'private' &&
|
||||
config.flashPhoto
|
||||
await redis.get(`yenai:notice:flashPhoto`)
|
||||
) {
|
||||
msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
@@ -531,7 +516,7 @@ export class anotice extends plugin {
|
||||
`闪照链接:${e.message[0].url}`
|
||||
]
|
||||
} else if (e.message_type === 'private' && e.sub_type === 'friend') {
|
||||
if (!config.privateMessage) return
|
||||
if (!await redis.get(`yenai:notice:privateMessage`)) return
|
||||
|
||||
let res = e.message
|
||||
// 特殊消息处理
|
||||
@@ -560,7 +545,7 @@ export class anotice extends plugin {
|
||||
)
|
||||
}
|
||||
} else if (e.message_type === 'private' && e.sub_type === 'group') {
|
||||
if (!config.grouptemporaryMessage) return
|
||||
if (!await redis.get(`yenai:notice:grouptemporaryMessage`)) return
|
||||
// 特殊消息处理
|
||||
let res = e.message
|
||||
let arr = this.getSpecial(e.message)
|
||||
@@ -578,7 +563,7 @@ export class anotice extends plugin {
|
||||
...res
|
||||
]
|
||||
} else if (e.message_type === 'group') {
|
||||
if (!config.groupMessage) return
|
||||
if (!await redis.get(`yenai:notice:groupMessage`)) return
|
||||
// 特殊消息处理
|
||||
let res = e.message
|
||||
let arr = this.getSpecial(e.message)
|
||||
@@ -598,7 +583,7 @@ export class anotice extends plugin {
|
||||
...res
|
||||
]
|
||||
} else if (e.message_type === 'discuss') {
|
||||
if (!config.groupMessage) return
|
||||
if (!await redis.get(`yenai:notice:groupMessage`)) return
|
||||
msg = [
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
|
||||
'[消息 - 群聊消息]\n',
|
||||
@@ -639,121 +624,6 @@ export class anotice extends plugin {
|
||||
}
|
||||
} else return false
|
||||
}
|
||||
|
||||
/** 同意好友申请 */
|
||||
async agree(e) {
|
||||
if (!e.isMaster) return
|
||||
|
||||
let qq = e.message[0].text.replace(/#|同意申请/g, '').trim()
|
||||
if (e.message[1]) {
|
||||
qq = e.message[1].qq
|
||||
} else {
|
||||
qq = qq.match(/[1-9]\d*/g)
|
||||
}
|
||||
|
||||
if (!qq) {
|
||||
e.reply('❎ 请输入正确的QQ号')
|
||||
return false
|
||||
}
|
||||
await Bot.pickFriend(qq)
|
||||
.setFriendReq()
|
||||
.then(() => e.reply(`✅ 已同意${qq}的好友申请`))
|
||||
.catch((err) => console.log(err))
|
||||
}
|
||||
|
||||
/** 引用同意好友申请和群邀请 */
|
||||
async agrees(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.source) return
|
||||
if (!e.isPrivate) return
|
||||
let yes = true
|
||||
if (/拒绝/.test(e.msg)) {
|
||||
yes = false
|
||||
}
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
|
||||
|
||||
let res
|
||||
try {
|
||||
res = source.raw_message.split('\n')
|
||||
} catch {
|
||||
e.reply('❎ 消息可能已过期')
|
||||
return false
|
||||
}
|
||||
if (/申请人QQ/.test(res[1]) && /好友申请/.test(res[0])) {
|
||||
let qq = res[1].match(/[1-9]\d*/g)
|
||||
if (Bot.fl.get(Number(qq))) return e.reply('❎ 已经同意过该申请了哦~')
|
||||
Bot.pickFriend(qq)
|
||||
.setFriendReq('', yes)
|
||||
.then(() => e.reply(`✅ 已${yes ? '同意' : '拒绝'}${qq}的好友申请`))
|
||||
.catch(() => e.reply('❎ 请检查是否已同意该申请'))
|
||||
} else if (
|
||||
/目标群号/.test(res[1]) &&
|
||||
/邀请人QQ/.test(res[3]) &&
|
||||
/邀请码/.test(res[6])
|
||||
) {
|
||||
// 这里借鉴了一下p佬的进群同意,p佬我的超人!!!
|
||||
let groupid = res[1].match(/[1-9]\d*/g)
|
||||
if (Bot.fl.get(Number(groupid))) { return e.reply('❎ 已经同意过该申请了哦~') }
|
||||
|
||||
let qq = res[3].match(/[1-9]\d*/g)
|
||||
let seq = res[6].match(/[1-9]\d*/g)
|
||||
Bot.pickUser(qq)
|
||||
.setGroupInvite(groupid, seq, yes)
|
||||
.then(() => e.reply(`✅ 已${yes ? '同意' : '拒绝'}${qq}的群邀请`))
|
||||
.catch(() => e.reply('❎ 请检查是否已同意该邀请'))
|
||||
} else {
|
||||
e.reply('❎ 请检查是否引用正确')
|
||||
}
|
||||
}
|
||||
|
||||
// 回复好友消息
|
||||
async Replys(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.isPrivate) return
|
||||
let qq;
|
||||
let msgs = e.message[0].text.split(' ')
|
||||
if (e.source) {
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop();
|
||||
let res;
|
||||
try {
|
||||
res = source.raw_message.split('\n')
|
||||
} catch {
|
||||
return e.reply('❎ 消息可能已过期')
|
||||
}
|
||||
if (/好友消息/.test(res[0]) && /好友QQ/.test(res[1])) {
|
||||
qq = res[1].match(/[1-9]\d*/g)
|
||||
} else if (/群临时消息/.test(res[0])) {
|
||||
return e.reply('❎ 群临时消息无法回复,请添加好友')
|
||||
} else {
|
||||
return e.reply('❎ 请检查是否引用正确')
|
||||
}
|
||||
e.message[0].text = e.message[0].text.replace(/#|回复/g, '').trim()
|
||||
} else {
|
||||
|
||||
if (msgs.length == 1 && !/\d/.test(msgs[0])) {
|
||||
return e.reply('❎ QQ号不能为空')
|
||||
} else if (/\d/.test(msgs[0])) {
|
||||
qq = msgs[0].match(/[1-9]\d*/g)
|
||||
e.message[0].text = msgs.slice(1).join(' ')
|
||||
} else {
|
||||
qq = msgs[1]
|
||||
e.message[0].text = msgs.slice(2).join(' ')
|
||||
}
|
||||
}
|
||||
|
||||
if (!/^\d+$/.test(qq)) return e.reply('❎ QQ号不正确,人家做不到的啦>_<~')
|
||||
|
||||
if (!Bot.fl.get(Number(qq))) return e.reply('❎ 好友列表查无此人')
|
||||
|
||||
if (!e.message[0].text) e.message.shift()
|
||||
|
||||
if (e.message.length === 0) return e.reply('❎ 消息不能为空')
|
||||
|
||||
Bot.pickFriend(qq)
|
||||
.sendMsg(e.message)
|
||||
.then(() => { e.reply('✅ 已把消息发给它了哦~') })
|
||||
.catch((err) => e.reply(`❎ 发送失败\n错误信息为:${err.message}`))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
101
apps/set.js
101
apps/set.js
@@ -1,5 +1,4 @@
|
||||
import plugin from '../../../lib/plugins/plugin.js'
|
||||
import xcfg from "../model/Config"
|
||||
|
||||
export class NewConfig extends plugin {
|
||||
constructor() {
|
||||
@@ -29,40 +28,6 @@ export class NewConfig extends plugin {
|
||||
},
|
||||
]
|
||||
})
|
||||
this.path = './plugins/yenai-plugin/config'
|
||||
this.configpath = './plugins/yenai-plugin/config/config.json'
|
||||
}
|
||||
async init() {
|
||||
if (!fs.existsSync(this.path)) {
|
||||
fs.mkdirSync(this.path)
|
||||
}
|
||||
// 检测有无配置文件,没有就创建默认配置文件
|
||||
if (!fs.existsSync(this.configpath)) {
|
||||
let configs = {
|
||||
privateMessage: true, // 好友消息
|
||||
groupMessage: false, // 群|讨论组消息(不建议开启)
|
||||
grouptemporaryMessage: true, // 群临时消息
|
||||
groupRecall: true, // 群撤回
|
||||
PrivateRecall: true, // 好友撤回
|
||||
// 申请通知
|
||||
friendRequest: true, // 好友申请
|
||||
groupInviteRequest: true, // 群邀请
|
||||
// 信息变动
|
||||
groupAdminChange: true, // 群管理变动
|
||||
// 列表变动
|
||||
friendNumberChange: true, // 好友列表变动
|
||||
groupNumberChange: true, // 群聊列表变动
|
||||
groupMemberNumberChange: false, // 群成员变动
|
||||
// 其他通知
|
||||
flashPhoto: true, // 闪照
|
||||
botBeenBanned: true, // 机器人被禁言
|
||||
// 是否给全部管理发送通知(默认只通知第一个管理)
|
||||
notificationsAll: false,
|
||||
// 设置删除消息缓存的时间单位s(用于撤回监听)
|
||||
deltime: 600 // 不建议太大
|
||||
}
|
||||
await xcfg.getwrite(this.configpath, configs)
|
||||
}
|
||||
}
|
||||
|
||||
// 更改配置
|
||||
@@ -76,7 +41,10 @@ export class NewConfig extends plugin {
|
||||
let yes = false
|
||||
if (/开启/.test(e.msg)) yes = true
|
||||
// 回复
|
||||
if (await getcfg(option, yes)) {
|
||||
let res = await redis.set(`yenai:notice:${configs[option]}`, yes)
|
||||
|
||||
|
||||
if (res == "OK") {
|
||||
e.reply(`✅ 已${yes ? '开启' : '关闭'}${option}通知`)
|
||||
}
|
||||
}
|
||||
@@ -93,14 +61,18 @@ export class NewConfig extends plugin {
|
||||
|
||||
if (time < 120) return e.reply('❎ 时间不能小于两分钟')
|
||||
|
||||
if (await getcfg('缓存时间', Number(time))) {
|
||||
let res = await redis.set(`yenai:notice:deltime`, Number(time))
|
||||
if (res == "OK") {
|
||||
e.reply(`✅ 已设置删除缓存时间为${getsecond(time)}`)
|
||||
}
|
||||
}
|
||||
|
||||
async SeeConfig() {
|
||||
|
||||
let config = await xcfg.getread(this.configpath)
|
||||
let config = {}
|
||||
for (let i in configs) {
|
||||
let res = await redis.get(`yenai:notice:${configs[i]}`)
|
||||
config[i] = res
|
||||
}
|
||||
|
||||
let msg = [
|
||||
`闪照 ${config.flashPhoto ? '✅' : '❎'}\n`,
|
||||
@@ -122,36 +94,25 @@ export class NewConfig extends plugin {
|
||||
await this.e.reply(msg)
|
||||
}
|
||||
}
|
||||
/**更改配置 */
|
||||
async function getcfg(key, value) {
|
||||
// 路径
|
||||
let path = './plugins/yenai-plugin/config/config.json'
|
||||
// 配置类
|
||||
const parameter = {
|
||||
好友消息: 'privateMessage',
|
||||
群消息: 'groupMessage',
|
||||
群临时消息: 'grouptemporaryMessage',
|
||||
群撤回: 'groupRecall',
|
||||
好友撤回: 'PrivateRecall',
|
||||
好友申请: 'friendRequest',
|
||||
群邀请: 'groupInviteRequest',
|
||||
群管理变动: 'groupAdminChange',
|
||||
好友列表变动: 'friendNumberChange',
|
||||
群聊列表变动: 'groupNumberChange',
|
||||
群成员变动: 'groupMemberNumberChange',
|
||||
闪照: 'flashPhoto',
|
||||
禁言: 'botBeenBanned',
|
||||
全部管理: 'notificationsAll',
|
||||
缓存时间: 'deltime'
|
||||
}
|
||||
// 判断是否有这一项类
|
||||
if (!parameter.hasOwnProperty(key)) return false
|
||||
// 读取配置
|
||||
let cfg = await xcfg.getread(path)
|
||||
// 更改配置
|
||||
cfg[parameter[key]] = value
|
||||
// 写入
|
||||
await xcfg.getwrite(path, cfg)
|
||||
|
||||
return true
|
||||
const configs = {
|
||||
好友消息: "privateMessage",
|
||||
群消息: "groupMessage",
|
||||
群临时消息: "grouptemporaryMessage",
|
||||
群撤回: "groupRecall",
|
||||
好友撤回: "PrivateRecall",
|
||||
// 申请通知
|
||||
好友申请: "friendRequest",
|
||||
群邀请: "groupInviteRequest",
|
||||
// 信息变动
|
||||
群管理变动: "groupAdminChange",
|
||||
// 列表变动
|
||||
好友列表变动: "friendNumberChange",
|
||||
群聊列表变动: "groupNumberChange",
|
||||
群成员变动: "groupMemberNumberChange",
|
||||
// 其他通知
|
||||
闪照: "flashPhoto",
|
||||
禁言: "botBeenBanned",
|
||||
全部通知: "notificationsAll",
|
||||
删除缓存: "deltime"
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"privateMessage": true,
|
||||
"groupMessage": false,
|
||||
"grouptemporaryMessage": true,
|
||||
"groupRecall": true,
|
||||
"PrivateRecall": true,
|
||||
"friendRequest": true,
|
||||
"groupInviteRequest": true,
|
||||
"groupAdminChange": true,
|
||||
"friendNumberChange": true,
|
||||
"groupNumberChange": true,
|
||||
"groupMemberNumberChange": false,
|
||||
"flashPhoto": true,
|
||||
"botBeenBanned": true,
|
||||
"notificationsAll": false,
|
||||
"deltime": 600
|
||||
}
|
||||
Reference in New Issue
Block a user