diff --git a/src/plugins/chat/__init__.py b/src/plugins/chat/__init__.py index 79565880..bd71be01 100644 --- a/src/plugins/chat/__init__.py +++ b/src/plugins/chat/__init__.py @@ -63,7 +63,7 @@ async def start_background_tasks(): # 初始化并启动情绪管理器 mood_manager = MoodManager.get_instance() mood_manager.start_mood_update(update_interval=global_config.mood_update_interval) - logger.success("[初始化]情绪管理器已启动") + logger.success("情绪管理器启动成功") # 只启动表情包管理任务 asyncio.create_task(emoji_manager.start_periodic_check(interval_MINS=global_config.EMOJI_CHECK_INTERVAL)) diff --git a/src/plugins/chat/emoji_manager.py b/src/plugins/chat/emoji_manager.py index 4f263773..05c5aead 100644 --- a/src/plugins/chat/emoji_manager.py +++ b/src/plugins/chat/emoji_manager.py @@ -302,7 +302,7 @@ class EmojiManager: # 从数据库中删除记录 result = self.db.db.emoji.delete_one({'_id': emoji['_id']}) if result.deleted_count > 0: - logger.success(f"成功删除数据库记录: {emoji['_id']}") + logger.debug(f"成功删除数据库记录: {emoji['_id']}") removed_count += 1 else: logger.error(f"删除数据库记录失败: {emoji['_id']}") diff --git a/src/plugins/chat/relationship_manager.py b/src/plugins/chat/relationship_manager.py index 4ed7a2f1..4d82184c 100644 --- a/src/plugins/chat/relationship_manager.py +++ b/src/plugins/chat/relationship_manager.py @@ -1,4 +1,5 @@ import asyncio +from loguru import logger from typing import Optional from ...common.database import Database @@ -8,9 +9,10 @@ class Impression: traits: str = None called: str = None know_time: float = None - + relationship_value: float = None + class Relationship: user_id: int = None # impression: Impression = None @@ -21,7 +23,7 @@ class Relationship: nickname: str = None relationship_value: float = None saved = False - + def __init__(self, user_id: int, data=None, **kwargs): if isinstance(data, dict): # 如果输入是字典,使用字典解析 @@ -39,14 +41,12 @@ class Relationship: self.nickname = kwargs.get('nickname') self.relationship_value = kwargs.get('relationship_value', 0.0) self.saved = kwargs.get('saved', False) - - class RelationshipManager: def __init__(self): - self.relationships: dict[int, Relationship] = {} - + self.relationships: dict[int, Relationship] = {} + async def update_relationship(self, user_id: int, data=None, **kwargs): # 检查是否在内存中已存在 relationship = self.relationships.get(user_id) @@ -62,7 +62,8 @@ class RelationshipManager: setattr(relationship, key, value) else: # 如果不存在,创建新对象 - relationship = Relationship(user_id, data=data) if isinstance(data, dict) else Relationship(user_id, **kwargs) + relationship = Relationship(user_id, data=data) if isinstance(data, dict) else Relationship(user_id, + **kwargs) self.relationships[user_id] = relationship # 更新 id_name_nickname_table @@ -71,9 +72,9 @@ class RelationshipManager: # 保存到数据库 await self.storage_relationship(relationship) relationship.saved = True - + return relationship - + async def update_relationship_value(self, user_id: int, **kwargs): # 检查是否在内存中已存在 relationship = self.relationships.get(user_id) @@ -85,31 +86,30 @@ class RelationshipManager: relationship.saved = True return relationship else: - print(f"\033[1;31m[关系管理]\033[0m 用户 {user_id} 不存在,无法更新") + logger.warning(f"用户 {user_id} 不存在,无法更新") return None - - + def get_relationship(self, user_id: int) -> Optional[Relationship]: """获取用户关系对象""" if user_id in self.relationships: return self.relationships[user_id] else: return 0 - + async def load_relationship(self, data: dict) -> Relationship: - """从数据库加载或创建新的关系对象""" + """从数据库加载或创建新的关系对象""" rela = Relationship(user_id=data['user_id'], data=data) rela.saved = True self.relationships[rela.user_id] = rela return rela - + async def load_all_relationships(self): """加载所有关系对象""" db = Database.get_instance() all_relationships = db.db.relationships.find({}) for data in all_relationships: await self.load_relationship(data) - + async def _start_relationship_manager(self): """每5分钟自动保存一次关系数据""" db = Database.get_instance() @@ -119,23 +119,23 @@ class RelationshipManager: for data in all_relationships: user_id = data['user_id'] relationship = await self.load_relationship(data) - self.relationships[user_id] = relationship - print(f"\033[1;32m[关系管理]\033[0m 已加载 {len(self.relationships)} 条关系记录") - + self.relationships[user_id] = relationship + logger.debug(f"已加载 {len(self.relationships)} 条关系记录") + while True: - print("\033[1;32m[关系管理]\033[0m 正在自动保存关系") + logger.debug("正在自动保存关系") await asyncio.sleep(300) # 等待300秒(5分钟) await self._save_all_relationships() - + async def _save_all_relationships(self): - """将所有关系数据保存到数据库""" + """将所有关系数据保存到数据库""" # 保存所有关系数据 for userid, relationship in self.relationships.items(): if not relationship.saved: relationship.saved = True await self.storage_relationship(relationship) - - async def storage_relationship(self,relationship: Relationship): + + async def storage_relationship(self, relationship: Relationship): """ 将关系记录存储到数据库中 """ @@ -145,7 +145,7 @@ class RelationshipManager: gender = relationship.gender age = relationship.age saved = relationship.saved - + db = Database.get_instance() db.db.relationships.update_one( {'user_id': user_id}, @@ -158,7 +158,7 @@ class RelationshipManager: }}, upsert=True ) - + def get_name(self, user_id: int) -> str: # 确保user_id是整数类型 user_id = int(user_id) @@ -169,4 +169,4 @@ class RelationshipManager: return "某人" -relationship_manager = RelationshipManager() \ No newline at end of file +relationship_manager = RelationshipManager() diff --git a/src/plugins/schedule/schedule_generator.py b/src/plugins/schedule/schedule_generator.py index ffe99a2d..fc07a152 100644 --- a/src/plugins/schedule/schedule_generator.py +++ b/src/plugins/schedule/schedule_generator.py @@ -57,12 +57,12 @@ class ScheduleGenerator: existing_schedule = self.db.db.schedule.find_one({"date": date_str}) if existing_schedule: - logger.info(f"{date_str}的日程已存在:") + logger.debug(f"{date_str}的日程已存在:") schedule_text = existing_schedule["schedule"] # print(self.schedule_text) - elif read_only == False: - logger.info(f"{date_str}的日程不存在,准备生成新的日程。") + elif not read_only: + logger.debug(f"{date_str}的日程不存在,准备生成新的日程。") prompt = f"""我是{global_config.BOT_NICKNAME},{global_config.PROMPT_SCHEDULE_GEN},请为我生成{date_str}({weekday})的日程安排,包括:""" + \ """ 1. 早上的学习和工作安排 @@ -78,7 +78,7 @@ class ScheduleGenerator: schedule_text = "生成日程时出错了" # print(self.schedule_text) else: - logger.info(f"{date_str}的日程不存在。") + logger.debug(f"{date_str}的日程不存在。") schedule_text = "忘了" return schedule_text, None @@ -154,10 +154,10 @@ class ScheduleGenerator: logger.warning("今日日程有误,将在下次运行时重新生成") self.db.db.schedule.delete_one({"date": datetime.datetime.now().strftime("%Y-%m-%d")}) else: - logger.info("\n=== 今日日程安排 ===") + logger.info("=== 今日日程安排 ===") for time_str, activity in self.today_schedule.items(): logger.info(f"时间[{time_str}]: 活动[{activity}]") - logger.info("==================\n") + logger.info("==================") # def main():