改动结果:
聊天窗口工具栏新增了“表情”按钮,打开表情库弹窗。 表情库会从历史“已下载落盘的表情消息”里自动聚合。 选中后直接通过 send_emoji_message(wxid, md5, total_length) 发原生表情,不是当普通图片发。 仍保持你现在的发送通道和聊天刷新逻辑。 主要改动文件: 后端接口与发送支持:contacts.py 表情资源查询:message_storage.py 前端表情面板与发送交互:contacts_management.html 新增接口: GET /contacts/api/emojis:返回聚合后的表情库(md5、total_length、预览图)。 POST /contacts/api/send_message 新增 type=emoji。 我也做了 Python 语法检查,相关后端文件都通过了。 你可以直接在聊天弹窗里点“表情”试一下。如果表情库为空,通常是该群还没落盘到 image_path,让媒体下载功能先抓几条表情就会出现。
This commit is contained in:
@@ -570,6 +570,19 @@ class MessageStorageDB(BaseDBOperator):
|
||||
"""兼容旧方法名,内部复用统一媒体待处理查询"""
|
||||
return self.get_pending_media_messages(minutes_ago, limit)
|
||||
|
||||
def get_recent_emoji_assets(self, limit: int = 200) -> List[Dict]:
|
||||
"""获取已下载落盘的表情资源记录(用于通讯录聊天面板的表情库)"""
|
||||
sql = """
|
||||
SELECT message_id, group_id, sender, timestamp, message_type, attachment_url, image_path
|
||||
FROM messages
|
||||
WHERE message_type IN ('47', '1048625', '1090519089')
|
||||
AND image_path IS NOT NULL
|
||||
AND image_path <> ''
|
||||
ORDER BY timestamp DESC
|
||||
LIMIT %s
|
||||
"""
|
||||
return self.execute_query(sql, (limit,)) or []
|
||||
|
||||
def get_messages_by_date_range(self, group_id: str, start_date: str, end_date: str = None,
|
||||
min_content_length: int = 6, max_results: int = 5000) -> List[Dict]:
|
||||
"""按日期范围获取消息(支持按天总结)
|
||||
|
||||
Reference in New Issue
Block a user