From 6f05c34184d76e02f1813272fdccc2e3d6a4aa62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E5=8F=B6?= Date: Sat, 2 Dec 2023 03:14:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=EF=BC=9A#I8KYEI=20(#331)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/apps/ledger.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/genshin/apps/ledger.js b/plugins/genshin/apps/ledger.js index 6db4162..bda6b75 100644 --- a/plugins/genshin/apps/ledger.js +++ b/plugins/genshin/apps/ledger.js @@ -69,7 +69,6 @@ export class ledger extends plugin { if (!data) return /** 生成图片 */ - let img = await puppeteer.screenshot(`${data.srtempFile}ledgerCount`, data) - if (img) await this.reply(img) + this.renderImg('genshin', `html/ledger/ledger-count-${data.game}`, data) } } From bf55a5119fd22b449fdd99d5254a2178080d4d3e Mon Sep 17 00:00:00 2001 From: Micuks <43397551+Micuks@users.noreply.github.com> Date: Wed, 6 Dec 2023 04:27:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=9F=A5=E7=9C=8B=E8=A1=A8?= =?UTF-8?q?=E6=83=85=E6=B7=BB=E5=8A=A0=E8=80=85=20(#328)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 查看表情添加者 * feat: 在转发消息中对图片表情直接显示图片; 修改触发词为#查询表情 --- plugins/system/add.js | 114 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 105 insertions(+), 9 deletions(-) diff --git a/plugins/system/add.js b/plugins/system/add.js index 5bfec4a..5a6cdb7 100644 --- a/plugins/system/add.js +++ b/plugins/system/add.js @@ -31,12 +31,16 @@ export class add extends plugin { fnc: 'getText', log: false }, + { + reg: '^#+(全局)?(?:查看|查询)(?:表情|词条)(.+)$', + fnc: 'faceDetail' + }, { reg: '#(全局)?(表情|词条)(.*)', fnc: 'list' - } - ] - }) + }, + ], + }); this.path = './data/textJson/' this.facePath = './data/face/' @@ -246,16 +250,23 @@ export class add extends plugin { this.finish('addContext') for (let i in message) { - if (message[i].type == 'at') { + if (message[i].type == "at") { if (message[i].qq == this.e.bot.uin) { - this.e.reply('添加内容不能@机器人!') - return + this.e.reply("添加内容不能@机器人!"); + return; } } - if (message[i].type == 'file') { - this.e.reply('添加错误:禁止添加文件') - return + if (message[i].type == "file") { + this.e.reply("添加错误:禁止添加文件"); + return; } + + // 保存用户信息用于追溯添加者 + message[i].from_user = { + card: this.e.sender.card, + nickname: this.e.sender.nickname, + user_id: this.e.sender.user_id, + }; } if (message.length == 1 && message[0].type == 'image') { @@ -790,4 +801,89 @@ export class add extends plugin { return msg } + + async faceDetail () { + if (!this.e.message) return false + this.isGlobal = false + await this.getGroupId() + if (!this.group_id) return false + let faceDetailReg = /^#+(全局)?(?:查看|查询)(?:表情|词条)(.+)$/ + let regGroup = faceDetailReg.exec(this.e.msg) + let keyWord + if (regGroup[1]) { + this.isGlobal = true + } + keyWord = regGroup[2].trim() + + if (keyWord === '') return + + this.initTextArr() + this.initGlobalTextArr() + + let faces = textArr[this.group_id].get(keyWord) || [] + let globalfaces = textArr[this.e.bot.uin].get(keyWord) || [] + faces = [...faces, ...globalfaces] + /** + * faces example: + * [ + [ + { + "type": "text", + "text": "口了", + "from_user": { + "card": 123, + "nickname": "test", + "user_id": 456 + } + } + ], + [ + { + "type": "text", + "text": "口" + } + ] + ] + */ + + if (lodash.isEmpty(faces)) { + await this.e.reply(`表情${keyWord}不存在`) + return + } + + + // process faces into replyArr in type: + let replyArr = [] + for (let i = 0; i < faces.length; i++) { + let face = faces[i] + let faceItem = face[0] + let fromUser = faceItem?.from_user + if (fromUser) { + fromUser = `添加者: ${fromUser.card}(${fromUser.nickname})[${fromUser.user_id}]` + } else { + fromUser = '未知' + } + let faceContent + console.log(faceItem) + if (faceItem.type === 'image') { + // face is an image + let tmp = segment.image(faceItem.local) + tmp.asface = faceItem.asface + faceContent = tmp + replyArr.push(`${i + 1}、${fromUser}`) + replyArr.push(faceContent) + } else { + faceContent = `${faceItem.text}` + replyArr.push(`${i + 1}、${fromUser}: ` + faceContent) + } + } + + if (lodash.isEmpty(replyArr)) { + return + } + + let forwardMsg = await common.makeForwardMsg(this.e, replyArr, `表情${keyWord}详情`) + + this.e.reply(forwardMsg) + } }