Files
AstrBot/astrbot/core/plugin/plugin.py
T
2024-11-27 15:04:30 +08:00

43 lines
949 B
Python

from enum import Enum
from types import ModuleType
from typing import List
from dataclasses import dataclass
@dataclass
class PluginMetadata:
'''
插件的元数据。
'''
# required
plugin_name: str
author: str # 插件作者
desc: str # 插件简介
version: str # 插件版本
# optional
repo: str = None # 插件仓库地址
def __str__(self) -> str:
return f"PluginMetadata({self.plugin_name}, {self.desc}, {self.version}, {self.repo})"
@dataclass
class RegisteredPlugin:
'''
注册在 AstrBot 中的插件。
'''
metadata: PluginMetadata
plugin_instance: object
module_path: str
module: ModuleType
root_dir_name: str
reserved: bool # 是否是 AstrBot 的保留插件
def __str__(self) -> str:
return f"RegisteredPlugin({self.metadata}, {self.module_path}, {self.root_dir_name})"
class Plugin:
def __init__(self):
pass