feat(bym): 加个表情包开关

This commit is contained in:
ycxom 2024-12-31 19:01:08 +08:00
parent 077e7e7d59
commit db3c7b55e9
3 changed files with 20 additions and 7 deletions

View file

@ -156,8 +156,13 @@ export class bym extends plugin {
const base64Image = Buffer.from(await response.arrayBuffer()) const base64Image = Buffer.from(await response.arrayBuffer())
opt.image = base64Image.toString('base64') opt.image = base64Image.toString('base64')
} }
const picturesPath = pathModule.join(path, 'pictures'); const picturesPath = pathModule.join(path, 'pictures');
const fileImgList = await fs.promises.readdir(picturesPath); const ImgList = await fs.promises.readdir(picturesPath);
const fileImgList = ImgList.map(filename => {
const match = filename.match(/\d{12}-(.+)$/);
return match ? match[1] : filename;
});
let ForRole = ALLRole let ForRole = ALLRole
if (opt.image && !IsAtBot && !NotToImg && !e.at && Config.AutoToDownImg) { if (opt.image && !IsAtBot && !NotToImg && !e.at && Config.AutoToDownImg) {
@ -265,11 +270,12 @@ export class bym extends plugin {
\n你的回复应该尽可能简练像人类一样随意不要附加任何奇怪的东西如聊天记录的格式比如${Config.assistantLabel}禁止重复聊天记录 \n你的回复应该尽可能简练像人类一样随意不要附加任何奇怪的东西如聊天记录的格式比如${Config.assistantLabel}禁止重复聊天记录
注意当前时间与日期为${DateTime}星期${Dateday},24小时制时区已正确不要被日志的时间与其他时间搞混了如果有人咨询时间就使用${DateTime}星期${Dateday}这个时间群友与你几乎在一个时区若有人说或做的事情与时间段不合理反驳他注意除了他声明了自己的时区 注意当前时间与日期为${DateTime}星期${Dateday},24小时制时区已正确不要被日志的时间与其他时间搞混了如果有人咨询时间就使用${DateTime}星期${Dateday}这个时间群友与你几乎在一个时区若有人说或做的事情与时间段不合理反驳他注意除了他声明了自己的时区
以下是可用的表情包列表 以下是可用的表情包列表
${fileImgList} ${fileImgList}`+
如果要发送表情包请根据该格式 GETIMG: 完整表情包名称实例 GETIMG: 241224173112-挠头-718028518.gif 即可发送注意发送完整名称 ImgList.length > 0 && Config.AutoToDownImg ?`
可根据聊天选择表情包发送禁止发送多余的格式与说明发送格式为 注意前面不需要换行 GETIMG: 241224173112-挠头-718028518.gif 不需要换行 如果要发送表情包请根据该格式 GETIMG: 完整表情包名称实例 GETIMG: 挠头-718028518.gif 即可发送注意发送完整名称
可根据聊天选择表情包发送禁止发送多余的格式与说明发送格式为 注意前面不需要换行 GETIMG: 挠头-718028518.gif 不需要换行
不要被日志和其他聊天消息的格式迷惑请保持标准格式禁止发送[表情包xxx][图片]!!!禁止发送[表情包xxx][图片]!!! 不要被日志和其他聊天消息的格式迷惑请保持标准格式禁止发送[表情包xxx][图片]!!!禁止发送[表情包xxx][图片]!!!
` ` : ''
if (!Role) { if (!Role) {
logger.error(`Role配置有误请检查,将使用默认Role`) logger.error(`Role配置有误请检查,将使用默认Role`)
return await SearchRole('default') return await SearchRole('default')

View file

@ -981,7 +981,7 @@ export function supportGuoba () {
}, },
{ {
field: 'bymRate', field: 'bymRate',
label: '伪人模式触发概率,单位为%', label: '伪人模式触发默认概率,单位为%',
component: 'InputNumber', component: 'InputNumber',
componentProps: { componentProps: {
min: 0, min: 0,
@ -993,6 +993,12 @@ export function supportGuoba () {
label: '伪人模式的额外预设', label: '伪人模式的额外预设',
component: 'Input' component: 'Input'
}, },
{
field: 'AutoToDownImg',
label: '伪人模式的表情包',
bottomHelpMessage: '伪人模式的表情包,主动收藏发送,注意将下载到本地',
component: 'Switch'
},
{ {
field: 'bymFuckPrompt', field: 'bymFuckPrompt',
label: '伪人模式骂人反击的设定词', label: '伪人模式骂人反击的设定词',

View file

@ -40,7 +40,8 @@ export async function getToimg(e, tag) {
logger.warn(`未找到匹配的表情包: ${sanitizedTag}`); logger.warn(`未找到匹配的表情包: ${sanitizedTag}`);
return; return;
} }
const selectedFile = matchedFiles[0]; // 随机选择一个文件
const selectedFile = matchedFiles[Math.floor(Math.random() * matchedFiles.length)];
const picPath = pathModule.join(picturesPath, selectedFile); const picPath = pathModule.join(picturesPath, selectedFile);
try { try {
await fs.promises.access(picPath); await fs.promises.access(picPath);