调整总结业务。支持每天早上9点总结昨天的消息
This commit is contained in:
@@ -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:
|
||||
"""优化的消息格式化方法,减少冗余
|
||||
|
||||
|
||||
Reference in New Issue
Block a user