Files
konabot/konabot/plugins/k8x12S/__init__.py
passthem 36a564547c
All checks were successful
continuous-integration/drone/push Build is passing
不回复
2025-12-31 15:21:18 +08:00

47 lines
1.2 KiB
Python

import re
from nonebot import on_message
from nonebot.rule import StartswithRule
from nonebot_plugin_alconna import At, Text, UniMessage, UniMsg
from konabot.common.longtask import DepLongTaskTarget
from konabot.common.web_render import konaweb
from konabot.common.web_render.core import WebRenderer
evt = on_message(rule=StartswithRule(("k8x12s",), True))
rule = re.compile(r"^[kK]8[xX]12[sS] ?(.+)$")
@evt.handle()
async def _(msg: UniMsg, target: DepLongTaskTarget):
if len(msg.include(Text, At)) != len(msg):
return
text = msg.extract_plain_text()
result = re.match(rule, text)
if result is None:
return
obj: str | None = result.group(1)
if obj is None:
return
img = await render_with_web_renderer(obj)
await target.send_message(UniMessage.image(raw=img), at=False)
async def render_with_web_renderer(text: str) -> bytes:
async def page_function(page):
await page.wait_for_selector('textarea[name=content]')
await page.locator('textarea[name=content]').fill(text)
out = await WebRenderer.render_with_persistent_page(
"markdown_renderer",
konaweb('k8x12S'),
target='#main',
other_function=page_function,
)
return out