zhenxun_bot/utils/manager/admin_manager.py

69 lines
1.8 KiB
Python
Raw Normal View History

2021-10-03 15:35:30 +08:00
from .data_class import StaticData
2021-11-04 16:11:50 +08:00
from typing import List, Optional
2021-10-03 15:35:30 +08:00
class AdminManager(StaticData):
"""
管理员命令 管理器
"""
def __init__(self):
super().__init__(None)
2021-11-04 16:11:50 +08:00
def add_admin_plugin_settings(self, plugin: str, cmd: List[str], level: int):
2021-10-03 15:35:30 +08:00
"""
添加一个管理员命令
2021-11-04 16:11:50 +08:00
:param plugin: 模块
:param cmd: 别名
:param level: 等级
"""
self._data[plugin] = {
"level": level,
"cmd": cmd,
}
def set_admin_level(self, plugin: str, level: int):
"""
设置管理员命令等级
2021-10-03 15:35:30 +08:00
:param plugin: 模块名
:param level: 权限等级
"""
2021-11-04 16:11:50 +08:00
self._data[plugin]["level"] = level
2021-10-03 15:35:30 +08:00
2021-11-04 16:11:50 +08:00
def remove_admin_plugin_settings(self, plugin: str):
2021-10-03 15:35:30 +08:00
"""
删除一个管理员命令
:param plugin: 模块名
"""
if plugin in self._data.keys():
del self._data[plugin]
def check(self, plugin: str, level: int) -> bool:
"""
检查是否满足权限
:param plugin: 模块名
:param level: 权限等级
"""
if plugin in self._data.keys():
2021-11-04 16:11:50 +08:00
return level >= self._data[plugin]["level"]
2021-10-03 15:35:30 +08:00
return True
def get_plugin_level(self, plugin: str) -> int:
"""
获取插件等级
:param plugin: 模块名
"""
if plugin in self._data.keys():
2021-11-04 16:11:50 +08:00
return self._data[plugin]["level"]
2021-10-03 15:35:30 +08:00
return 0
2021-11-04 16:11:50 +08:00
def get_plugin_module(self, cmd: str) -> Optional[str]:
"""
根据 cmd 获取功能 module
:param cmd: 命令
"""
for key in self._data.keys():
if self._data[key].get("cmd") and cmd in self._data[key]["cmd"]:
return key
return None