Files
yenai-plugin/apps/set.js
2022-10-06 22:33:22 +08:00

163 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import plugin from '../../../lib/plugins/plugin.js'
export class NewConfig extends plugin {
constructor() {
super({
name: '修改配置',
dsc: '配置文件',
event: 'message',
priority: 5000,
rule: [
{
/** 命令正则匹配 */
reg: '^#?(.*)通知(开启|关闭)$',
/** 执行方法 */
fnc: 'Config_manage'
},
{
/** 命令正则匹配 */
reg: '^#?设置删除缓存时间(.*)$',
/** 执行方法 */
fnc: 'Config_deltime'
},
{
/** 命令正则匹配 */
reg: '^#?通知设置$',
/** 执行方法 */
fnc: 'SeeConfig'
},
]
})
}
// 更改配置
async Config_manage(e) {
if (!e.isMaster) return
// 解析消息
let index = e.msg.indexOf('通知')
let option = e.msg.slice(0, index)
option = option.replace(/#/, '').trim()
// 开启还是关闭
if (!configs.hasOwnProperty(option)) return
let res
if (/开启/.test(e.msg)) {
// 回复
res = await redis.set(`yenai:notice:${configs[option]}`, "1")
if (res) {
e.reply(`✅ 已开启${option}通知`)
} else {
e.reply(`❎ 未知错误`)
}
return
} else {
res = await redis.del(`yenai:notice:${configs[option]}`)
if (res) {
e.reply(`✅ 已关闭${option}通知`)
} else {
e.reply(`${option}通知已是关闭状态`)
}
return
}
}
// 设置删除缓存时间
async Config_deltime(e) {
if (!e.isMaster) return
let time = e.msg.replace(/#|设置删除缓存时间/, '').trim()
time = time.match(/\d*/g)
if (!time) return e.reply('❎ 请输入正确的时间(单位s)')
if (time < 120) return e.reply('❎ 时间不能小于两分钟')
let res = await redis.set(`yenai:notice:deltime`, String(time[0]))
if (res == "OK") {
e.reply(`✅ 已设置删除缓存时间为${getsecond(time)}`)
}
}
async SeeConfig(e) {
let config = {}
for (let i in configs) {
let res = await redis.get(`yenai:notice:${configs[i]}`)
config[configs[i]] = res
}
let msg = [
`闪照 ${config.flashPhoto ? '✅' : '❎'}\n`,
`禁言 ${config.botBeenBanned ? '✅' : '❎'}\n`,
`群消息 ${config.groupMessage ? '✅' : '❎'}\n`,
`群撤回 ${config.groupRecall ? '✅' : '❎'}\n`,
`群邀请 ${config.groupInviteRequest ? '✅' : '❎'}\n`,
`好友消息 ${config.privateMessage ? '✅' : '❎'}\n`,
`好友撤回 ${config.PrivateRecall ? '✅' : '❎'}\n`,
`好友申请 ${config.friendRequest ? '✅' : '❎'}\n`,
`群成员变动 ${config.groupMemberNumberChange ? '✅' : '❎'}\n`,
`群管理变动 ${config.groupAdminChange ? '✅' : '❎'}\n`,
`群临时消息 ${config.grouptemporaryMessage ? '✅' : '❎'}\n`,
`好友列表变动 ${config.friendNumberChange ? '✅' : '❎'}\n`,
`群聊列表变动 ${config.groupNumberChange ? '✅' : '❎'}\n`,
`全部管理发送 ${config.notificationsAll ? '✅' : '❎'}\n`,
`删除缓存时间:${config.deltime}`
]
await this.e.reply(msg)
}
}
const configs = {
好友消息: "privateMessage",
群消息: "groupMessage",
群临时消息: "grouptemporaryMessage",
群撤回: "groupRecall",
好友撤回: "PrivateRecall",
// 申请通知
好友申请: "friendRequest",
群邀请: "groupInviteRequest",
// 信息变动
群管理变动: "groupAdminChange",
// 列表变动
好友列表变动: "friendNumberChange",
群聊列表变动: "groupNumberChange",
群成员变动: "groupMemberNumberChange",
// 其他通知
闪照: "flashPhoto",
禁言: "botBeenBanned",
全部通知: "notificationsAll",
删除缓存: "deltime"
}
// 秒转换
function getsecond(value) {
let secondTime = parseInt(value) // 秒
let minuteTime = 0 // 分
let hourTime = 0 // 小时
if (secondTime > 60) {
// 如果秒数大于60将秒数转换成整数
// 获取分钟除以60取整数得到整数分钟
minuteTime = parseInt(secondTime / 60)
// 获取秒数,秒数取佘,得到整数秒数
secondTime = parseInt(secondTime % 60)
// 如果分钟大于60将分钟转换成小时
if (minuteTime > 60) {
// 获取小时获取分钟除以60得到整数小时
hourTime = parseInt(minuteTime / 60)
// 获取小时后取佘的分获取分钟除以60取佘的分
minuteTime = parseInt(minuteTime % 60)
}
}
// 处理返回消息
let result = ''
if (secondTime != 0) {
result = parseInt(secondTime) + '秒'
}
if (minuteTime > 0) {
result = parseInt(minuteTime) + '分' + result
}
if (hourTime > 0) {
result = parseInt(hourTime) + '小时' + result
}
return result
}