From b698d17a76280f80abf3b1aa316cb35037645e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Fri, 16 May 2025 17:08:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E8=A1=A8=E6=83=85?= =?UTF-8?q?=E5=8C=85=E5=92=8C=E5=9B=BE=E5=83=8F=E6=A8=A1=E5=9E=8B=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=93=88=E5=B8=8C=E5=AD=97=E6=AE=B5=EF=BC=8C=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E4=B8=BA=20emoji=5Fhash=20=E5=92=8C=20image=5Fdescrip?= =?UTF-8?q?tion=5Fhash=EF=BC=8C=E4=BB=A5=E6=8F=90=E9=AB=98=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=B8=80=E8=87=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/emoji_system/emoji_manager.py | 12 ++++++------ src/chat/utils/utils_image.py | 6 +++--- src/common/database/database_model.py | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index 77835d1fb..7b5574691 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -197,7 +197,7 @@ class MaiEmoji: # 2. 删除数据库记录 try: - will_delete_emoji = Emoji.get(Emoji.hash == self.hash) + will_delete_emoji = Emoji.get(Emoji.emoji_hash == self.hash) result = will_delete_emoji.delete_instance() # Returns the number of rows deleted. except Emoji.DoesNotExist: logger.warning(f"[删除] 数据库中未找到哈希值为 {self.hash} 的表情包记录。") @@ -260,7 +260,7 @@ def _to_emoji_objects(data): try: emoji = MaiEmoji(full_path=full_path) - emoji.hash = emoji_data.hash + emoji.hash = emoji_data.emoji_hash if not emoji.hash: logger.warning(f"[加载错误] 数据库记录缺少 'hash' 字段: {full_path}") load_errors += 1 @@ -405,7 +405,7 @@ class EmojiManager: def record_usage(self, emoji_hash: str): """记录表情使用次数""" try: - emoji_update = Emoji.get(Emoji.hash == emoji_hash) + emoji_update = Emoji.get(Emoji.emoji_hash == emoji_hash) emoji_update.usage_count += 1 emoji_update.last_used_time = time.time() # Update last used time emoji_update.save() # Persist changes to DB @@ -475,7 +475,7 @@ class EmojiManager: selected_emoji, similarity, matched_emotion = random.choice(top_emojis) # 把匹配的 emotion 也拿出来喵~ # 更新使用次数 - self.record_usage(selected_emoji.hash) + self.record_usage(selected_emoji.emoji_hash) _time_end = time.time() @@ -671,7 +671,7 @@ class EmojiManager: self._ensure_db() if emoji_hash: - query = Emoji.select().where(Emoji.hash == emoji_hash) + query = Emoji.select().where(Emoji.emoji_hash == emoji_hash) else: logger.warning( "[查询] 未提供 hash,将尝试加载所有表情包,建议使用 get_all_emoji_from_db 更新管理器状态。" @@ -804,7 +804,7 @@ class EmojiManager: # 删除选定的表情包 logger.info(f"[决策] 删除表情包: {emoji_to_delete.description}") - delete_success = await self.delete_emoji(emoji_to_delete.hash) + delete_success = await self.delete_emoji(emoji_to_delete.emoji_hash) if delete_success: # 修复:等待异步注册完成 diff --git a/src/chat/utils/utils_image.py b/src/chat/utils/utils_image.py index ee5846031..14cb24922 100644 --- a/src/chat/utils/utils_image.py +++ b/src/chat/utils/utils_image.py @@ -61,7 +61,7 @@ class ImageManager: """ try: record = ImageDescriptions.get_or_none( - (ImageDescriptions.hash == image_hash) & (ImageDescriptions.type == description_type) + (ImageDescriptions.image_description_hash == image_hash) & (ImageDescriptions.type == description_type) ) return record.description if record else None except Exception as e: @@ -141,7 +141,7 @@ class ImageManager: # 保存到数据库 (Images表) try: - img_obj = Images.get((Images.hash == image_hash) & (Images.type == "emoji")) + img_obj = Images.get((Images.emoji_hash == image_hash) & (Images.type == "emoji")) img_obj.path = file_path img_obj.description = description img_obj.timestamp = current_timestamp @@ -214,7 +214,7 @@ class ImageManager: # 保存到数据库 (Images表) try: - img_obj = Images.get((Images.hash == image_hash) & (Images.type == "image")) + img_obj = Images.get((Images.emoji_hash == image_hash) & (Images.type == "image")) img_obj.path = file_path img_obj.description = description img_obj.timestamp = current_timestamp diff --git a/src/common/database/database_model.py b/src/common/database/database_model.py index 35f464b5f..d885312b0 100644 --- a/src/common/database/database_model.py +++ b/src/common/database/database_model.py @@ -100,7 +100,7 @@ class Emoji(BaseModel): full_path = TextField(unique=True, index=True) # 文件的完整路径 (包括文件名) format = TextField() # 图片格式 - hash = TextField(index=True) # 表情包的哈希值 + emoji_hash = TextField(index=True) # 表情包的哈希值 description = TextField() # 表情包的描述 query_count = IntegerField(default=0) # 查询次数(用于统计表情包被查询描述的次数) is_registered = BooleanField(default=False) # 是否已注册 @@ -160,7 +160,7 @@ class Images(BaseModel): 用于存储图像信息的模型。 """ - hash = TextField(index=True) # 图像的哈希值 + emoji_hash = TextField(index=True) # 图像的哈希值 description = TextField(null=True) # 图像的描述 path = TextField(unique=True) # 图像文件的路径 timestamp = FloatField() # 时间戳 @@ -177,7 +177,7 @@ class ImageDescriptions(BaseModel): """ type = TextField() # 类型,例如 "emoji" - hash = TextField(index=True) # 图像的哈希值 + image_description_hash = TextField(index=True) # 图像的哈希值 description = TextField() # 图像的描述 timestamp = FloatField() # 时间戳