diff --git a/README.md b/README.md index e3a43787..5ab48aad 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能 * 我的道具改为图片形式 * 商品添加图标与是否为被动道具(被动道具无法被主动使用) * 商品添加使用前方法和使用后方法(类似hook),使用方法具体查看文档或签到商品文件中注册的例子 +* 色图插件p站反向代理失效 [@pull/1139](https://github.com/HibiKier/zhenxun_bot/pull/1139) ### 2022/10/9 diff --git a/basic_plugins/init_plugin_config/init_plugins_data.py b/basic_plugins/init_plugin_config/init_plugins_data.py index 71641f3a..5ba4a1b7 100755 --- a/basic_plugins/init_plugin_config/init_plugins_data.py +++ b/basic_plugins/init_plugin_config/init_plugins_data.py @@ -1,8 +1,8 @@ -from pathlib import Path + from ruamel.yaml import YAML from utils.manager import plugins_manager from utils.utils import get_matchers -import nonebot +from services.log import logger try: import ujson as json @@ -43,54 +43,57 @@ def init_plugins_data(data_path): matcher.plugin_name, "version", plugin_data.get("version") ) else: - plugin_version = None - if metadata: - plugin_version = metadata.extra.get("version") - if not plugin_version: + try: + plugin_version = None + if metadata: + plugin_version = metadata.extra.get("version") + if not plugin_version: + try: + plugin_version = _module.__getattribute__("__plugin_version__") + except AttributeError: + pass + if metadata: + plugin_name = metadata.name + else: + try: + plugin_name = _module.__getattribute__("__zx_plugin_name__") + except AttributeError: + plugin_name = matcher.plugin_name + plugin_author = None + if metadata: + plugin_author = metadata.extra.get('author') try: - plugin_version = _module.__getattribute__("__plugin_version__") + plugin_author = _module.__getattribute__("__plugin_author__") except AttributeError: pass - if metadata: - plugin_name = metadata.name - else: - try: - plugin_name = _module.__getattribute__("__zx_plugin_name__") - except AttributeError: - plugin_name = matcher.plugin_name - plugin_author = None - if metadata: - plugin_author = metadata.extra.get('author') - try: - plugin_author = _module.__getattribute__("__plugin_author__") - except AttributeError: - pass - if matcher.plugin_name in plugins_manager.keys(): - plugins_manager.set_module_data(matcher.plugin_name, "error", False) - if matcher.plugin_name not in plugins_manager.keys(): - plugins_manager.add_plugin_data( - matcher.plugin_name, - plugin_name=plugin_name, - author=plugin_author, - version=plugin_version, - ) - # metadata不检测version - elif isinstance(plugin_version, str) or plugins_manager[matcher.plugin_name]["version"] is None or ( - plugin_version is not None - and plugin_version > plugins_manager[matcher.plugin_name]["version"] - ): - plugins_manager.set_module_data( - matcher.plugin_name, "plugin_name", plugin_name - ) - plugins_manager.set_module_data(matcher.plugin_name, "author", plugin_author) - plugins_manager.set_module_data( - matcher.plugin_name, "version", plugin_version - ) - if matcher.plugin_name in _data.keys(): - plugins_manager.set_module_data( - matcher.plugin_name, "error", _data[matcher.plugin_name]["error"] - ) - plugins_manager.set_module_data( - matcher.plugin_name, "plugin_name", _data[matcher.plugin_name]["plugin_name"] - ) + if matcher.plugin_name in plugins_manager.keys(): + plugins_manager.set_module_data(matcher.plugin_name, "error", False) + if matcher.plugin_name not in plugins_manager.keys(): + plugins_manager.add_plugin_data( + matcher.plugin_name, + plugin_name=plugin_name, + author=plugin_author, + version=plugin_version, + ) + # metadata不检测version + elif isinstance(plugin_version, str) or plugins_manager[matcher.plugin_name]["version"] is None or ( + plugin_version is not None + and plugin_version > float(plugins_manager[matcher.plugin_name]["version"]) + ): + plugins_manager.set_module_data( + matcher.plugin_name, "plugin_name", plugin_name + ) + plugins_manager.set_module_data(matcher.plugin_name, "author", plugin_author) + plugins_manager.set_module_data( + matcher.plugin_name, "version", plugin_version + ) + if matcher.plugin_name in _data.keys(): + plugins_manager.set_module_data( + matcher.plugin_name, "error", _data[matcher.plugin_name]["error"] + ) + plugins_manager.set_module_data( + matcher.plugin_name, "plugin_name", _data[matcher.plugin_name]["plugin_name"] + ) + except Exception as e: + logger.error(f"插件数据 {matcher.plugin_name} 加载发生错误 {type(e)}:{e}") plugins_manager.save()