fix(wecom): preserve real filename from SDK when payload omits name (#3737)

This commit is contained in:
04cb
2026-05-12 10:27:32 +08:00
committed by Xubin Ren
parent 6d07aa6059
commit bd0ba745dd
2 changed files with 25 additions and 4 deletions
+5 -4
View File
@@ -292,17 +292,18 @@ class WecomChannel(BaseChannel):
file_info = body.get("file", {})
file_url = file_info.get("url", "")
aes_key = file_info.get("aeskey", "")
file_name = file_info.get("name", "unknown")
file_name = file_info.get("name") or None
if file_url and aes_key:
file_path = await self._download_and_save_media(file_url, aes_key, "file", file_name)
if file_path:
content_parts.append(f"[file: {file_name}]")
display_name = os.path.basename(file_path)
content_parts.append(f"[file: {display_name}]")
media_paths.append(file_path)
else:
content_parts.append(f"[file: {file_name}: download failed]")
content_parts.append(f"[file: {file_name or 'unknown'}: download failed]")
else:
content_parts.append(f"[file: {file_name}: download failed]")
content_parts.append(f"[file: {file_name or 'unknown'}: download failed]")
elif msg_type == "mixed":
# Mixed content contains multiple message items