mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-04-24 02:32:01 +08:00
fix 消息交互
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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)}")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)}")
|
||||
|
||||
@@ -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)}")
|
||||
|
||||
Reference in New Issue
Block a user