⚗️ 状态原图

This commit is contained in:
yeyang
2024-05-09 15:17:41 +08:00
parent 7137001d05
commit b90c949c5d
2 changed files with 33 additions and 6 deletions

View File

@@ -29,14 +29,14 @@ Bot.on?.("request", async(e) => {
if (cfg.other.autoQuit <= 0) {
msg.push("----------------\n可引用该消息回复\"同意\"或\"拒绝\"")
} else {
msg.push("自动处理该邀请")
msg.push("Tip已被 Yunzai 自动处理")
}
break
case "add":
if (Config.groupAdd.openGroup.includes(e.group_id)) {
let msg = [
`${Config.groupAdd.msg}\n`,
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
`${Config.groupAdd.msg}\n`,
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${e.user_id}`),
`QQ号${e.user_id}\n`,
`昵称:${e.nickname}\n`,
`${e.comment}`

View File

@@ -12,7 +12,7 @@ export class NewState extends plugin {
super({
name: "椰奶状态",
event: "message",
priority: 50,
priority: -1000,
rule: [
{
reg: "^#?(椰奶)?状态(pro)?$",
@@ -20,10 +20,14 @@ export class NewState extends plugin {
}, {
reg: "^#椰奶监控$",
fnc: "monitor"
}, {
reg: "^#?原图$",
fnc: "origImg"
}
]
})
this.redisOrigImgKey = "yenai:state:origImg:"
}
async monitor(e) {
@@ -49,12 +53,18 @@ export class NewState extends plugin {
let data = await getData(e)
// 渲染图片
await puppeteer.render("state/index", {
let retMsgId = await puppeteer.render("state/index", {
...data
}, {
e,
scale: 1.4
scale: 1.4,
retMsgId: true
})
console.log(retMsgId)
if (retMsgId) {
const redisData = data.style.backdrop
redis.set(this.redisOrigImgKey + retMsgId.message_id, redisData, { EX: 86400 })
}
} catch (error) {
logger.error(error)
interval = false
@@ -62,4 +72,21 @@ export class NewState extends plugin {
interval = false
}
async origImg(e) {
if (!e.source) return false
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()
}
const data = await redis.get(this.redisOrigImgKey + source.message_id)
if (!data) return false
let url = data
.replace("data:image/jpeg;base64,", "base64://")
.replace("../../../../../", "")
e.reply(segment.image(url))
return true
}
}