From 0a1c2cccb03f355c52bfefbaa1724bebf236dcf5 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Fri, 4 Apr 2025 11:22:13 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=A1=A8=E6=83=85=E5=8C=85?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=B0=8F=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.py | 4 ++-- src/plugins/chat/emoji_manager.py | 33 +++++++++++++------------------ template/bot_config_template.toml | 7 +++---- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/main.py b/src/main.py index e3bbf38d1..c60379208 100644 --- a/src/main.py +++ b/src/main.py @@ -106,8 +106,8 @@ class MainSystem: self.forget_memory_task(), self.print_mood_task(), self.remove_recalled_message_task(), - emoji_manager.start_periodic_check(), - emoji_manager.start_periodic_register(), + emoji_manager.start_periodic_check_register(), + # emoji_manager.start_periodic_register(), self.app.run(), ] await asyncio.gather(*tasks) diff --git a/src/plugins/chat/emoji_manager.py b/src/plugins/chat/emoji_manager.py index 02d552e54..6121124c5 100644 --- a/src/plugins/chat/emoji_manager.py +++ b/src/plugins/chat/emoji_manager.py @@ -357,23 +357,6 @@ class EmojiManager: except Exception: logger.exception("[错误] 扫描表情包失败") - - async def start_periodic_register(self): - """定期扫描新表情包""" - while True: - logger.info("[扫描] 开始扫描新表情包...") - if (self.emoji_num > self.emoji_num_max): - logger.warning(f"[警告] 表情包数量超过最大限制: {self.emoji_num} > {self.emoji_num_max},跳过注册") - if not global_config.max_reach_deletion: - logger.warning("表情包数量超过最大限制,终止注册") - break - else: - logger.warning("表情包数量超过最大限制,开始删除表情包") - self.check_emoji_file_full() - else: - await self.scan_new_emojis() - await asyncio.sleep(global_config.EMOJI_CHECK_INTERVAL * 60) - def check_emoji_file_integrity(self): @@ -530,12 +513,24 @@ class EmojiManager: except Exception as e: logger.error(f"[错误] 检查表情包数量失败: {str(e)}") - async def start_periodic_check(self): + async def start_periodic_check_register(self): """定期检查表情包完整性和数量""" while True: - self.check_emoji_file_full() + logger.info("[扫描] 开始检查表情包完整性...") self.check_emoji_file_integrity() + logger.info("[扫描] 开始删除所有图片缓存...") await self.delete_all_images() + logger.info("[扫描] 开始扫描新表情包...") + if self.emoji_num < self.emoji_num_max: + await self.scan_new_emojis() + if (self.emoji_num > self.emoji_num_max): + logger.warning(f"[警告] 表情包数量超过最大限制: {self.emoji_num} > {self.emoji_num_max},跳过注册") + if not global_config.max_reach_deletion: + logger.warning("表情包数量超过最大限制,终止注册") + break + else: + logger.warning("表情包数量超过最大限制,开始删除表情包") + self.check_emoji_file_full() await asyncio.sleep(global_config.EMOJI_CHECK_INTERVAL * 60) async def delete_all_images(self): diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 3b094a8b3..a913777cf 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "1.1.1" +version = "1.1.2" #以下是给开发人员阅读的,一般用户不需要阅读 @@ -94,9 +94,8 @@ emoji_response_penalty = 0.1 # 表情包回复惩罚系数,设为0为不回复 [emoji] max_emoji_num = 120 # 表情包最大数量 -max_reach_deletion = true # 开启则在达到最大数量时删除表情包,关闭则不会继续收集表情包 -check_interval = 30 # 检查破损表情包的时间间隔(分钟) -register_interval = 30 # 注册表情包的时间间隔(分钟) +max_reach_deletion = true # 开启则在达到最大数量时删除表情包,关闭则达到最大数量时不删除,只是不会继续收集表情包 +check_interval = 30 # 检查表情包(注册,破损,删除)的时间间隔(分钟) auto_save = true # 是否保存表情包和图片 enable_check = false # 是否启用表情包过滤 check_prompt = "符合公序良俗" # 表情包过滤要求