mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-07 00:16:57 +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:
|
if not client_config:
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
@@ -206,8 +212,8 @@ class SlackModule(_ModuleBase, _MessageBase[Slack]):
|
|||||||
username = msg_json.get("user_name")
|
username = msg_json.get("user_name")
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
logger.info(f"收到来自 {source} 的Slack消息:userid={userid}, username={username}, text={text}")
|
logger.info(f"收到来自 {client_config.name} 的Slack消息:userid={userid}, username={username}, text={text}")
|
||||||
return CommingMessage(channel=MessageChannel.Slack, source=source,
|
return CommingMessage(channel=MessageChannel.Slack, source=client_config.name,
|
||||||
userid=userid, username=username, text=text)
|
userid=userid, username=username, text=text)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@@ -61,10 +61,16 @@ class SynologyChatModule(_ModuleBase, _MessageBase[SynologyChat]):
|
|||||||
"""
|
"""
|
||||||
try:
|
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:
|
if not client_config:
|
||||||
return None
|
return None
|
||||||
client: SynologyChat = self.get_instance(source)
|
client: SynologyChat = self.get_instance(client_config.name)
|
||||||
if not client:
|
if not client:
|
||||||
return None
|
return None
|
||||||
# 解析消息
|
# 解析消息
|
||||||
@@ -82,8 +88,9 @@ class SynologyChatModule(_ModuleBase, _MessageBase[SynologyChat]):
|
|||||||
# 获取用户名
|
# 获取用户名
|
||||||
user_name = message.get("username")
|
user_name = message.get("username")
|
||||||
if text and user_id:
|
if text and user_id:
|
||||||
logger.info(f"收到SynologyChat消息:userid={user_id}, username={user_name}, text={text}")
|
logger.info(f"收到来自 {client_config.name} 的SynologyChat消息:"
|
||||||
return CommingMessage(channel=MessageChannel.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)
|
userid=user_id, username=user_name, text=text)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.debug(f"解析SynologyChat消息失败:{str(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:
|
if not client_config:
|
||||||
return None
|
return None
|
||||||
client: Telegram = self.get_instance(source)
|
client: Telegram = self.get_instance(client_config.name)
|
||||||
try:
|
try:
|
||||||
message: dict = json.loads(body)
|
message: dict = json.loads(body)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
@@ -103,7 +109,8 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]):
|
|||||||
# 获取用户名
|
# 获取用户名
|
||||||
user_name = message.get("from", {}).get("username")
|
user_name = message.get("from", {}).get("username")
|
||||||
if text:
|
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")
|
admin_users = client_config.config.get("TELEGRAM_ADMINS")
|
||||||
user_list = client_config.config.get("TELEGRAM_USERS")
|
user_list = client_config.config.get("TELEGRAM_USERS")
|
||||||
@@ -120,7 +127,7 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]):
|
|||||||
logger.info(f"用户{user_id}不在用户白名单中,无法使用此机器人")
|
logger.info(f"用户{user_id}不在用户白名单中,无法使用此机器人")
|
||||||
client.send_msg(title="你不在用户白名单中,无法使用此机器人", userid=user_id)
|
client.send_msg(title="你不在用户白名单中,无法使用此机器人", userid=user_id)
|
||||||
return None
|
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)
|
userid=user_id, username=user_name, text=text)
|
||||||
return None
|
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:
|
if not client_config:
|
||||||
return None
|
return None
|
||||||
# 报文体
|
# 报文体
|
||||||
@@ -102,8 +108,8 @@ class VoceChatModule(_ModuleBase, _MessageBase[VoceChat]):
|
|||||||
|
|
||||||
# 处理消息内容
|
# 处理消息内容
|
||||||
if content and userid:
|
if content and userid:
|
||||||
logger.info(f"收到VoceChat消息:userid={userid}, text={content}")
|
logger.info(f"收到来自 {client_config.name} 的VoceChat消息:userid={userid}, text={content}")
|
||||||
return CommingMessage(channel=MessageChannel.VoceChat,
|
return CommingMessage(channel=MessageChannel.VoceChat, source=client_config.name,
|
||||||
userid=userid, username=userid, text=content)
|
userid=userid, username=userid, text=content)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"VoceChat消息处理发生错误:{str(err)}")
|
logger.error(f"VoceChat消息处理发生错误:{str(err)}")
|
||||||
|
|||||||
@@ -64,10 +64,16 @@ class WechatModule(_ModuleBase, _MessageBase[WeChat]):
|
|||||||
"""
|
"""
|
||||||
try:
|
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:
|
if not client_config:
|
||||||
return None
|
return None
|
||||||
client: WeChat = self.get_instance(source)
|
client: WeChat = self.get_instance(client_config.name)
|
||||||
# URL参数
|
# URL参数
|
||||||
sVerifyMsgSig = args.get("msg_signature")
|
sVerifyMsgSig = args.get("msg_signature")
|
||||||
sVerifyTimeStamp = args.get("timestamp")
|
sVerifyTimeStamp = args.get("timestamp")
|
||||||
@@ -136,17 +142,17 @@ class WechatModule(_ModuleBase, _MessageBase[WeChat]):
|
|||||||
return None
|
return None
|
||||||
# 根据EventKey执行命令
|
# 根据EventKey执行命令
|
||||||
content = DomUtils.tag_value(root_node, "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":
|
elif msg_type == "text":
|
||||||
# 文本消息
|
# 文本消息
|
||||||
content = DomUtils.tag_value(root_node, "Content", default="")
|
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:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if content:
|
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)
|
userid=user_id, username=user_id, text=content)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"微信消息处理发生错误:{str(err)}")
|
logger.error(f"微信消息处理发生错误:{str(err)}")
|
||||||
|
|||||||
Reference in New Issue
Block a user