添加 krg 表情差分
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-03-02 13:50:09 +08:00
parent f7cea196ec
commit f6601f807a

View File

@ -9,7 +9,7 @@ from konabot.common.nb import match_keyword
from konabot.common.web_render import WebRenderer, konaweb from konabot.common.web_render import WebRenderer, konaweb
async def render_image(message: str) -> UniMessage[Any]: async def render_image(message: str, style: str = 'say') -> UniMessage[Any]:
""" """
渲染文本为图片 渲染文本为图片
""" """
@ -17,8 +17,8 @@ async def render_image(message: str) -> UniMessage[Any]:
async def page_function(page: Page): async def page_function(page: Page):
await page.wait_for_function("typeof setContent === 'function'") await page.wait_for_function("typeof setContent === 'function'")
await page.evaluate( await page.evaluate(
"(message) => { return setContent(message); }", "([ message, style ]) => { return setContent(message, style); }",
message, [ message, style ],
) )
img_data = await WebRenderer.render( img_data = await WebRenderer.render(
@ -29,15 +29,22 @@ async def render_image(message: str) -> UniMessage[Any]:
return UniMessage.image(raw=img_data) return UniMessage.image(raw=img_data)
ALLOWED_STYLE = { "say", "cry", "hungry", "blush" }
cmd = on_message( cmd = on_message(
rule=match_keyword.match_keyword( rule=match_keyword.match_keyword(
re.compile(r"^[kK][rR][gG][sS][aA][yY] .+"), re.compile(r"^krg(" + '|'.join(ALLOWED_STYLE) + r")\s.+", re.I),
), ),
) )
@cmd.handle() @cmd.handle()
async def _(event: Event, msg: UniMsg): async def _(event: Event, msg: UniMsg):
text = msg.extract_plain_text().strip()[6:].strip() text = msg.extract_plain_text().lstrip()
msg = await render_image(text) command, content = text.split(maxsplit=1)
style = command.removeprefix("krg").lower()
if style not in ALLOWED_STYLE:
style = 'say'
msg = await render_image(content, style)
await msg.send(event) await msg.send(event)