From 3e70ae88dc5ba453d48a3e1d931633f08e305f83 Mon Sep 17 00:00:00 2001 From: ycxom Date: Tue, 31 Dec 2024 13:34:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(bym):=20=E6=B7=BB=E5=8A=A0=20SerpTool=20?= =?UTF-8?q?=E5=B9=B6=E5=A2=9E=E5=BC=BA=20EditCardTool=20=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 SerpTool,用于处理搜索结果 - 在 bym 插件中根据配置条件动态加载 SerpTool - 更新 EditCardTool,增加管理员权限验证功能 --- apps/bym.js | 5 +++++ utils/tools/EditCardTool.js | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/bym.js b/apps/bym.js index 0e850ca..8d5bffa 100644 --- a/apps/bym.js +++ b/apps/bym.js @@ -16,6 +16,8 @@ import { EditCardTool } from '../utils/tools/EditCardTool.js' import { JinyanTool } from '../utils/tools/JinyanTool.js' import { KickOutTool } from '../utils/tools/KickOutTool.js' import { SetTitleTool } from '../utils/tools/SetTitleTool.js' +import {SerpTool} from '../utils/tools/SerpTool.js' + import fs from "fs"; import { fileTypeFromBuffer } from 'file-type'; import moment from 'moment'; @@ -275,6 +277,9 @@ export class bym extends plugin { new WebsiteTool(), new WeatherTool() ] + if (Config.azSerpKey) { + tools.push(new SerpTool()) + } if (e.group.is_admin || e.group.is_owner) { tools.push(new EditCardTool()) tools.push(new JinyanTool()) diff --git a/utils/tools/EditCardTool.js b/utils/tools/EditCardTool.js index 597eb5e..a8b6364 100644 --- a/utils/tools/EditCardTool.js +++ b/utils/tools/EditCardTool.js @@ -24,7 +24,7 @@ export class EditCardTool extends AbstractTool { description = 'Useful when you want to edit someone\'s card in the group(群名片)' func = async function (opts, e) { - let { qq, card, groupId } = opts + let { qq, card, groupId, isAdmin } = opts qq = isNaN(qq) || !qq ? e.sender.user_id : parseInt(qq.trim()) groupId = isNaN(groupId) || !groupId ? e.group_id : parseInt(groupId.trim()) @@ -41,7 +41,11 @@ export class EditCardTool extends AbstractTool { logger.error('获取群信息失败,可能使用的底层协议不完善') } logger.info('edit card: ', groupId, qq) - await group.setCard(qq, card) + if (isAdmin) { + await group.setCard(qq, card) + } else { + return 'the user is not admin, he can\'t edit card of other people.' + } return `the user ${qq}'s card has been changed into ${card}` } }