From 489e3b211dab963b5038010acae47e3411be90c1 Mon Sep 17 00:00:00 2001 From: hsd221 Date: Wed, 6 May 2026 22:29:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(emoji):=20=E4=BF=AE=E5=A4=8D=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=89=AB=E6=8F=8F=E8=B7=B3=E8=BF=87=E6=9C=AA=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E8=A1=A8=E6=83=85=E5=8C=85=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 periodic_emoji_maintenance 的自动扫描循环中, 改用 self.emojis(仅包含已注册表情包)构建跳过集合, 替换原先的 _known_emoji_file_paths(包含未注册记录), 避免已有数据库记录但 is_registered=False 的表情包文件被永久跳过。 Closes: 表情包自动注册不触发,手动注册正常的问题 --- src/emoji_system/emoji_manager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/emoji_system/emoji_manager.py b/src/emoji_system/emoji_manager.py index 272f2670..a2a59a7f 100644 --- a/src/emoji_system/emoji_manager.py +++ b/src/emoji_system/emoji_manager.py @@ -1037,12 +1037,13 @@ class EmojiManager: self._emoji_num < global_config.emoji.max_reg_num or (self._emoji_num > global_config.emoji.max_reg_num and global_config.emoji.do_replace) ): + registered_paths = {Path(emoji.full_path).resolve() for emoji in self.emojis} logger.info("[emoji_maintenance] Scanning data/emoji for new emojis...") for emoji_file in EMOJI_DIR.iterdir(): if not emoji_file.is_file(): continue resolved_file = emoji_file.absolute().resolve() - if resolved_file in self._known_emoji_file_paths: + if resolved_file in registered_paths: continue try: register_status = await self.register_emoji_by_filename(emoji_file)