Update gewechat.py 添加gewe微信接口中voice语音的处理

添加gewe微信接口中voice语音的处理
This commit is contained in:
shockno1
2025-02-26 12:45:28 +08:00
committed by GitHub
parent d659d01b1e
commit ca6cb60bdd

View File

@@ -43,8 +43,11 @@ class GewechatMessageConverter(adapter.MessageConverter):
elif isinstance(component, platform_message.Plain): elif isinstance(component, platform_message.Plain):
content_list.append({"type": "text", "content": component.text}) content_list.append({"type": "text", "content": component.text})
elif isinstance(component, platform_message.Image): elif isinstance(component, platform_message.Image):
content_list.append({"type": "image", "url": component.url})
# content_list.append({"type": "image", "image_id": component.image_id}) # content_list.append({"type": "image", "image_id": component.image_id})
pass #pass
elif isinstance(component, platform_message.Voice):
content_list.append({"type": "voice", "url": component.url, "length": component.length})
elif isinstance(component, platform_message.Forward): elif isinstance(component, platform_message.Forward):
for node in component.node_list: for node in component.node_list:
content_list.extend(await GewechatMessageConverter.yiri2target(node.message_chain)) content_list.extend(await GewechatMessageConverter.yiri2target(node.message_chain))
@@ -103,7 +106,11 @@ class GewechatMessageConverter(adapter.MessageConverter):
return platform_message.MessageChain([ return platform_message.MessageChain([
platform_message.Plain(text="[图片处理失败]") platform_message.Plain(text="[图片处理失败]")
]) ])
elif message["Data"]["MsgType"] == 34:
audio_base64 = message["Data"]["ImgBuf"]["buffer"]
return platform_message.MessageChain(
[platform_message.Voice(base64=f"data:audio/silk;base64,{audio_base64}")]
)
elif message["Data"]["MsgType"] == 49: elif message["Data"]["MsgType"] == 49:
# 支持微信聊天记录的消息类型,将 XML 内容转换为 MessageChain 传递 # 支持微信聊天记录的消息类型,将 XML 内容转换为 MessageChain 传递
try: try:
@@ -336,4 +343,4 @@ class GeWeChatAdapter(adapter.MessagePlatformAdapter):
) )
async def kill(self) -> bool: async def kill(self) -> bool:
pass pass