优化manager代码

This commit is contained in:
HibiKier
2022-11-21 20:43:41 +08:00
parent 49e38862af
commit cd66b7f5b8
41 changed files with 1974 additions and 1760 deletions
Executable → Regular
+38 -26
View File
@@ -1,5 +1,6 @@
from .data_class import StaticData
from typing import List, Optional
from .models import AdminSetting
from utils.manager.data_class import StaticData
from typing import List, Optional, Dict
class AdminManager(StaticData):
@@ -9,60 +10,71 @@ class AdminManager(StaticData):
def __init__(self):
super().__init__(None)
self._data: Dict[str, AdminSetting] = {}
def add_admin_plugin_settings(self, plugin: str, cmd: List[str], level: int):
"""
添加一个管理员命令
:param plugin: 模块
:param cmd: 别名
:param level: 等级
说明:
添加一个管理员命令
参数:
:param plugin: 模块
:param cmd: 别名
:param level: 等级
"""
self._data[plugin] = {
"level": level,
"cmd": cmd,
}
self._data[plugin] = AdminSetting(level=level, cmd=cmd)
def set_admin_level(self, plugin: str, level: int):
"""
设置管理员命令等级
:param plugin: 模块名
:param level: 权限等级
说明:
设置管理员命令等级
参数:
:param plugin: 模块名
:param level: 权限等级
"""
self._data[plugin]["level"] = level
if plugin in self._data.keys():
self._data[plugin].level = level
def remove_admin_plugin_settings(self, plugin: str):
"""
删除一个管理员命令
:param plugin: 模块名
说明:
删除一个管理员命令
参数:
:param plugin: 模块名
"""
if plugin in self._data.keys():
del self._data[plugin]
def check(self, plugin: str, level: int) -> bool:
"""
检查是否满足权限
:param plugin: 模块名
:param level: 权限等级
说明:
检查是否满足权限
参数:
:param plugin: 模块名
:param level: 权限等级
"""
if plugin in self._data.keys():
return level >= self._data[plugin]["level"]
return level >= self._data[plugin].level
return True
def get_plugin_level(self, plugin: str) -> int:
"""
获取插件等级
:param plugin: 模块名
说明:
获取插件等级
参数:
:param plugin: 模块名
"""
if plugin in self._data.keys():
return self._data[plugin]["level"]
return self._data[plugin].level
return 0
def get_plugin_module(self, cmd: str) -> Optional[str]:
"""
根据 cmd 获取功能 modules
:param cmd: 命令
说明:
根据 cmd 获取功能 modules
参数:
:param cmd: 命令
"""
for key in self._data.keys():
if self._data[key].get("cmd") and cmd in self._data[key]["cmd"]:
if self._data[key].cmd and cmd in self._data[key].cmd:
return key
return None