From a4158328510c8b7eb7281b1a07313028f38093dd Mon Sep 17 00:00:00 2001 From: zhaoyingbo Date: Tue, 14 Jan 2025 10:34:50 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E9=9D=9E=E6=B3=95?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E8=BF=87=E6=BB=A4=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E7=A7=81=E8=81=8A=E5=92=8C=E8=89=BE?= =?UTF-8?q?=E7=89=B9=E6=9C=BA=E5=99=A8=E4=BA=BA=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/bot/eventMsg.ts | 12 ++++-------- test/chat/image.http | 4 ++++ 2 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 test/chat/image.http diff --git a/routes/bot/eventMsg.ts b/routes/bot/eventMsg.ts index e762105..172da7b 100644 --- a/routes/bot/eventMsg.ts +++ b/routes/bot/eventMsg.ts @@ -4,19 +4,15 @@ import groupAgent from "../../controller/groupAgent" import createKVTemp from "../../controller/sheet/createKVTemp" import soupAgent from "../../controller/soupAgent" import { Context } from "../../types" -import { isNotP2POrAtBot } from "../../utils/message" +import { isNotP2POrAtBot, isP2POrAtBot } from "../../utils/message" /** * 过滤出非法消息,如果发表情包就直接发回去 * @param {Context} ctx - 上下文数据,包含body, logger和larkService * @returns {boolean} 是否为非法消息 */ -const filterIllegalMsg = async ({ - body, - logger, - larkService, - larkBody, -}: Context): Promise => { +const filterIllegalMsg = async (ctx: Context): Promise => { + const { body, logger, larkService, larkBody } = ctx const { chatId, msgType, msgText } = larkBody // 没有chatId的消息不处理 logger.info(`bot req chatId: ${chatId}`) @@ -42,7 +38,7 @@ const filterIllegalMsg = async ({ } // 非表情包只在私聊或者群聊中艾特机器人时才回复 - else { + else if (isP2POrAtBot(ctx)) { logger.info(`got a illegal message, chatId: ${chatId}`) larkService.message.sendText2Chat( chatId, diff --git a/test/chat/image.http b/test/chat/image.http new file mode 100644 index 0000000..3b92dab --- /dev/null +++ b/test/chat/image.http @@ -0,0 +1,4 @@ +POST http://localhost:3000/bot?app=egg HTTP/1.1 +content-type: application/json + +{"schema":"2.0","header":{"event_id":"c7e0e9d2cd364accaeb59585376e64a2","token":"tV9djUKSjzVnekV7xTg2Od06NFTcsBnj","create_time":"1736850768816","event_type":"im.message.receive_v1","tenant_key":"2ee61fe50f4f1657","app_id":"cli_a1eff35b43b89063"},"event":{"message":{"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","chat_type":"group","content":"{\"image_key\":\"img_v3_02ih_df34945e-4e9c-4ec8-b380-a27aacc29e7l\"}","create_time":"1736850768656","message_id":"om_355702b6e5d794e35a48db68d020098e","message_type":"image","update_time":"1736850768656"},"sender":{"sender_id":{"open_id":"ou_470ac13b8b50fc472d9d8ee71e03de26","union_id":"on_9dacc59a539023df8b168492f5e5433c","user_id":"zhaoyingbo"},"sender_type":"user","tenant_key":"2ee61fe50f4f1657"}}} \ No newline at end of file