26 lines
676 B
Python
26 lines
676 B
Python
"""消息工具函数"""
|
|
from __future__ import annotations
|
|
|
|
import asyncio
|
|
import logging
|
|
|
|
import config
|
|
|
|
logger = logging.getLogger("spam_guard")
|
|
|
|
|
|
async def auto_delete(message, seconds: int | None = None) -> None:
|
|
"""延迟删除消息。删除失败不影响主流程。"""
|
|
if not message:
|
|
return
|
|
try:
|
|
await asyncio.sleep(seconds or config.AUTO_DELETE_SECONDS)
|
|
await message.delete()
|
|
except Exception as e:
|
|
logger.debug(f"自动删除消息失败: {e}")
|
|
|
|
|
|
def schedule_delete(message, seconds: int | None = None) -> None:
|
|
"""创建自动删除任务。"""
|
|
asyncio.create_task(auto_delete(message, seconds=seconds))
|