modified: basic_plugins/init_plugin_config/init_plugins_settings.py

This commit is contained in:
HibiKier 2024-01-08 05:41:13 +08:00
parent 8acbe0bb1c
commit 3bfb3620f1

View File

@ -1,8 +1,9 @@
from utils.manager import plugins2settings_manager, admin_manager, plugin_data_manager import nonebot
from services.log import logger from services.log import logger
from utils.manager import admin_manager, plugin_data_manager, plugins2settings_manager
from utils.manager.models import PluginType from utils.manager.models import PluginType
from utils.utils import get_matchers from utils.utils import get_matchers
import nonebot
def init_plugins_settings(): def init_plugins_settings():
@ -18,7 +19,10 @@ def init_plugins_settings():
# logger.warning(f"配置文件 模块:{x} 获取 plugin_name 失败...{e}") # logger.warning(f"配置文件 模块:{x} 获取 plugin_name 失败...{e}")
for matcher in get_matchers(True): for matcher in get_matchers(True):
try: try:
if matcher.plugin_name not in plugins2settings_manager.keys(): if (
matcher.plugin_name
and matcher.plugin_name not in plugins2settings_manager.keys()
):
if _plugin := matcher.plugin: if _plugin := matcher.plugin:
try: try:
_module = _plugin.module _module = _plugin.module
@ -27,18 +31,26 @@ def init_plugins_settings():
else: else:
if plugin_data := plugin_data_manager.get(matcher.plugin_name): if plugin_data := plugin_data_manager.get(matcher.plugin_name):
if plugin_settings := plugin_data.plugin_setting: if plugin_settings := plugin_data.plugin_setting:
if (name := _module.__getattribute__("__zx_plugin_name__")) not in plugin_settings.cmd: if (
name := _module.__getattribute__(
"__zx_plugin_name__"
)
) not in plugin_settings.cmd:
plugin_settings.cmd.append(name) plugin_settings.cmd.append(name)
# 管理员命令 # 管理员命令
if plugin_data.plugin_type == PluginType.ADMIN: if plugin_data.plugin_type == PluginType.ADMIN:
admin_manager.add_admin_plugin_settings( admin_manager.add_admin_plugin_settings(
matcher.plugin_name, plugin_settings.cmd, plugin_settings.level matcher.plugin_name,
plugin_settings.cmd,
plugin_settings.level,
) )
else: else:
plugins2settings_manager.add_plugin_settings( plugins2settings_manager.add_plugin_settings(
matcher.plugin_name, plugin_settings matcher.plugin_name, plugin_settings
) )
except Exception as e: except Exception as e:
logger.error(f'{matcher.plugin_name} 初始化 plugin_settings 发生错误 {type(e)}{e}') logger.error(
f"{matcher.plugin_name} 初始化 plugin_settings 发生错误 {type(e)}{e}"
)
plugins2settings_manager.save() plugins2settings_manager.save()
logger.info(f"已成功加载 {len(plugins2settings_manager.get_data())} 个非限制插件.") logger.info(f"已成功加载 {len(plugins2settings_manager.get_data())} 个非限制插件.")