From 8c4a62b9c67a5811af57d6e7c4131e7e1c38c904 Mon Sep 17 00:00:00 2001 From: zhayujie Date: Fri, 24 Mar 2023 00:59:26 +0800 Subject: [PATCH] fix: use try catch instead of config --- config-template.json | 3 +-- plugins/banwords/banwords.py | 2 +- plugins/plugin_manager.py | 8 ++++++-- plugins/role/role.py | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/config-template.json b/config-template.json index 4d35e44..9ad9f5d 100644 --- a/config-template.json +++ b/config-template.json @@ -9,6 +9,5 @@ "conversation_max_tokens": 1000, "speech_recognition": false, "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", - "expires_in_seconds": 3600, - "plugins": ["role", "hello", "sdwebui", "godcmd", "dungeon", "banwords"] + "expires_in_seconds": 3600 } diff --git a/plugins/banwords/banwords.py b/plugins/banwords/banwords.py index 2b4a711..9488b5a 100644 --- a/plugins/banwords/banwords.py +++ b/plugins/banwords/banwords.py @@ -38,7 +38,7 @@ class Banwords(Plugin): self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context logger.info("[Banwords] inited") except Exception as e: - logger.error("Banwords init failed: %s" % e) + logger.warn("Banwords init failed: %s" % e) diff --git a/plugins/plugin_manager.py b/plugins/plugin_manager.py index 4b1a977..8906e6e 100644 --- a/plugins/plugin_manager.py +++ b/plugins/plugin_manager.py @@ -59,10 +59,14 @@ class PluginManager: if os.path.isdir(plugin_path): # 判断插件是否包含同名.py文件 main_module_path = os.path.join(plugin_path, plugin_name+".py") - if os.path.isfile(main_module_path) and conf().get("plugins") and plugin_name in conf().get("plugins"): + if os.path.isfile(main_module_path): # 导入插件 import_path = "{}.{}.{}".format(plugins_dir, plugin_name, plugin_name) - main_module = importlib.import_module(import_path) + try: + main_module = importlib.import_module(import_path) + except Exception as e: + logger.warn("Failed to import plugin %s: %s" % (plugin_name, e)) + continue pconf = self.pconf new_plugins = [] modified = False diff --git a/plugins/role/role.py b/plugins/role/role.py index 91c09be..ea58819 100644 --- a/plugins/role/role.py +++ b/plugins/role/role.py @@ -116,7 +116,7 @@ class Role(Plugin): e_context.action = EventAction.CONTINUE def get_help_text(self): - help_text = "输入\"$角色 (角色名)\"或\"$role (角色名)\"为我设定角色吧,#reset 可以清除设定的角色。\n目前可用角色列表:\n" + help_text = "输入\"$角色 (角色名)\"或\"$role (角色名)\"为我设定角色吧,#reset 可以清除设定的角色。\n\n目前可用角色列表:\n" for role in self.roles: help_text += f"[{role}]: {self.roles[role]['remark']}\n" return help_text