From 9a4f807f59e1c23c5faa6b2886517876cc402b9c Mon Sep 17 00:00:00 2001 From: liuwei Date: Fri, 11 Apr 2025 13:14:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=BF=9E=E7=AD=BE=E5=8A=A0?= =?UTF-8?q?=E7=A7=AF=E5=88=86=E6=95=B0=E9=87=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/message_sign/main.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/message_sign/main.py b/plugins/message_sign/main.py index a6798ac..e1cee7b 100644 --- a/plugins/message_sign/main.py +++ b/plugins/message_sign/main.py @@ -171,19 +171,19 @@ class MessageSignPlugin(MessagePluginInterface): # 获取用户的签到记录 user_record = self.get_user_record(sender, roomid) - # 计算连续签到天数 - streak = 1 - if user_record and user_record['sign_stat']: - last_sign_date = user_record['sign_stat'].replace(hour=0, minute=0, second=0, microsecond=0) - # 确保 sign_stat 和 today_start 是同一时区对象 - if isinstance(last_sign_date, datetime) and last_sign_date.tzinfo is None: - last_sign_date = pytz.timezone(self.timezone).localize(last_sign_date) - - if last_sign_date == yesterday: - streak = user_record['signin_streak'] + 1 - - # 计算积分 - points = self.calculate_points(streak) + # 直接使用用户当前的连续签到天数,而不是重新计算 + # 这个值已经在 _handle_sign_in 方法中被正确更新 + if "签到成功" in response: + # 从响应中提取连续签到天数 + streak = 1 # 默认为1天 + if user_record: + # 使用数据库中已更新的连签天数 + streak = user_record.get('signin_streak', 1) + # 如果今天刚签到,连签天数已经+1,所以这里不需要再加1 + + # 计算积分 + points = self.calculate_points(streak) + return points # 修改 process_message 方法,作为路由分发