@@ -48,7 +48,7 @@ class ChatChannel(Channel): | |||||
if first_in: # context首次传入时,receiver是None,根据类型设置receiver | if first_in: # context首次传入时,receiver是None,根据类型设置receiver | ||||
config = conf() | config = conf() | ||||
cmsg = context['msg'] | 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") | logger.debug("[WX]self message skipped") | ||||
return None | return None | ||||
if context["isgroup"]: | if context["isgroup"]: | ||||
@@ -38,7 +38,8 @@ class Banwords(Plugin): | |||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | ||||
logger.info("[Banwords] inited") | logger.info("[Banwords] inited") | ||||
except Exception as e: | 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 | self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | ||||
logger.info("[BDunit] inited") | logger.info("[BDunit] inited") | ||||
except Exception as e: | 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): | def on_handle_context(self, e_context: EventContext): | ||||
@@ -95,7 +95,12 @@ class PluginManager: | |||||
for name, plugincls in self.plugins.items(): | for name, plugincls in self.plugins.items(): | ||||
if plugincls.enabled: | if plugincls.enabled: | ||||
if name not in self.instances: | 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 | self.instances[name] = instance | ||||
for event in instance.handlers: | for event in instance.handlers: | ||||
if event not in self.listening_plugins: | 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.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | ||||
self.roleplays = {} | self.roleplays = {} | ||||
logger.info("[Role] inited") | 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: | 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): | def get_role(self, name, find_closest=True): | ||||
name = name.lower() | name = name.lower() | ||||
@@ -29,10 +29,12 @@ class SDWebUI(Plugin): | |||||
self.api = webuiapi.WebUIApi(**self.start_args) | self.api = webuiapi.WebUIApi(**self.start_args) | ||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | ||||
logger.info("[SD] inited") | 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: | 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): | def on_handle_context(self, e_context: EventContext): | ||||