调整总结业务。支持每天早上9点总结昨天的消息

This commit is contained in:
liuwei
2026-01-09 14:51:27 +08:00
parent 0fa430f085
commit edc63fad0a
4 changed files with 415 additions and 0 deletions

View File

@@ -496,6 +496,55 @@ class MessageStorage:
logger.error(f"获取消息出错: {e}")
return ""
def get_messages_by_date_range(self, group_id, all_contacts: dict, start_time: datetime, end_time: datetime):
"""获取指定时间范围内的消息
Args:
group_id: 群组ID
all_contacts: 联系人字典
start_time: 开始时间
end_time: 结束时间
Returns:
格式化后的消息字符串
"""
try:
# 使用新的数据库方法获取指定时间范围的消息
messages = self.message_db.get_messages_by_date_range(
group_id,
start_time,
end_time
)
# 使用优化后的格式化方法
result_str = self._format_messages_optimized(messages, all_contacts)
logger.info(f"获取到 {len(messages)} 条消息(时间范围:{start_time}{end_time}),格式化后长度: {len(result_str)}")
return result_str
except Exception as e:
logger.error(f"按时间范围获取消息出错: {e}")
return ""
def count_messages_by_date_range(self, group_id, start_time: datetime, end_time: datetime) -> int:
"""统计指定时间范围内的消息数量
Args:
group_id: 群组ID
start_time: 开始时间
end_time: 结束时间
Returns:
消息数量
"""
try:
count = self.message_db.count_messages_by_date_range(group_id, start_time, end_time)
logger.info(f"{group_id}{start_time}{end_time} 之间有 {count} 条消息")
return count
except Exception as e:
logger.error(f"统计消息数量出错: {e}")
return 0
def _format_messages_optimized(self, messages: list, all_contacts: dict) -> str:
"""优化的消息格式化方法,减少冗余