fix(qqpush): 支持无@群图片推送
This commit is contained in:
@@ -3,16 +3,16 @@ from fastapi import APIRouter, Request, HTTPException
|
||||
from pydantic import BaseModel
|
||||
import asyncio
|
||||
from typing import Optional
|
||||
from nonebot import get_driver, logger
|
||||
from nonebot import logger
|
||||
|
||||
from .config import Config
|
||||
from .text_parser import TextParser
|
||||
from .image_render import ImageRenderer
|
||||
from .sender import sender
|
||||
from .utils import validate_token
|
||||
|
||||
# Module-level singleton: load font once, reuse across requests
|
||||
_renderer: Optional['ImageRenderer'] = None
|
||||
from .sender import sender
|
||||
|
||||
# Module-level singleton: load font once, reuse across requests
|
||||
_renderer: Optional['ImageRenderer'] = None
|
||||
|
||||
def _get_renderer(config: Config) -> 'ImageRenderer':
|
||||
global _renderer
|
||||
@@ -36,8 +36,8 @@ class PushRequest(BaseModel):
|
||||
group_id: int
|
||||
"""接收消息的 QQ 群号"""
|
||||
|
||||
qq: int
|
||||
"""被 @ 的 QQ 号"""
|
||||
qq: Optional[int] = None
|
||||
"""可选的被 @ QQ 号;未传时仅发送群消息"""
|
||||
|
||||
text: str
|
||||
"""通知文本(# 表示换行)"""
|
||||
@@ -89,10 +89,7 @@ def create_routes(token: str, config: Config):
|
||||
if not data.group_id:
|
||||
raise HTTPException(status_code=400, detail="group_id 不能为空")
|
||||
|
||||
if not data.qq:
|
||||
raise HTTPException(status_code=400, detail="qq 不能为空")
|
||||
|
||||
if not data.text or not isinstance(data.text, str):
|
||||
if not data.text or not isinstance(data.text, str):
|
||||
raise HTTPException(status_code=400, detail="text 不能为空且必须是字符串")
|
||||
|
||||
# 2. 检查 Bot 是否在线
|
||||
@@ -117,10 +114,10 @@ def create_routes(token: str, config: Config):
|
||||
logger.info("图片生成成功")
|
||||
|
||||
# 5. 发送消息
|
||||
send_result = await sender.send_to_group(
|
||||
group_id=data.group_id,
|
||||
qq=data.qq,
|
||||
image_base64=image_base64
|
||||
send_result = await sender.send_to_group(
|
||||
group_id=data.group_id,
|
||||
image_base64=image_base64,
|
||||
qq=data.qq,
|
||||
)
|
||||
|
||||
if not send_result["success"]:
|
||||
|
||||
Reference in New Issue
Block a user