diff --git a/apps/character/AvatarCard.js b/apps/character/AvatarCard.js
index 8f0b17b4..ea94d581 100644
--- a/apps/character/AvatarCard.js
+++ b/apps/character/AvatarCard.js
@@ -85,9 +85,17 @@ let Avatar = {
isRelease,
data
}, { e, scale, retMsgId: true })
- if (msgRes && msgRes.message_id) {
+ if (msgRes) {
// 如果消息发送成功,就将message_id和图片路径存起来,3小时过期
- await redis.set(`miao:original-picture:${msgRes.message_id}`, JSON.stringify({ type: 'character', img: bg.img }), { EX: 3600 * 3 })
+ const message_id = [e.message_id]
+ if (Array.isArray(msgRes.message_id)) {
+ message_id.push(...msgRes.message_id)
+ } else {
+ message_id.push(msgRes.message_id)
+ }
+ for (const i of message_id) {
+ await redis.set(`miao:original-picture:${i}`, JSON.stringify({ type: 'character', img: bg.img }), { EX: 3600 * 3 })
+ }
}
return true
},
diff --git a/apps/character/ImgUpload.js b/apps/character/ImgUpload.js
index 284fe86c..68190a5e 100644
--- a/apps/character/ImgUpload.js
+++ b/apps/character/ImgUpload.js
@@ -42,13 +42,17 @@ export async function uploadCharacterImg (e) {
imageMessages.push(val)
}
}
- if (imageMessages.length === 0 && e.source) {
+ if (imageMessages.length === 0) {
let source
- if (e.isGroup) {
- // 支持at图片添加,以及支持后发送
- source = (await e.group.getChatHistory(e.source?.seq, 1)).pop()
- } else {
- source = (await e.friend.getChatHistory((e.source?.time + 1), 1)).pop()
+ if (e.getReply) {
+ source = await e.getReply()
+ } else if (e.source) {
+ if (e.group?.getChatHistory) {
+ // 支持at图片添加,以及支持后发送
+ source = (await e.group.getChatHistory(e.source?.seq, 1)).pop()
+ } else if (e.friend?.getChatHistory) {
+ source = (await e.friend.getChatHistory((e.source?.time + 1), 1)).pop()
+ }
}
if (source) {
for (let val of source.message) {
@@ -63,7 +67,7 @@ export async function uploadCharacterImg (e) {
resid = val.id
}
if (!resid) break
- let message = await Bot.getForwardMsg(resid)
+ let message = await e.bot.getForwardMsg(resid)
for (const item of message) {
for (const i of item.message) {
if (i.type === 'image') {
@@ -109,8 +113,12 @@ async function saveImages (e, name, imageMessages) {
e.reply([segment.at(e.user_id, senderName), '添加失败:图片太大了。'])
return true
}
- let fileName = val.file.substring(0, val.file.lastIndexOf('.'))
- let fileType = val.file.substring(val.file.lastIndexOf('.') + 1)
+ let fileName = ""
+ let fileType = "png"
+ if (val.file) {
+ fileName = val.file.substring(0, val.file.lastIndexOf('.'))
+ fileType = val.file.substring(val.file.lastIndexOf('.') + 1)
+ }
if (response.headers.get('content-type') === 'image/gif') {
fileType = 'gif'
}
@@ -132,7 +140,7 @@ async function saveImages (e, name, imageMessages) {
fs.rename(imgPath, newImgPath, () => {
})
imgCount++
- Bot.logger.mark(`添加成功: ${path}/${fileName}`)
+ Bot.logger.mark(`添加成功: ${newImgPath}`)
}
e.reply([segment.at(e.user_id, senderName), `\n成功添加${imgCount}张${name}${isProfile ? '面板图' : '图片'}。`])
return true
@@ -211,11 +219,6 @@ export async function profileImgList (e) {
e.reply('已禁止获取面板图列表')
return true
}
- let nickname = Bot.nickname
- if (e.isGroup) {
- let info = await Bot.getGroupMemberInfo(e.group_id, Bot.uin)
- nickname = info.card || info.nickname
- }
let name = char.name
let pathSuffix = `profile/normal-character/${name}`
let path = resPath + pathSuffix
@@ -229,19 +232,23 @@ export async function profileImgList (e) {
})
msglist.push({
message: [`当前查看的是${name}面板图,共${imgs.length}张,可输入【#删除${name}面板图(序列号)】进行删除`],
- nickname: nickname,
- user_id: Bot.uin
})
for (let i = 0; i < imgs.length; i++) {
// 合并转发最多99? 但是我感觉不会有这么多先不做处理
console.log(`${path}${imgs[i]}`)
msglist.push({
message: [`${i + 1}.`, segment.image(`file://${path}/${imgs[i]}`)],
- nickname: nickname,
- user_id: Bot.uin
})
}
- let msgRsg = await e.reply(await Bot.makeForwardMsg(msglist))
+ let msg
+ if (e.group?.makeForwardMsg) {
+ msg = await e.group.makeForwardMsg(msglist)
+ } else if (e.friend?.makeForwardMsg) {
+ msg = await e.friend.makeForwardMsg(msglist)
+ } else {
+ msg = await Bot.makeForwardMsg(msglist)
+ }
+ let msgRsg = await e.reply(msg)
if (!msgRsg) e.reply('风控了,可私聊查看', true)
} catch (err) {
logger.error(err)
diff --git a/apps/profile/ProfileDetail.js b/apps/profile/ProfileDetail.js
index 4f4bb765..f70ae5e6 100644
--- a/apps/profile/ProfileDetail.js
+++ b/apps/profile/ProfileDetail.js
@@ -201,12 +201,20 @@ let ProfileDetail = {
}
// 渲染图像
let msgRes = await Common.render('character/profile-detail', renderData, { e, scale: 1.6, retMsgId: true })
- if (msgRes && msgRes.message_id) {
+ if (msgRes) {
// 如果消息发送成功,就将message_id和图片路径存起来,3小时过期
- await redis.set(`miao:original-picture:${msgRes.message_id}`, JSON.stringify({
- type: 'profile',
- img: renderData?.data?.costumeSplash
- }), { EX: 3600 * 3 })
+ const message_id = [e.message_id]
+ if (Array.isArray(msgRes.message_id)) {
+ message_id.push(...msgRes.message_id)
+ } else {
+ message_id.push(msgRes.message_id)
+ }
+ for (const i of message_id) {
+ await redis.set(`miao:original-picture:${i}`, JSON.stringify({
+ type: 'profile',
+ img: renderData?.data?.costumeSplash
+ }), { EX: 3600 * 3 })
+ }
}
return true
},
diff --git a/apps/profile/ProfileUtils.js b/apps/profile/ProfileUtils.js
index 8ca686d7..19128fdd 100644
--- a/apps/profile/ProfileUtils.js
+++ b/apps/profile/ProfileUtils.js
@@ -3,25 +3,29 @@ import { MysApi } from '#miao.models'
/** 获取角色卡片的原图 */
export async function getOriginalPicture (e) {
- if (!e.hasReply && !e.source) {
- return true
- }
- // 引用的消息不是自己的消息
- if (e.source.user_id !== e.self_id) {
- return true
- }
- // 引用的消息不是纯图片
- if (!/^\[图片]$/.test(e.source.message)) {
- return true
+ let source
+ if (e.reply_id) {
+ source = { message_id: e.reply_id }
+ } else {
+ if (!e.hasReply && !e.source) {
+ return false
+ }
+ // 引用的消息不是自己的消息
+ if (e.source.user_id !== e.self_id) {
+ return false
+ }
+ // 引用的消息不是纯图片
+ if (!/^\[图片]$/.test(e.source.message)) {
+ return false
+ }
+ // 获取原消息
+ if (e.group?.getChatHistory) {
+ source = (await e.group.getChatHistory(e.source.seq, 1)).pop()
+ } else if (e.friend?.getChatHistory) {
+ source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
+ }
}
let originalPic = Cfg.get('originalPic') * 1
- // 获取原消息
- let source
- if (e.isGroup) {
- source = (await e.group.getChatHistory(e.source.seq, 1)).pop()
- } else {
- source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
- }
if (source) {
let imgPath = await redis.get(`miao:original-picture:${source.message_id}`)
if (imgPath) {
@@ -48,17 +52,12 @@ export async function getOriginalPicture (e) {
}
return true
}
- if (source.time) {
- let time = new Date()
- // 对at错图像的增加嘲讽...
- if (time / 1000 - source.time < 3600) {
- e.reply(segment.image(`file://${process.cwd()}/plugins/miao-plugin/resources/common/face/what.jpg`))
- return true
- }
- }
+ // 对at错图像的增加嘲讽...
+ e.reply(segment.image(`file://${process.cwd()}/plugins/miao-plugin/resources/common/face/what.jpg`))
+ return false
}
e.reply('消息太过久远了,俺也忘了原图是啥了,下次早点来吧~')
- return true
+ return false
}
/* #敌人等级 */
diff --git a/components/App.js b/components/App.js
index b96d79cb..e51c4816 100644
--- a/components/App.js
+++ b/components/App.js
@@ -76,13 +76,14 @@ class App {
cls.prototype[key] = async function (e) {
e = this.e || e
+ const self_id = e.self_id || e.bot?.uin || Bot.uin
if (event === 'poke') {
if (e.notice_type === 'group') {
- if (e.target_id !== Bot.uin && !e.isPoke) {
+ if (e.target_id !== self_id && !e.isPoke) {
return false
}
// group状态下,戳一戳的发起人是operator
- if (e.user_id === Bot.uin) {
+ if (e.user_id === self_id) {
e.user_id = e.operator_id
}
}
diff --git a/components/Version.js b/components/Version.js
index ea395dd5..d4222a53 100644
--- a/components/Version.js
+++ b/components/Version.js
@@ -77,11 +77,20 @@ const { changelogs, currentVersion } = readLogFile('miao')
const yunzaiVersion = packageJson.version
const isV3 = yunzaiVersion[0] === '3'
-const isMiao = packageJson.name === 'miao-yunzai'
+let isMiao = false
+let name = "Yunzai-Bot"
+if (packageJson.name === 'miao-yunzai') {
+ isMiao = true
+ name = "Miao-Yunzai"
+} else if (packageJson.name === 'trss-yunzai') {
+ isMiao = true
+ name = "TRSS-Yunzai"
+}
let Version = {
isV3,
isMiao,
+ name,
get version () {
return currentVersion
},
diff --git a/components/common/Render.js b/components/common/Render.js
index 82f8085a..3171602c 100644
--- a/components/common/Render.js
+++ b/components/common/Render.js
@@ -6,7 +6,6 @@ const Render = {
if (!e.runtime) {
console.log('未找到e.runtime,请升级至最新版Yunzai')
}
- let BotName = Version.isMiao ? 'Miao-Yunzai' : 'Yunzai-Bot'
return e.runtime.render('miao-plugin', path, params, {
retType: cfg.retMsgId ? 'msgId' : 'default',
beforeRender ({ data }) {
@@ -30,7 +29,7 @@ const Render = {
sys: {
scale: Cfg.scale(cfg.scale || 1)
},
- copyright: `Created By ${BotName}${Version.yunzai}${pluginName}`,
+ copyright: `Created By ${Version.name}${Version.yunzai}${pluginName}`,
pageGotoParams: {
waitUntil: 'networkidle2'
}