mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-09-29 00:32:06 +08:00
优化manager代码
This commit is contained in:
Executable → Regular
+38
-26
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user