将bot账号手动发送消息拦截提前到转换层

This commit is contained in:
Dong_master
2025-03-16 21:43:07 +08:00
parent db91ff12f7
commit f2d45a3668
2 changed files with 6 additions and 7 deletions

View File

@@ -78,8 +78,6 @@ class GewechatMessageConverter(adapter.MessageConverter):
pattern = r'@\S+' pattern = r'@\S+'
at_string = f"@{bot_account_id}" at_string = f"@{bot_account_id}"
content_list = [] content_list = []
if message['Wxid'] == message['Data']['FromUserName']['string']:
return platform_message.MessageChain()
if at_string in message["Data"]["Content"]["string"]: if at_string in message["Data"]["Content"]["string"]:
content_list.append(platform_message.At(target=bot_account_id)) content_list.append(platform_message.At(target=bot_account_id))
content_list.append(platform_message.Plain(message["Data"]["Content"]["string"].replace(at_string, '', 1))) content_list.append(platform_message.Plain(message["Data"]["Content"]["string"].replace(at_string, '', 1)))
@@ -88,10 +86,7 @@ class GewechatMessageConverter(adapter.MessageConverter):
content_list.append(platform_message.At(target=bot_account_id)) content_list.append(platform_message.At(target=bot_account_id))
content_list.append(platform_message.Plain(re.sub(pattern, '', message["Data"]["Content"]["string"]))) content_list.append(platform_message.Plain(re.sub(pattern, '', message["Data"]["Content"]["string"])))
else: else:
if message['Wxid'] == message['Data']['FromUserName']['string']: content_list = [platform_message.Plain(message["Data"]["Content"]["string"])]
pass
else:
content_list = [platform_message.Plain(message["Data"]["Content"]["string"])]
return platform_message.MessageChain(content_list) return platform_message.MessageChain(content_list)
@@ -166,6 +161,10 @@ class GewechatEventConverter(adapter.EventConverter):
event: dict, event: dict,
bot_account_id: str bot_account_id: str
) -> platform_events.MessageEvent: ) -> platform_events.MessageEvent:
if event['Wxid'] == event['Data']['FromUserName']['string']:
return None
message_chain = await self.message_converter.target2yiri(copy.deepcopy(event), bot_account_id) message_chain = await self.message_converter.target2yiri(copy.deepcopy(event), bot_account_id)
if not message_chain: if not message_chain:

View File

@@ -70,7 +70,7 @@ async def get_gewechat_image_base64(
} }
) as response: ) as response:
if response.status != 200: if response.status != 200:
print(response) # print(response)
raise Exception(f"获取gewechat图片下载失败: {await response.text()}") raise Exception(f"获取gewechat图片下载失败: {await response.text()}")
resp_data = await response.json() resp_data = await response.json()