From 9267fcac86589c9a8055aa0c4f03df3426d35f25 Mon Sep 17 00:00:00 2001 From: liuwei Date: Thu, 6 Mar 2025 09:14:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=BF=9E=E7=AD=BE=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message_sign/main.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/message_sign/main.py b/message_sign/main.py index 418b897..e2ce1d6 100644 --- a/message_sign/main.py +++ b/message_sign/main.py @@ -192,6 +192,8 @@ class SignInSystem: return streak = 0 + streak_broken = False + old_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 是同一时区对象 @@ -201,8 +203,11 @@ class SignInSystem: f"last_sign_date: {last_sign_date}, yesterday: {yesterday}, user_streak: {user_record['signin_streak']}") if last_sign_date == yesterday: streak = user_record['signin_streak'] + 1 + old_streak = streak + streak_broken = False else: streak = 1 + streak_broken = True else: streak = 1 @@ -236,14 +241,21 @@ class SignInSystem: message.sender, message.roomid, wx_nick_name, points_to_add, current_time, streak )) conn.commit() + output = ("\n" + f"-----Bot-----\n" + f"@{wx_nick_name} 签到成功!\n" + f"签到成功!你领到了 {points_to_add} 个积分!✅\n" + f"你是今天第 {today_signin_rank} 个签到的!🎉\n") + + if streak_broken and old_streak > 0: # 只有在真的断签且之前有签到记录时才显示 + output += f"你断开了 {old_streak} 天的连续签到![心碎]" + elif streak > 1: + output += f"你连续签到了 {streak} 天!" + if streak > 1 and not streak_broken: + output += "[爱心]" - msg = ( - f"@{wx_nick_name} 签到成功!\n" - f"您是今日群内第{today_signin_rank}个签到的\n" - f"连续签到{streak}天,本次获得{points_to_add}积分" - ) self.wcf.send_text( - msg, + output, (message.roomid if message.from_group() else message.sender), message.sender )