fix: reuse referenced message media in dashboard quotes

This commit is contained in:
liuwei
2026-04-07 17:44:15 +08:00
parent e823c1049f
commit 238e478f52
3 changed files with 33 additions and 0 deletions

View File

@@ -109,6 +109,25 @@ def get_messages():
msg['quoted_type'] = quote_data.get('reference_type', '')
msg['quoted_preview_image'] = quote_data.get('preview_image', '')
msg['quoted_preview_video_thumb'] = quote_data.get('preview_video_thumb', '')
msg['quoted_reference_svrid'] = quote_data.get('reference_svrid', '')
# 优先使用原始被引用消息自己已落库的图片/缩略图地址
reference_svrid = quote_data.get('reference_svrid')
if reference_svrid:
referenced_msg = server.message_storage.get_message_by_message_id(reference_svrid)
if referenced_msg:
if msg['quoted_type'] == 'image':
msg['quoted_preview_image'] = (
referenced_msg.get('image_path')
or referenced_msg.get('message_thumb')
or msg['quoted_preview_image']
)
elif msg['quoted_type'] == 'video':
msg['quoted_preview_video_thumb'] = (
referenced_msg.get('message_thumb')
or referenced_msg.get('image_path')
or msg['quoted_preview_video_thumb']
)
else:
# 其他类型的应用消息,解析 XML 提取标题
root = ET.fromstring(msg['content'])