diff --git a/src/plugins/chat/__init__.py b/src/plugins/chat/__init__.py index 6462d7e2f..807df2ab3 100644 --- a/src/plugins/chat/__init__.py +++ b/src/plugins/chat/__init__.py @@ -148,6 +148,9 @@ async def generate_schedule_task(): await bot_schedule.initialize() if not bot_schedule.enable_output: bot_schedule.print_schedule() + +@scheduler.scheduled_job("interval", seconds=3600, id="remove_recalled_message") + async def remove_recalled_message(self) -> None: """删除撤回消息""" try: diff --git a/src/plugins/chat/storage.py b/src/plugins/chat/storage.py index acd7db89a..e0156788d 100644 --- a/src/plugins/chat/storage.py +++ b/src/plugins/chat/storage.py @@ -42,10 +42,7 @@ class MessageStorage: async def remove_recalled_message(self, time: str) -> None: """删除撤回消息""" try: - for msg in db.recalled_messages.distinct("message_id", {"time": time}): - if msg.time < (time-300): - db.recalled_messages.delete_one({"message_id": msg.message - }) + db.recalled_messages.delete_many({"time": {"$lt": time-300}}) except Exception: logger.exception("删除撤回消息失败") # 如果需要其他存储相关的函数,可以在这里添加