fix:表情包逻辑小改

This commit is contained in:
SengokuCola
2025-04-04 11:22:13 +08:00
parent 5f8ef67861
commit 0a1c2cccb0
3 changed files with 19 additions and 25 deletions

View File

@@ -106,8 +106,8 @@ class MainSystem:
self.forget_memory_task(), self.forget_memory_task(),
self.print_mood_task(), self.print_mood_task(),
self.remove_recalled_message_task(), self.remove_recalled_message_task(),
emoji_manager.start_periodic_check(), emoji_manager.start_periodic_check_register(),
emoji_manager.start_periodic_register(), # emoji_manager.start_periodic_register(),
self.app.run(), self.app.run(),
] ]
await asyncio.gather(*tasks) await asyncio.gather(*tasks)

View File

@@ -358,23 +358,6 @@ class EmojiManager:
except Exception: except Exception:
logger.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): def check_emoji_file_integrity(self):
"""检查表情包文件完整性 """检查表情包文件完整性
@@ -530,12 +513,24 @@ class EmojiManager:
except Exception as e: except Exception as e:
logger.error(f"[错误] 检查表情包数量失败: {str(e)}") logger.error(f"[错误] 检查表情包数量失败: {str(e)}")
async def start_periodic_check(self): async def start_periodic_check_register(self):
"""定期检查表情包完整性和数量""" """定期检查表情包完整性和数量"""
while True: while True:
self.check_emoji_file_full() logger.info("[扫描] 开始检查表情包完整性...")
self.check_emoji_file_integrity() self.check_emoji_file_integrity()
logger.info("[扫描] 开始删除所有图片缓存...")
await self.delete_all_images() 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) await asyncio.sleep(global_config.EMOJI_CHECK_INTERVAL * 60)
async def delete_all_images(self): async def delete_all_images(self):

View File

@@ -1,5 +1,5 @@
[inner] [inner]
version = "1.1.1" version = "1.1.2"
#以下是给开发人员阅读的,一般用户不需要阅读 #以下是给开发人员阅读的,一般用户不需要阅读
@@ -94,9 +94,8 @@ emoji_response_penalty = 0.1 # 表情包回复惩罚系数设为0为不回复
[emoji] [emoji]
max_emoji_num = 120 # 表情包最大数量 max_emoji_num = 120 # 表情包最大数量
max_reach_deletion = true # 开启则在达到最大数量时删除表情包,关闭则不会继续收集表情包 max_reach_deletion = true # 开启则在达到最大数量时删除表情包,关闭则达到最大数量时不删除,只是不会继续收集表情包
check_interval = 30 # 检查破损表情包的时间间隔(分钟) check_interval = 30 # 检查表情包(注册,破损,删除)的时间间隔(分钟)
register_interval = 30 # 注册表情包的时间间隔(分钟)
auto_save = true # 是否保存表情包和图片 auto_save = true # 是否保存表情包和图片
enable_check = false # 是否启用表情包过滤 enable_check = false # 是否启用表情包过滤
check_prompt = "符合公序良俗" # 表情包过滤要求 check_prompt = "符合公序良俗" # 表情包过滤要求