From ed8a49041d08fcbf5beee50e5934f8c0a3a3640d Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 5 Mar 2025 10:29:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=8D=E5=A4=8D=E7=AD=BE?= =?UTF-8?q?=E5=88=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message_sign/main.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/message_sign/main.py b/message_sign/main.py index 7362c2e..1e325a4 100644 --- a/message_sign/main.py +++ b/message_sign/main.py @@ -175,13 +175,21 @@ class SignInSystem: wx_nick_name = self.all_contacts.get(message.sender, message.sender) # 判断用户是否已经签到过 - if user_record and user_record['sign_stat'] and user_record['sign_stat'] >= today_start: - self.wcf.send_text( - f"@{wx_nick_name} 您今天已经签到过了!当前积分:{user_record['points']}", - (message.roomid if message.from_group() else message.sender), - message.sender - ) - return + if user_record and user_record.get('sign_stat'): + sign_stat = user_record['sign_stat'] + + # 确保 sign_stat 和 today_start 是同一时区对象 + if isinstance(sign_stat, datetime) and sign_stat.tzinfo is None: + sign_stat = pytz.timezone(self.timezone).localize(sign_stat) + + # 如果 sign_stat 已经大于或等于今天的零点,则认为用户已经签到过了 + if sign_stat >= today_start: + self.wcf.send_text( + f"@{wx_nick_name} 您今天已经签到过了!当前积分:{user_record['points']}", + (message.roomid if message.from_group() else message.sender), + message.sender + ) + return streak = 0 if user_record and user_record['sign_stat']: