在请求中使用异步代替同步防止进程阻塞,优化部分代码样式

This commit is contained in:
2024-08-15 18:22:24 +08:00
parent b5525ce662
commit fc5931bf33
6 changed files with 161 additions and 82 deletions

View File

@ -1,3 +1,5 @@
import traceback
from nonebot.typing import T_State
from typing import Optional
from .acgnapis import *
@ -8,6 +10,7 @@ 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(
"展览",
@ -17,37 +20,37 @@ showcmd = on_alconna(
showcmd.shortcut(
r"(?P<region>.+?)展览\s*(?P<page>\d+)?\s*(?P<date>.+)?",
{
"prefix": True,
"command": "展览",
"args": ["{region}", "{page}", "{date}"],
"prefix" : True,
"command": "展览",
"args" : ["{region}", "{page}", "{date}"],
}
)
@showcmd.handle()
async def find_show(
state: T_State, region: Optional[str] = None, page: Optional[int] = None, date: Optional[str] = None,
region: Optional[str] = None, page: Optional[int] = None, date: Optional[str] = None,
):
if not region: await UniMessage(__plugin_meta__.usage).send() ; return
if not region: await UniMessage(__plugin_meta__.usage).send(); return
if not page: page = 1
if not date: date = ""
regions_dict = get_regions_dict()
regionid = regions_dict.get(region,None)
if regionid == None: await UniMessage("不支持此地区").send() ; return
#await showcmd.send("日期:"+ date)
shows = get_shows_data(regionid,page=page,pagesize=config.acgnshow_pagesize)
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:
showsdata = process_shows_data_to_template(shows)
shows_data = process_shows_data_to_template(shows)
template = {
"shows": showsdata[0],
"bgimage": choose_random_bgimage(),
"global_data": showsdata[1]
}
pic = await template_to_pic(RES_PATH,TEMPLATE_NAME,template)
except:
"shows" : shows_data[0],
"bgimage" : choose_random_bgimage(),
"global_data": shows_data[1]
}
pic = await template_to_pic(RES_PATH, TEMPLATE_NAME, template)
except Exception as e:
await UniMessage("发生错误").send()
traceback.print_exc()
return
# print(pic)
# a = Image.open(io.BytesIO(pic))
# a.save("template2pic.png", format="PNG")
await UniMessage.image(pic).send()
await UniMessage.image(raw=pic).send()