From 28dbc0b854e852dab64856f166cd00aca0e6f91c Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Mon, 3 Nov 2025 11:59:34 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20(MessageHandler)=20=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E8=8E=B7=E5=8F=96=E5=88=B0=E8=B6=B3=E5=A4=9F?= =?UTF-8?q?=E7=9A=84=E6=B6=88=E6=81=AF=EF=BC=88=E8=BE=BE=E5=88=B0=20max=5F?= =?UTF-8?q?messages=EF=BC=89=EF=BC=8C=E5=81=9C=E6=AD=A2=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=EF=BC=8C=E8=8E=B7=E5=8F=96=E5=88=B0=E7=9A=84=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E6=98=AF=E6=9C=80=E6=96=B0=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=88=B0=E7=9A=84=E8=B6=85=E8=BF=87=20max=5F?= =?UTF-8?q?message=20=E7=9A=84=E6=B6=88=E6=81=AF=E6=95=B0=E9=87=8F=20(#29)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/message_handler.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/message_handler.py b/src/core/message_handler.py index f3218d0..76b4f03 100644 --- a/src/core/message_handler.py +++ b/src/core/message_handler.py @@ -73,7 +73,7 @@ class MessageHandler: logger.info(f"开始获取群 {group_id} 近 {days} 天的消息记录") logger.info(f"时间范围: {start_time.strftime('%Y-%m-%d %H:%M:%S')} 到 {end_time.strftime('%Y-%m-%d %H:%M:%S')}") - while len(messages) < max_messages and query_rounds < max_rounds: + while query_rounds < max_rounds: try: # 构造请求参数 payloads = { @@ -156,6 +156,11 @@ class MessageHandler: logger.warning(f"群 {group_id} 本轮未获取到有效消息") break + # 如果已经获取到足够的消息(达到 max_messages),停止获取 + if len(messages) >= max_messages: + logger.info(f"群 {group_id} 已获取到足够的消息({len(messages)} 条,限制 {max_messages} 条),停止获取") + break + message_seq = round_messages[0]["message_id"] query_rounds += 1 @@ -171,7 +176,7 @@ class MessageHandler: break await asyncio.sleep(1) - logger.info(f"群 {group_id} 消息获取完成,共获取 {len(messages)} 条消息,查询轮数: {query_rounds}") + logger.info(f"群 {group_id} 消息获取完成,共获取到 {len(messages)} 条有效消息(时间范围: 近{days}天),查询轮数: {query_rounds}") return messages except Exception as e: