fix(emoji): 修复自动扫描跳过未注册表情包的问题
在 periodic_emoji_maintenance 的自动扫描循环中, 改用 self.emojis(仅包含已注册表情包)构建跳过集合, 替换原先的 _known_emoji_file_paths(包含未注册记录), 避免已有数据库记录但 is_registered=False 的表情包文件被永久跳过。 Closes: 表情包自动注册不触发,手动注册正常的问题
This commit is contained in:
@@ -1037,12 +1037,13 @@ class EmojiManager:
|
|||||||
self._emoji_num < global_config.emoji.max_reg_num
|
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)
|
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...")
|
logger.info("[emoji_maintenance] Scanning data/emoji for new emojis...")
|
||||||
for emoji_file in EMOJI_DIR.iterdir():
|
for emoji_file in EMOJI_DIR.iterdir():
|
||||||
if not emoji_file.is_file():
|
if not emoji_file.is_file():
|
||||||
continue
|
continue
|
||||||
resolved_file = emoji_file.absolute().resolve()
|
resolved_file = emoji_file.absolute().resolve()
|
||||||
if resolved_file in self._known_emoji_file_paths:
|
if resolved_file in registered_paths:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
register_status = await self.register_emoji_by_filename(emoji_file)
|
register_status = await self.register_emoji_by_filename(emoji_file)
|
||||||
|
|||||||
Reference in New Issue
Block a user