✨ 功能调用统计使用html截图

This commit is contained in:
HibiKier
2024-08-25 00:02:35 +08:00
parent 1236a938c9
commit 910542f2b5
5 changed files with 94 additions and 5 deletions
@@ -6,6 +6,8 @@ from zhenxun.models.group_console import GroupConsole
from zhenxun.models.group_member_info import GroupInfoUser
from zhenxun.models.plugin_info import PluginInfo
from zhenxun.models.statistics import Statistics
from zhenxun.utils.echart_utils import ChartUtils
from zhenxun.utils.echart_utils.models import Barh
from zhenxun.utils.enum import PluginType
from zhenxun.utils.image_utils import BuildImage, BuildMat, MatType
@@ -114,7 +116,6 @@ class StatisticsManage:
@classmethod
async def __build_image(cls, data_list: list[tuple[str, int]], title: str):
mat = BuildMat(MatType.BARH)
module2count = {x[0]: x[1] for x in data_list}
plugin_info = await PluginInfo.filter(
module__in=module2count.keys(),
@@ -125,7 +126,5 @@ class StatisticsManage:
for plugin in plugin_info:
x_index.append(plugin.name)
data.append(module2count.get(plugin.module, 0))
mat.x_index = x_index
mat.data = data
mat.title = title
return await mat.build()
barh = Barh(data=data, category_data=x_index)
return await ChartUtils.barh(barh)
+24
View File
@@ -0,0 +1,24 @@
from nonebot_plugin_htmlrender import template_to_pic
from zhenxun.configs.path_config import TEMPLATE_PATH
from zhenxun.utils._build_image import BuildImage
from .models import Barh
class ChartUtils:
@classmethod
async def barh(cls, data: Barh) -> BuildImage:
"""横向统计图"""
pic = await template_to_pic(
template_path=str((TEMPLATE_PATH / "bar_chart").absolute()),
template_name="main.html",
templates={"data": data},
pages={
"viewport": {"width": 1000, "height": 500},
"base_url": f"file://{TEMPLATE_PATH}",
},
wait=2,
)
return BuildImage.open(pic)
+9
View File
@@ -0,0 +1,9 @@
from pydantic import BaseModel
class Barh(BaseModel):
category_data: list[str]
"""坐标轴数据"""
data: list[int | float]
"""实际数据"""