diff --git a/message_sign/config.toml b/message_sign/config.toml index 8bfce4b..4bccb06 100644 --- a/message_sign/config.toml +++ b/message_sign/config.toml @@ -1,6 +1,6 @@ [SignIn] enable = true -command = ["签到", "每日签到", "qd", "Qd", "QD"] +command = ["签到", "每日签到", "qd", "Qd", "QD", "上班"] min-point = 3 max-point = 20 streak-cycle = 5 # 每签到?天后,额外积分奖励加1点? diff --git a/message_sign/main.py b/message_sign/main.py index be6d726..e8eca94 100644 --- a/message_sign/main.py +++ b/message_sign/main.py @@ -1,4 +1,4 @@ -import datetime +from datetime import datetime, timedelta import logging import mysql.connector.pooling import tomllib @@ -161,16 +161,24 @@ class SignInSystem: if self.gbm.get_group_permission(message.roomid, Feature.SIGNIN) == PermissionStatus.DISABLED: return - current_time = datetime.datetime.now(tz=pytz.timezone(self.timezone)) - today_start = current_time.replace(hour=0, minute=0, second=0, microsecond=0) - yesterday = today_start - datetime.timedelta(days=1) + # 获取当前时间,带有时区信息 + current_time = datetime.now(tz=pytz.timezone(self.timezone)) + # 获取当天零点的时间 + today_start = current_time.replace(hour=0, minute=0, second=0, microsecond=0) + + # 获取昨天的时间 + yesterday = today_start - timedelta(days=1) + + # 获取用户的签到记录 user_record = self.get_user_record(message.sender, message.roomid) 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 @@ -230,4 +238,3 @@ class SignInSystem: def __del__(self): """连接池由外部管理,不需要手动关闭""" pass -