This commit is contained in:
80
konabot/plugins/xibao_generate/__init__.py
Normal file
80
konabot/plugins/xibao_generate/__init__.py
Normal file
@ -0,0 +1,80 @@
|
||||
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()
|
||||
)
|
||||
Reference in New Issue
Block a user