feat: 新增通知图片测试命令
This commit is contained in:
36
danding_bot/plugins/danding_qqpush/preview_image_render.py
Normal file
36
danding_bot/plugins/danding_qqpush/preview_image_render.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""预览渲染辅助模块 - 只为超级用户预览命令按插件配置提供渲染器实例。
|
||||
|
||||
放在独立模块里,避免 test_command 反向依赖尚未完成初始化的插件包 __init__;
|
||||
渲染逻辑仍然复用 image_render.ImageRenderer,不在此处重复实现。
|
||||
"""
|
||||
from typing import Optional
|
||||
|
||||
from .config import Config
|
||||
from .image_render import ImageRenderer
|
||||
|
||||
# 渲染器实例缓存:按插件配置构建一次后复用(字体只加载一次)
|
||||
_preview_renderer: Optional[ImageRenderer] = None
|
||||
|
||||
|
||||
def get_preview_renderer(config: Config) -> ImageRenderer:
|
||||
"""
|
||||
获取通知卡片渲染器
|
||||
|
||||
Args:
|
||||
config: 插件配置对象
|
||||
|
||||
Returns:
|
||||
缓存的 ImageRenderer 实例
|
||||
"""
|
||||
global _preview_renderer
|
||||
if _preview_renderer is None:
|
||||
_preview_renderer = ImageRenderer(
|
||||
width=config.ImageWidth,
|
||||
font_size=config.ImageFontSize,
|
||||
padding=config.ImagePadding,
|
||||
line_spacing=config.ImageLineSpacing,
|
||||
bg_color=config.ImageBgColor,
|
||||
text_color=config.ImageTextColor,
|
||||
font_paths=config.FontPaths,
|
||||
)
|
||||
return _preview_renderer
|
||||
Reference in New Issue
Block a user