1.新增私聊接口2.新增.talk指令
This commit is contained in:
@@ -135,3 +135,40 @@ def get_message_sender() -> MessageSender:
|
||||
_sender_instance.webhook_url = GetWebhookURL()
|
||||
return _sender_instance
|
||||
|
||||
|
||||
async def send_private_message(user_id: int, content: str, msg_type: str = 'text') -> bool:
|
||||
"""发送私聊消息到用户个人webhook URL
|
||||
|
||||
Args:
|
||||
user_id: 目标用户ID
|
||||
content: 消息内容
|
||||
msg_type: 消息类型 ('text' 或 'markdown')
|
||||
|
||||
Returns:
|
||||
是否发送成功,如果用户没有个人URL则返回False
|
||||
"""
|
||||
from core.database import get_db
|
||||
|
||||
# 从数据库获取用户webhook URL
|
||||
db = get_db()
|
||||
webhook_url = db.get_user_webhook_url(user_id)
|
||||
|
||||
if not webhook_url:
|
||||
logger.warning(f"用户 {user_id} 没有注册个人webhook URL,无法发送私聊消息")
|
||||
return False
|
||||
|
||||
# 创建MessageSender实例(使用用户的个人URL)
|
||||
sender = MessageSender(webhook_url=webhook_url)
|
||||
|
||||
try:
|
||||
# 根据msg_type调用相应方法
|
||||
if msg_type == 'markdown':
|
||||
return await sender.send_markdown(content)
|
||||
else:
|
||||
return await sender.send_text(content)
|
||||
except Exception as e:
|
||||
logger.error(f"发送私聊消息失败: user_id={user_id}, error={e}", exc_info=True)
|
||||
return False
|
||||
finally:
|
||||
# 关闭HTTP客户端
|
||||
await sender.close()
|
||||
|
||||
Reference in New Issue
Block a user