From 84f671741b18e9695197bad2abd5066af793ae48 Mon Sep 17 00:00:00 2001 From: zhilv Date: Sun, 3 May 2026 00:51:07 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(command):=20=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=9B=9E=E5=A4=8D=E5=9B=BE=E7=89=87=E6=97=B6=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E6=9C=AC=E5=9C=B0=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 复用 message handler 的 _resolve_url 解析上传文件的相对路径 - 回调返回的 image/video/file url 若为已上传文件则补全为绝对路径 - 修复本地文件名被当作 URL 发送导致识别失败的问题 --- handlers/command.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/handlers/command.py b/handlers/command.py index 86eba47..ada6358 100644 --- a/handlers/command.py +++ b/handlers/command.py @@ -4,7 +4,8 @@ import re import aiohttp -from ..config import COMMAND_CALLBACK_TIMEOUT, COMMAND_CALLBACK_URL, COMMAND_LENGTH_MAX, COMMAND_LENGTH_MIN, COMMAND_PREFIX +from ..config import COMMAND_CALLBACK_TIMEOUT, COMMAND_CALLBACK_URL, COMMAND_LENGTH_MAX, COMMAND_LENGTH_MIN, COMMAND_PREFIX, UPLOAD_DIR +from ..handlers.message import _resolve_url def build_command_pattern() -> re.Pattern: @@ -128,9 +129,9 @@ async def _handle_reply(result: dict, msg_event, api, logger) -> None: if msg_type == "text": text_parts.append(msg.get("msg", "")) elif msg_type == "image": - image_url = msg.get("url") + image_url = _resolve_url(msg.get("url", "")) elif msg_type == "video": - video_url = msg.get("url") + video_url = _resolve_url(msg.get("url", "")) elif msg_type == "file": file_msgs.append(msg) @@ -146,7 +147,7 @@ async def _handle_reply(result: dict, msg_event, api, logger) -> None: await api.qq.post_private_array_msg(user_id=user_id, msg=reply_msg) # 文件单独发 for fm in file_msgs: - url = fm.get("url", "") + url = _resolve_url(fm.get("url", "")) filename = url.split("/")[-1] if group_id: await api.qq.send_group_file(group_id=group_id, file=url, name=filename)