@@ -48,7 +48,7 @@ class ChatChannel(Channel): | |||
if first_in: # context首次传入时,receiver是None,根据类型设置receiver | |||
config = conf() | |||
cmsg = context['msg'] | |||
if cmsg.from_user_id == self.user_id and not config.get('trigger_by_self', False): | |||
if cmsg.from_user_id == self.user_id and not config.get('trigger_by_self', True): | |||
logger.debug("[WX]self message skipped") | |||
return None | |||
if context["isgroup"]: | |||
@@ -38,7 +38,8 @@ class Banwords(Plugin): | |||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | |||
logger.info("[Banwords] inited") | |||
except Exception as e: | |||
logger.warn("Banwords init failed: %s, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/banwords ." % e) | |||
logger.warn("[Banwords] init failed, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/banwords .") | |||
raise e | |||
@@ -36,8 +36,8 @@ class BDunit(Plugin): | |||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | |||
logger.info("[BDunit] inited") | |||
except Exception as e: | |||
logger.warn( | |||
"BDunit init failed: %s, ignore " % e) | |||
logger.warn("[BDunit] init failed, ignore ") | |||
raise e | |||
def on_handle_context(self, e_context: EventContext): | |||
@@ -95,7 +95,12 @@ class PluginManager: | |||
for name, plugincls in self.plugins.items(): | |||
if plugincls.enabled: | |||
if name not in self.instances: | |||
instance = plugincls() | |||
try: | |||
instance = plugincls() | |||
except Exception as e: | |||
logger.warn("Failed to create init %s, diabled. %s" % (name, e)) | |||
self.disable_plugin(name) | |||
continue | |||
self.instances[name] = instance | |||
for event in instance.handlers: | |||
if event not in self.listening_plugins: | |||
@@ -45,10 +45,12 @@ class Role(Plugin): | |||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | |||
self.roleplays = {} | |||
logger.info("[Role] inited") | |||
except FileNotFoundError: | |||
logger.warn(f"[Role] init failed, {config_path} not found, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/role .") | |||
except Exception as e: | |||
logger.warn("[Role] init failed, exception: %s, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/role ." % e) | |||
if isinstance(e, FileNotFoundError): | |||
logger.warn(f"[Role] init failed, {config_path} not found, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/role .") | |||
else: | |||
logger.warn("[Role] init failed, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/role .") | |||
raise e | |||
def get_role(self, name, find_closest=True): | |||
name = name.lower() | |||
@@ -29,10 +29,12 @@ class SDWebUI(Plugin): | |||
self.api = webuiapi.WebUIApi(**self.start_args) | |||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | |||
logger.info("[SD] inited") | |||
except FileNotFoundError: | |||
logger.warn(f"[SD] init failed, {config_path} not found, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/sdwebui .") | |||
except Exception as e: | |||
logger.warn("[SD] init failed, exception: %s, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/sdwebui ." % e) | |||
if isinstance(e, FileNotFoundError): | |||
logger.warn(f"[SD] init failed, {config_path} not found, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/sdwebui .") | |||
else: | |||
logger.warn("[SD] init failed, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/sdwebui .") | |||
raise e | |||
def on_handle_context(self, e_context: EventContext): | |||