diff --git a/robot.py b/robot.py index f684cc5..28f53b2 100644 --- a/robot.py +++ b/robot.py @@ -706,8 +706,9 @@ class Robot: for r in receivers: if self.gbm.get_group_permission(r, Feature.DAILY_SUMMARY) == PermissionStatus.ENABLED: - output = await self.message_storage.generate_and_send_ranking(r, self.allContacts) - await self.ipad_bot.send_text_message(r, output) + tag, output = await self.message_storage.generate_and_send_ranking(r, self.allContacts) + if tag: + await self.ipad_bot.send_text_message(r, output) except Exception as e: self.LOG.error(f"SendRanking error:{e}") diff --git a/utils/wechat/message_to_db.py b/utils/wechat/message_to_db.py index b662e8d..f2f3bce 100644 --- a/utils/wechat/message_to_db.py +++ b/utils/wechat/message_to_db.py @@ -250,7 +250,7 @@ class MessageStorage: if not results: logging.info(f"没有找到 {yesterday} 的群聊 {groupId} 发言记录") - return f"📊 {yesterday} 没有发言记录" + return False, f"📊 {yesterday} 没有发言记录" # 格式化输出字符串,添加emoji和美化格式 ranking_str = f"🏆 {yesterday} 发言排行榜 🏆\n" @@ -269,19 +269,19 @@ class MessageStorage: # 根据排名发放不同数量的积分 reward_points = 0 if rank == 1: - reward_points = 50 + reward_points = 30 ranking_str += f"🥇🐲 {rank}.{display_name}: {speech_count}次 🔥 +{reward_points}积分\n" elif rank == 2: - reward_points = 30 + reward_points = 20 ranking_str += f"🥈 {rank}.{display_name}: {speech_count}次 ✨ +{reward_points}积分\n" elif rank == 3: - reward_points = 20 + reward_points = 10 ranking_str += f"🥉 {rank}.{display_name}: {speech_count}次 👏 +{reward_points}积分\n" elif rank <= 10: - reward_points = 10 + reward_points = 5 ranking_str += f"🌟 {rank}.{display_name}: {speech_count}次 +{reward_points}积分\n" else: - reward_points = 5 + reward_points = 3 ranking_str += f"👍 {rank}.{display_name}: {speech_count}次 +{reward_points}积分\n" # 发放积分奖励 @@ -297,11 +297,11 @@ class MessageStorage: logging.error(f"发放积分失败: {username}, {groupId}, {reward_points}") logging.info(f"成功生成 {yesterday} 的群聊 {groupId} 发言排名并发放积分") - return ranking_str + return True, ranking_str except Exception as e: logging.error(f"生成发言排名出错: {e}") - return f"❌ 生成发言排名出错: {e}" + return False, f"❌ 生成发言排名出错: {e}" def get_messages(self, group_id, all_contacts: dict): try: