interaction_cleanup.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from __future__ import annotations
  2. from pyrogram.types import CallbackQuery, Message
  3. from wbb import app
  4. from wbb.services.message_cleanup import (
  5. begin_group_callback_interaction,
  6. begin_group_message_interaction,
  7. clear_current_group_interaction,
  8. install_group_interaction_tracking,
  9. is_group_interaction_candidate,
  10. is_group_cleanup_scheduled,
  11. )
  12. from wbb.services.point_settings import CHECKIN_BUTTON_TEXT
  13. from wbb.services.interaction_settings import get_interaction_settings
  14. __MODULE__ = "群聊交互清理"
  15. __HELP__ = "群内机器人指令和按钮交互消息会在 10 秒后自动清理。"
  16. install_group_interaction_tracking(app)
  17. @app.on_message(group=-2000)
  18. async def begin_message_cleanup_context(_, message: Message):
  19. if not is_group_interaction_candidate(message, menu_texts={CHECKIN_BUTTON_TEXT}):
  20. clear_current_group_interaction()
  21. return
  22. settings = await get_interaction_settings(message.chat.id)
  23. begin_group_message_interaction(
  24. message, menu_texts={CHECKIN_BUTTON_TEXT},
  25. delay_seconds=settings["cleanup_seconds"],
  26. )
  27. @app.on_callback_query(group=-2000)
  28. async def begin_callback_cleanup_context(_, query: CallbackQuery):
  29. if not getattr(query, "message", None) or not is_group_cleanup_scheduled(query.message):
  30. clear_current_group_interaction()
  31. return
  32. settings = await get_interaction_settings(query.message.chat.id)
  33. begin_group_callback_interaction(query, delay_seconds=settings["cleanup_seconds"])