forked from mttu-developers/konabot
80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
from typing import Optional
|
||
from nonebot_plugin_alconna import Alconna, Args, UniMessage, UniMsg, on_alconna
|
||
from konabot.common.web_render import WebRenderer
|
||
from nonebot.adapters import Event as BaseEvent
|
||
from playwright.async_api import Page
|
||
|
||
async def continue_handle(page: Page, content: str) -> None:
|
||
# 这里可以添加一些预处理逻辑
|
||
# 找到 id 为 input 的 textarea 元素
|
||
textarea = await page.query_selector("#input")
|
||
if textarea:
|
||
# 在 textarea 中输入内容
|
||
await textarea.fill(content)
|
||
# 找到 id 为 submit-btn 的按钮元素
|
||
submit_button = await page.query_selector("#submit-btn")
|
||
if submit_button:
|
||
# 点击按钮提交
|
||
await submit_button.click()
|
||
|
||
evt = on_alconna(
|
||
Alconna(
|
||
f"生成喜报",
|
||
Args["content?", str]
|
||
),
|
||
use_cmd_start=True,
|
||
use_cmd_sep=False,
|
||
skip_for_unmatch=True,
|
||
)
|
||
@evt.handle()
|
||
async def _(msg: UniMsg, event: BaseEvent, content: Optional[str] = ""):
|
||
|
||
screenshot = await WebRenderer.render(
|
||
url="https://witnessbot.mxowl.com/services/congratulations/",
|
||
target="#main-canvas",
|
||
other_function=lambda page: continue_handle(page, content),
|
||
timeout=30
|
||
)
|
||
await evt.send(
|
||
await UniMessage().image(raw=screenshot).export()
|
||
)
|
||
|
||
async def beibao_continue_handle(page: Page, content: str) -> None:
|
||
# 这里可以添加一些预处理逻辑
|
||
# 找到 id 为 input 的 textarea 元素
|
||
textarea = await page.query_selector("#input")
|
||
if textarea:
|
||
# 在 textarea 中输入内容
|
||
await textarea.fill(content)
|
||
# 找到 class 为 btn btn-outline-primary,for属性为 mode-2 的标签元素
|
||
mode_radio = await page.query_selector("label.btn.btn-outline-primary[for='mode-2']")
|
||
if mode_radio:
|
||
# 点击选择悲报模式
|
||
await mode_radio.click()
|
||
# 找到 id 为 submit-btn 的按钮元素
|
||
submit_button = await page.query_selector("#submit-btn")
|
||
if submit_button:
|
||
# 点击按钮提交
|
||
await submit_button.click()
|
||
|
||
evt = on_alconna(
|
||
Alconna(
|
||
f"生成悲报",
|
||
Args["content?", str]
|
||
),
|
||
use_cmd_start=True,
|
||
use_cmd_sep=False,
|
||
skip_for_unmatch=True,
|
||
)
|
||
@evt.handle()
|
||
async def _(msg: UniMsg, event: BaseEvent, content: Optional[str] = ""):
|
||
|
||
screenshot = await WebRenderer.render(
|
||
url="https://witnessbot.mxowl.com/services/congratulations/",
|
||
target="#main-canvas",
|
||
other_function=lambda page: beibao_continue_handle(page, content),
|
||
timeout=30
|
||
)
|
||
await evt.send(
|
||
await UniMessage().image(raw=screenshot).export()
|
||
) |