完善表情资产后台能力并补充群总结落库

- 新增表情资产表,支持表情文件落盘后的资产沉淀、查询与发送时间回写
- 将表情下载从消息主链路中移出,改为后台定时批处理,降低同步入库阻塞风险
- 抽取通用 CDN 下载与 base64 落盘能力,统一图片与表情文件处理方式
- 在后台通讯录聊天窗口增加表情资产面板,支持查看资产并直接选择发送表情
- 新增后台表情资产接口,支持按群过滤最近表情素材
- 优化消息列表中的表情消息展示,支持在后台直接预览表情图片
- 启动时不再同步补偿历史表情,统一交由定时任务处理,避免影响系统稳定性
- 新增群总结落库表,支持将每日总结写入数据库,便于后续知识库提取与复用
- 将定时总结结果写入数据库,保留总结文本、周期信息、消息数量和元数据
This commit is contained in:
liuwei
2026-04-02 17:52:17 +08:00
parent a4b87f4c7a
commit 2a54650a6f
11 changed files with 671 additions and 17 deletions
+16
View File
@@ -338,6 +338,22 @@ class MessageStorageDB(BaseDBOperator):
print(f"更新消息图片文件路径出错: {e}")
return False
def get_pending_emoji_messages(self, minutes_ago: int = 1440, limit: int = 50) -> List[Dict]:
"""获取最近N分钟内未处理表情的消息"""
sql = """
SELECT message_id, group_id, sender, message_xml, timestamp, attachment_url, message_type
FROM messages
WHERE message_type IN ('47', '1090519089')
AND image_path IS NULL
AND timestamp >= DATE_SUB(NOW(), INTERVAL %s MINUTE)
AND attachment_url IS NOT NULL
AND attachment_url != ''
ORDER BY timestamp ASC
LIMIT %s
"""
params = (minutes_ago, limit)
return self.execute_query(sql, params) or []
def get_hourly_message_trend(self, group_id: str = None, days: int = 1) -> List[Dict]:
"""获取指定群组的按小时消息趋势数据