This commit is contained in:
10
konabot/docs/user/k8x12S.txt
Normal file
10
konabot/docs/user/k8x12S.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# 指令介绍
|
||||||
|
|
||||||
|
根据文字生成 k8x12S
|
||||||
|
|
||||||
|
> 「现在还不知道k8x12S是什么的可以开除界隈籍了」—— Louis, 2025/12/31
|
||||||
|
|
||||||
|
## 使用指南
|
||||||
|
|
||||||
|
`k8x12S 安心をしてください`
|
||||||
|
|
||||||
46
konabot/plugins/k8x12S/__init__.py
Normal file
46
konabot/plugins/k8x12S/__init__.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
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))
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
@ -12,5 +12,8 @@ def filter(change: Change, path: str) -> bool:
|
|||||||
return False
|
return False
|
||||||
if Path(path).absolute().is_relative_to((base / ".git").absolute()):
|
if Path(path).absolute().is_relative_to((base / ".git").absolute()):
|
||||||
return False
|
return False
|
||||||
|
if Path(path).absolute().is_relative_to((base / "assets" / "oracle" / "image").absolute()):
|
||||||
|
# 还要解决坏枪的这个问题
|
||||||
|
return False
|
||||||
print(path)
|
print(path)
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user