修复 合并转发 问题

This commit is contained in:
🌌 2023-05-12 10:42:10 +08:00
parent be89bf2dbc
commit d31c09ace7
3 changed files with 17 additions and 118 deletions

View File

@ -80,33 +80,13 @@ export class sendLog extends plugin {
} }
async makeForwardMsg (title, msg) { async makeForwardMsg (title, msg) {
let nickname = this.e.bot.nickname let forwardMsg = [{ message: title }, { message: msg }]
if (this.e.isGroup) {
let info = await this.e.bot.getGroupMemberInfo(this.e.group_id, this.e.bot.uin)
nickname = info.card ?? info.nickname
}
let userInfo = {
user_id: this.e.bot.uin,
nickname
}
let forwardMsg = [
{
...userInfo,
message: title
},
{
...userInfo,
message: msg
}
]
/** 制作转发内容 */ /** 制作转发内容 */
if (this.e.isGroup) { if (this.e.group)
forwardMsg = await this.e.group.makeForwardMsg(forwardMsg) forwardMsg = await this.e.group.makeForwardMsg(forwardMsg)
} else { else
forwardMsg = await this.e.friend.makeForwardMsg(forwardMsg) forwardMsg = await this.e.friend.makeForwardMsg(forwardMsg)
}
/** 处理描述 */ /** 处理描述 */
forwardMsg.data = forwardMsg.data forwardMsg.data = forwardMsg.data

View File

@ -262,40 +262,16 @@ export class update extends plugin {
} }
async makeForwardMsg (title, msg, end) { async makeForwardMsg (title, msg, end) {
let nickname = this.e.bot.nickname let forwardMsg = [{ message: title }, { message: msg }]
if (this.e.isGroup) {
let info = await this.e.bot.getGroupMemberInfo(this.e.group_id, this.e.bot.uin)
nickname = info.card ?? info.nickname
}
let userInfo = {
user_id: this.e.bot.uin,
nickname
}
let forwardMsg = [ if (end)
{ forwardMsg.push({ message: end })
...userInfo,
message: title
},
{
...userInfo,
message: msg
}
]
if (end) {
forwardMsg.push({
...userInfo,
message: end
})
}
/** 制作转发内容 */ /** 制作转发内容 */
if (this.e.isGroup) { if (this.e.group)
forwardMsg = await this.e.group.makeForwardMsg(forwardMsg) forwardMsg = await this.e.group.makeForwardMsg(forwardMsg)
} else { else
forwardMsg = await this.e.friend.makeForwardMsg(forwardMsg) forwardMsg = await this.e.friend.makeForwardMsg(forwardMsg)
}
/** 处理描述 */ /** 处理描述 */
forwardMsg.data = forwardMsg.data forwardMsg.data = forwardMsg.data

View File

@ -127,12 +127,6 @@ export class add extends plugin {
return false return false
} }
if (groupCfg.imgAddLimit == 1) { if (groupCfg.imgAddLimit == 1) {
if (!this.e.bot.gml.has(this.group_id)) {
return false
}
if (!this.e.bot.gml.get(this.group_id).get(this.e.user_id)) {
return false
}
if (!this.e.member.is_admin) { if (!this.e.member.is_admin) {
this.e.reply('暂无权限,只有管理员才能操作') this.e.reply('暂无权限,只有管理员才能操作')
return false return false
@ -662,7 +656,7 @@ export class add extends plugin {
for (let i in arr) { for (let i in arr) {
if (num >= page * pageSize) break if (num >= page * pageSize) break
let keyWord = await this.keyWordTran(arr[i].key) let keyWord = arr[i].key
if (!keyWord) continue if (!keyWord) continue
if (Array.isArray(keyWord)) { if (Array.isArray(keyWord)) {
@ -687,45 +681,28 @@ export class add extends plugin {
title = `表情${search}${count}` title = `表情${search}${count}`
} }
let forwardMsg = await this.makeForwardMsg(this.e.bot.uin, title, msg, end) let forwardMsg = await this.makeForwardMsg(title, msg, end)
this.e.reply(forwardMsg) this.e.reply(forwardMsg)
} }
async makeForwardMsg (qq, title, msg, end = '') { async makeForwardMsg (title, msg, end = '') {
let nickname = this.e.bot.nickname let forwardMsg = [{ message: title }]
if (this.e.isGroup) {
let info = await this.e.bot.getGroupMemberInfo(this.e.group_id, qq)
nickname = info.card ?? info.nickname
}
let userInfo = {
user_id: this.e.bot.uin,
nickname
}
let forwardMsg = [
{
...userInfo,
message: title
}
]
let msgArr = lodash.chunk(msg, 40) let msgArr = lodash.chunk(msg, 40)
msgArr.forEach(v => { msgArr.forEach(v => {
v[v.length - 1] = lodash.trim(v[v.length - 1], '\n') v[v.length - 1] = lodash.trim(v[v.length - 1], '\n')
forwardMsg.push({ ...userInfo, message: v }) forwardMsg.push({ message: v })
}) })
if (end) { if (end)
forwardMsg.push({ ...userInfo, message: end }) forwardMsg.push({ message: end })
}
/** 制作转发内容 */ /** 制作转发内容 */
if (this.e.isGroup) { if (this.e.group)
forwardMsg = await this.e.group.makeForwardMsg(forwardMsg) forwardMsg = await this.e.group.makeForwardMsg(forwardMsg)
} else { else
forwardMsg = await this.e.friend.makeForwardMsg(forwardMsg) forwardMsg = await this.e.friend.makeForwardMsg(forwardMsg)
}
/** 处理描述 */ /** 处理描述 */
forwardMsg.data = forwardMsg.data forwardMsg.data = forwardMsg.data
@ -741,38 +718,4 @@ export class add extends plugin {
let offset = (pageNo - 1) * pageSize let offset = (pageNo - 1) * pageSize
return offset + pageSize >= array.length ? array.slice(offset, array.length) : array.slice(offset, offset + pageSize) return offset + pageSize >= array.length ? array.slice(offset, array.length) : array.slice(offset, offset + pageSize)
} }
/** 关键词转换成可发送消息 */
async keyWordTran (msg) {
/** 图片 */
if (msg.includes('{image')) {
let tmp = msg.split('{image')
if (tmp.length > 2) return false
let md5 = tmp[1].replace(/}|_|:/g, '')
msg = segment.image(`http://gchat.qpic.cn/gchatpic_new/0/0-0-${md5}/0`)
msg.asface = true
} else if (msg.includes('{at:')) {
let tmp = msg.match(/{at:(.+?)}/g)
for (let qq of tmp) {
qq = qq.match(/[1-9][0-9]{4,14}/g)[0]
let member = await await this.e.bot.getGroupMemberInfo(this.group_id, Number(qq)).catch(() => { })
let name = member?.card ?? member?.nickname
if (!name) continue
msg = msg.replace(`{at:${qq}}`, `@${name}`)
}
} else if (msg.includes('{face')) {
let tmp = msg.match(/{face(:|_)(.+?)}/g)
if (!tmp) return msg
msg = []
for (let face of tmp) {
let id = face.match(/\d+/g)
msg.push(segment.face(id))
}
}
return msg
}
} }