🐛 fix(command): 回调回复图片时解析本地文件路径
- 复用 message handler 的 _resolve_url 解析上传文件的相对路径 - 回调返回的 image/video/file url 若为已上传文件则补全为绝对路径 - 修复本地文件名被当作 URL 发送导致识别失败的问题
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user