fix: 使能够正常删除超过一小时的撤回消息,单独创建定时任务
This commit is contained in:
@@ -148,6 +148,9 @@ async def generate_schedule_task():
|
|||||||
await bot_schedule.initialize()
|
await bot_schedule.initialize()
|
||||||
if not bot_schedule.enable_output:
|
if not bot_schedule.enable_output:
|
||||||
bot_schedule.print_schedule()
|
bot_schedule.print_schedule()
|
||||||
|
|
||||||
|
@scheduler.scheduled_job("interval", seconds=3600, id="remove_recalled_message")
|
||||||
|
|
||||||
async def remove_recalled_message(self) -> None:
|
async def remove_recalled_message(self) -> None:
|
||||||
"""删除撤回消息"""
|
"""删除撤回消息"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -42,10 +42,7 @@ class MessageStorage:
|
|||||||
async def remove_recalled_message(self, time: str) -> None:
|
async def remove_recalled_message(self, time: str) -> None:
|
||||||
"""删除撤回消息"""
|
"""删除撤回消息"""
|
||||||
try:
|
try:
|
||||||
for msg in db.recalled_messages.distinct("message_id", {"time": time}):
|
db.recalled_messages.delete_many({"time": {"$lt": time-300}})
|
||||||
if msg.time < (time-300):
|
|
||||||
db.recalled_messages.delete_one({"message_id": msg.message
|
|
||||||
})
|
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception("删除撤回消息失败")
|
logger.exception("删除撤回消息失败")
|
||||||
# 如果需要其他存储相关的函数,可以在这里添加
|
# 如果需要其他存储相关的函数,可以在这里添加
|
||||||
|
|||||||
Reference in New Issue
Block a user