zhenxun_bot/zhenxun/builtin_plugins/plugin_store/models.py

44 lines
973 B
Python

from nonebot.compat import model_dump
from pydantic import BaseModel
from zhenxun.utils.enum import PluginType
type2name: dict[str, str] = {
"NORMAL": "普通插件",
"ADMIN": "管理员插件",
"SUPERUSER": "超级用户插件",
"ADMIN_SUPERUSER": "管理员/超级用户插件",
"DEPENDANT": "依赖插件",
"HIDDEN": "其他插件",
}
class StorePluginInfo(BaseModel):
"""插件信息"""
module: str
"""模块名"""
module_path: str
"""模块路径"""
description: str
"""简介"""
usage: str
"""用法"""
author: str
"""作者"""
version: str
"""版本"""
plugin_type: PluginType
"""插件类型"""
is_dir: bool
"""是否为文件夹插件"""
github_url: str | None = None
"""github链接"""
@property
def plugin_type_name(self):
return type2name[self.plugin_type.value]
def to_dict(self, **kwargs):
return model_dump(self, **kwargs)