diff --git a/app/modules/slack/__init__.py b/app/modules/slack/__init__.py index ce84f828..b5245688 100644 --- a/app/modules/slack/__init__.py +++ b/app/modules/slack/__init__.py @@ -175,7 +175,13 @@ class SlackModule(_ModuleBase, _MessageBase[Slack]): } """ # 获取客户端 - client_config = self.get_config(source) + client_config = None + if source: + client_config = self.get_config(source) + else: + client_configs = self.get_configs() + if client_configs: + client_config = list(client_configs.values())[0] if not client_config: return None try: @@ -206,8 +212,8 @@ class SlackModule(_ModuleBase, _MessageBase[Slack]): username = msg_json.get("user_name") else: return None - logger.info(f"收到来自 {source} 的Slack消息:userid={userid}, username={username}, text={text}") - return CommingMessage(channel=MessageChannel.Slack, source=source, + logger.info(f"收到来自 {client_config.name} 的Slack消息:userid={userid}, username={username}, text={text}") + return CommingMessage(channel=MessageChannel.Slack, source=client_config.name, userid=userid, username=username, text=text) return None diff --git a/app/modules/synologychat/__init__.py b/app/modules/synologychat/__init__.py index 868268a7..dde90492 100644 --- a/app/modules/synologychat/__init__.py +++ b/app/modules/synologychat/__init__.py @@ -61,10 +61,16 @@ class SynologyChatModule(_ModuleBase, _MessageBase[SynologyChat]): """ try: # 来源 - client_config = self.get_config(source) + client_config = None + if source: + client_config = self.get_config(source) + else: + client_configs = self.get_configs() + if client_configs: + client_config = list(client_configs.values())[0] if not client_config: return None - client: SynologyChat = self.get_instance(source) + client: SynologyChat = self.get_instance(client_config.name) if not client: return None # 解析消息 @@ -82,8 +88,9 @@ class SynologyChatModule(_ModuleBase, _MessageBase[SynologyChat]): # 获取用户名 user_name = message.get("username") if text and user_id: - logger.info(f"收到SynologyChat消息:userid={user_id}, username={user_name}, text={text}") - return CommingMessage(channel=MessageChannel.SynologyChat, + logger.info(f"收到来自 {client_config.name} 的SynologyChat消息:" + f"userid={user_id}, username={user_name}, text={text}") + return CommingMessage(channel=MessageChannel.SynologyChat, source=client_config.name, userid=user_id, username=user_name, text=text) except Exception as err: logger.debug(f"解析SynologyChat消息失败:{str(err)}") diff --git a/app/modules/telegram/__init__.py b/app/modules/telegram/__init__.py index a46d76ef..bd60b32a 100644 --- a/app/modules/telegram/__init__.py +++ b/app/modules/telegram/__init__.py @@ -88,10 +88,16 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]): } """ # 获取渠道 - client_config = self.get_config(source) + client_config = None + if source: + client_config = self.get_config(source) + else: + client_configs = self.get_configs() + if client_configs: + client_config = list(client_configs.values())[0] if not client_config: return None - client: Telegram = self.get_instance(source) + client: Telegram = self.get_instance(client_config.name) try: message: dict = json.loads(body) except Exception as err: @@ -103,7 +109,8 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]): # 获取用户名 user_name = message.get("from", {}).get("username") if text: - logger.info(f"收到来自 {source} 的Telegram消息:userid={user_id}, username={user_name}, text={text}") + logger.info(f"收到来自 {client_config.name} 的Telegram消息:" + f"userid={user_id}, username={user_name}, text={text}") # 检查权限 admin_users = client_config.config.get("TELEGRAM_ADMINS") user_list = client_config.config.get("TELEGRAM_USERS") @@ -120,7 +127,7 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]): logger.info(f"用户{user_id}不在用户白名单中,无法使用此机器人") client.send_msg(title="你不在用户白名单中,无法使用此机器人", userid=user_id) return None - return CommingMessage(channel=MessageChannel.Telegram, source=source, + return CommingMessage(channel=MessageChannel.Telegram, source=client_config.name, userid=user_id, username=user_name, text=text) return None diff --git a/app/modules/vocechat/__init__.py b/app/modules/vocechat/__init__.py index 40a45a46..d4376283 100644 --- a/app/modules/vocechat/__init__.py +++ b/app/modules/vocechat/__init__.py @@ -77,7 +77,13 @@ class VoceChatModule(_ModuleBase, _MessageBase[VoceChat]): } """ # 获取渠道 - client_config = self.get_config(source) + client_config = None + if source: + client_config = self.get_config(source) + else: + client_configs = self.get_configs() + if client_configs: + client_config = list(client_configs.values())[0] if not client_config: return None # 报文体 @@ -102,8 +108,8 @@ class VoceChatModule(_ModuleBase, _MessageBase[VoceChat]): # 处理消息内容 if content and userid: - logger.info(f"收到VoceChat消息:userid={userid}, text={content}") - return CommingMessage(channel=MessageChannel.VoceChat, + logger.info(f"收到来自 {client_config.name} 的VoceChat消息:userid={userid}, text={content}") + return CommingMessage(channel=MessageChannel.VoceChat, source=client_config.name, userid=userid, username=userid, text=content) except Exception as err: logger.error(f"VoceChat消息处理发生错误:{str(err)}") diff --git a/app/modules/wechat/__init__.py b/app/modules/wechat/__init__.py index 37d9a15c..5d1026d2 100644 --- a/app/modules/wechat/__init__.py +++ b/app/modules/wechat/__init__.py @@ -64,10 +64,16 @@ class WechatModule(_ModuleBase, _MessageBase[WeChat]): """ try: # 获取客户端 - client_config = self.get_config(source) + client_config = None + if source: + client_config = self.get_config(source) + else: + client_configs = self.get_configs() + if client_configs: + client_config = list(client_configs.values())[0] if not client_config: return None - client: WeChat = self.get_instance(source) + client: WeChat = self.get_instance(client_config.name) # URL参数 sVerifyMsgSig = args.get("msg_signature") sVerifyTimeStamp = args.get("timestamp") @@ -136,17 +142,17 @@ class WechatModule(_ModuleBase, _MessageBase[WeChat]): return None # 根据EventKey执行命令 content = DomUtils.tag_value(root_node, "EventKey") - logger.info(f"收到微信事件:userid={user_id}, event={content}") + logger.info(f"收到来自 {client_config.name} 的微信事件:userid={user_id}, event={content}") elif msg_type == "text": # 文本消息 content = DomUtils.tag_value(root_node, "Content", default="") - logger.info(f"收到微信消息:userid={user_id}, text={content}") + logger.info(f"收到来自 {client_config.name} 的微信消息:userid={user_id}, text={content}") else: return None if content: # 处理消息内容 - return CommingMessage(channel=MessageChannel.Wechat, source=source, + return CommingMessage(channel=MessageChannel.Wechat, source=client_config.name, userid=user_id, username=user_id, text=content) except Exception as err: logger.error(f"微信消息处理发生错误:{str(err)}")