添加渲染错误信息为图片

This commit is contained in:
2026-02-25 16:11:23 +08:00
parent 27841b8422
commit 91769f93ae
2 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,34 @@
from typing import Any
from loguru import logger
from nonebot_plugin_alconna import UniMessage
import playwright.async_api
from playwright.async_api import Page
from konabot.common.web_render import WebRenderer, konaweb
async def render_error_message(message: str) -> UniMessage[Any]:
"""
渲染文本消息为错误信息图片。
如果无法访达 Web 端则返回纯文本给用户。
"""
async def page_function(page: Page):
await page.wait_for_function("typeof setContent === 'function'", timeout=1000)
await page.evaluate(
"""(message) => {return setContent(message);}""",
message,
)
try:
img_data = await WebRenderer.render(
url=konaweb("error_report"),
target="#main",
other_function=page_function,
)
return UniMessage.image(raw=img_data)
except playwright.async_api.Error as e:
logger.warning(f"渲染报错信息图片时出错了,回退到文本 ERR={e}")
return UniMessage.text(message)