perf+fix(danding_qqpush): perf优化+安全修复+代码DRY

- image_render: cached draw object, font.getlength() 替代逐字符创建临时Image
- image_render: 移除PNG无效的quality参数
- api.py: ImageRenderer单例复用(避免每请求重载字体)
- api.py: 异常详情不再泄露到API响应
- sender.py: 提取_send_msg()消除重复代码
This commit is contained in:
2026-05-09 23:46:44 +08:00
parent b444bd62f5
commit f240ba2882
3 changed files with 235 additions and 291 deletions

View File

@@ -8,6 +8,9 @@ from nonebot import get_driver, logger
from .config import Config
from .text_parser import TextParser
from .image_render import ImageRenderer
# Module-level singleton: load font once, reuse across requests
_renderer = _renderer # reuse module-level singleton
from .sender import sender
@@ -134,10 +137,10 @@ def create_routes(token: str, config: Config):
raise
except Exception as e:
logger.exception(f"推送接口异常: {str(e)}")
logger.exception(f"推送接口异常: {e}")
raise HTTPException(
status_code=500,
detail=f"服务器内部错误: {str(e)}"
detail="服务器内部错误"
)
return router