Skip to content

Commit

Permalink
feat: 签到排名
Browse files Browse the repository at this point in the history
  • Loading branch information
HenryXiaoYang committed Feb 4, 2025
1 parent 3ff574d commit 8f7e70a
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion plugins/sign_in.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ def __init__(self):

self.db = BotDatabase()

# 每日签到排名数据
self.today_signin_count = 0
self.last_reset_date = datetime.now(tz=pytz.timezone(self.timezone)).date()

def _check_and_reset_count(self):
current_date = datetime.now(tz=pytz.timezone(self.timezone)).date()
if current_date != self.last_reset_date:
self.today_signin_count = 0
self.last_reset_date = current_date

@on_text_message
async def handle_text(self, bot: WechatAPIClient, message: dict):
if not self.enable:
Expand All @@ -49,6 +59,9 @@ async def handle_text(self, bot: WechatAPIClient, message: dict):
if not len(command) or command[0] not in self.command:
return

# 检查是否需要重置计数
self._check_and_reset_count()

sign_wxid = message["SenderWxid"]

last_sign = self.db.get_signin_stat(sign_wxid)
Expand Down Expand Up @@ -81,9 +94,14 @@ async def handle_text(self, bot: WechatAPIClient, message: dict):
signin_points = randint(self.min_points, self.max_points) # 随机积分
self.db.add_points(sign_wxid, signin_points + streak_points) # 增加积分

# 增加签到计数并获取排名
self.today_signin_count += 1
today_rank = self.today_signin_count

output = ("\n"
f"-----XYBot-----\n"
f"签到成功!你领到了 {signin_points} 个积分!✅\n")
f"签到成功!你领到了 {signin_points} 个积分!✅\n"
f"你是今天第 {today_rank} 个签到的!🎉\n")

if streak_broken:
output += f"你断开了 {old_streak} 天的连续签到![心碎]"
Expand Down

0 comments on commit 8f7e70a

Please sign in to comment.