import traceback from nonebot.typing import T_State from typing import Optional from .acgnapis import * from nonebot_plugin_htmlrender import template_to_pic from nonebot_plugin_alconna import on_alconna from nonebot_plugin_alconna.uniseg import UniMessage from arclet.alconna import Alconna, Args from .config import RES_PATH, TEMPLATE_NAME, config from .util import * from .__init__ import __plugin_meta__ showcmd = on_alconna( Alconna( "展览", Args["region?", str]["page?", int]["date?", str], ) ) showcmd.shortcut( r"(?P.+?)展览\s*(?P\d+)?\s*(?P.+)?", { "prefix": True, "command": "展览", "args": ["{region}", "{page}", "{date}"], }, ) @showcmd.handle() async def find_show( region: Optional[str] = None, page: Optional[int] = None, date: Optional[str] = None, ): if not region: await UniMessage(__plugin_meta__.usage).send() return if not page: page = 1 if not date: date = "" regions_dict = await get_regions_dict() regionid = regions_dict.get(region, None) if regionid == None: await UniMessage("地区未寻得或输入格式错误").send() return # await showcmd.send("日期:"+ date) shows = await get_shows_data(regionid, page=page, pagesize=config.acgnshow_pagesize) # print(shows) try: shows_data = process_shows_data_to_template(shows) template = { "shows": shows_data[0], "bgimage": choose_random_bgimage(), "global_data": shows_data[1], } pic = await template_to_pic(str(RES_PATH), TEMPLATE_NAME, template) except Exception as e: await UniMessage("图片生成时产生未知错误").send() traceback.print_exc() return await UniMessage.image(raw=pic).send()