diff --git a/plugins/message_sign/main.py b/plugins/message_sign/main.py index d1ed4a3..a5957a5 100644 --- a/plugins/message_sign/main.py +++ b/plugins/message_sign/main.py @@ -363,6 +363,7 @@ class MessageSignPlugin(MessagePluginInterface): roomid = message.get("roomid", "") all_contacts = message.get("all_contacts", {}) + revoke: MessageAutoRevoke = message.get("revoke") try: # 获取当前时间,带有时区信息 current_time = datetime.now(tz=pytz.timezone(self.timezone)) @@ -410,26 +411,34 @@ class MessageSignPlugin(MessagePluginInterface): else: # 昨天已经签到了或者断签超过一天,不需要补签 self.LOG.info(f"不符合补签条件,last_sign_date: {last_sign_date}, sign_stat: {sign_stat}") - await self.bot.send_text_message( + + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message( (roomid if roomid else sender), "❌ 您昨天已经签到过了或断签超过一天,不符合补签条件!", sender ) + revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 3) return True, "不符合补签条件" else: # 今天未签到,检查是否符合补签条件(只能补签昨天) if not last_sign_date or last_sign_date < day_before_yesterday: self.LOG.info(f"断签超过一天,last_sign_date: {last_sign_date}") - await self.bot.send_text_message((roomid if roomid else sender), - "❌ 只能补签断签一天的情况!您已断签超过一天或没有签到记录。", - sender - ) + + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message( + (roomid if roomid else sender), + "❌ 只能补签断签一天的情况!您已断签超过一天或没有签到记录。", + sender + ) + revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 5) return True, "不符合补签条件" if last_sign_date >= yesterday: self.LOG.info(f"昨天已签到,last_sign_date: {last_sign_date}") - await self.bot.send_text_message((roomid if roomid else sender), - "❌ 您昨天已经签到过了,不需要补签!", - sender - ) + + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message( + (roomid if roomid else sender), + "❌ 您昨天已经签到过了,不需要补签!", + sender + ) + revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 5) return True, "无需补签" # 检查用户积分是否足够 @@ -438,10 +447,12 @@ class MessageSignPlugin(MessagePluginInterface): user_points = points_db.get_user_points(sender, roomid) if not user_points or user_points["total_points"] < self.makeup_cost: - await self.bot.send_text_message((roomid if roomid else sender), - f"❌ 积分不足!补签需要 {self.makeup_cost} 积分,您当前只有 {user_points.get('total_points', 0)} 积分。", - sender - ) + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message( + (roomid if roomid else sender), + f"❌ 积分不足!补签需要 {self.makeup_cost} 积分,您当前只有 {user_points.get('total_points', 0)} 积分。", + sender + ) + revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 5) return True, "积分不足" # 扣除积分 @@ -451,10 +462,12 @@ class MessageSignPlugin(MessagePluginInterface): ) if not deduct_success: - await self.bot.send_text_message((roomid if roomid else sender), - f"❌ 扣除积分失败:{deduct_result.get('error', '未知错误')}", - sender - ) + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message( + (roomid if roomid else sender), + f"❌ 扣除积分失败:{deduct_result.get('error', '未知错误')}", + sender + ) + revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 5) return True, "扣除积分失败" # 在_handle_makeup_sign方法中,修改计算新连签天数的逻辑 @@ -519,8 +532,9 @@ class MessageSignPlugin(MessagePluginInterface): except Exception as e: self.LOG.error(f"处理补签请求出错: {e}") - await self.bot.send_text_message( + client_msg_id, create_time, new_msg_id = await self.bot.send_text_message( (roomid if roomid else sender), f"❌ 补签出错:{e}", sender ) + revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 5) return False, f"处理出错: {e}"