fix(qqpush): 支持无@群图片推送
This commit is contained in:
@@ -42,14 +42,14 @@ class MessageSender:
|
||||
|
||||
return None
|
||||
|
||||
async def _send_msg(self, group_id: int, qq: int, segment) -> dict:
|
||||
async def _send_msg(self, group_id: int, segment, qq: Optional[int] = None) -> dict:
|
||||
"""
|
||||
内部通用发送方法(@用户 + 任意消息段)
|
||||
内部通用发送方法(可选 @ 用户 + 任意消息段)
|
||||
|
||||
Args:
|
||||
group_id: 群号
|
||||
qq: 要 @ 的 QQ 号
|
||||
segment: MessageSegment 实例
|
||||
segment: MessageSegment 实例
|
||||
qq: 可选的要 @ QQ 号;未传时仅发送消息段
|
||||
|
||||
Returns:
|
||||
发送结果字典
|
||||
@@ -59,9 +59,10 @@ class MessageSender:
|
||||
raise ValueError("Bot 实例未设置,无法发送消息")
|
||||
|
||||
try:
|
||||
message = Message()
|
||||
message.append(MessageSegment.at(qq))
|
||||
message.append(segment)
|
||||
message = Message()
|
||||
if qq is not None:
|
||||
message.append(MessageSegment.at(qq))
|
||||
message.append(segment)
|
||||
|
||||
result = await bot.call_api(
|
||||
"send_group_msg",
|
||||
@@ -73,16 +74,16 @@ class MessageSender:
|
||||
return {"success": True, "data": result, "message": "消息发送成功"}
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"[QqPush] 消息发送失败 group={group_id} qq={qq}: {e}")
|
||||
logger.warning(f"[QqPush] 消息发送失败 group={group_id} qq={qq}: {e}")
|
||||
return {"success": False, "error": str(e), "message": f"消息发送失败: {e}"}
|
||||
|
||||
async def send_to_group(self, group_id: int, qq: int, image_base64: str) -> dict:
|
||||
"""向指定群发送消息(@用户 + 图片)"""
|
||||
return await self._send_msg(group_id, qq, MessageSegment.image(image_base64))
|
||||
async def send_to_group(self, group_id: int, image_base64: str, qq: Optional[int] = None) -> dict:
|
||||
"""向指定群发送图片,可选择 @ 成员。"""
|
||||
return await self._send_msg(group_id, MessageSegment.image(image_base64), qq)
|
||||
|
||||
async def send_text_to_group(self, group_id: int, qq: int, text: str) -> dict:
|
||||
"""向指定群发送纯文本消息(@用户 + 文本)"""
|
||||
return await self._send_msg(group_id, qq, MessageSegment.text(text))
|
||||
async def send_text_to_group(self, group_id: int, text: str, qq: Optional[int] = None) -> dict:
|
||||
"""向指定群发送纯文本消息,可选择 @ 成员。"""
|
||||
return await self._send_msg(group_id, MessageSegment.text(text), qq)
|
||||
|
||||
|
||||
# 全局消息发送器实例
|
||||
|
||||
Reference in New Issue
Block a user