from __future__ import annotations from pyrogram.types import CallbackQuery, Message from wbb import app from wbb.services.message_cleanup import ( begin_group_callback_interaction, begin_group_message_interaction, clear_current_group_interaction, install_group_interaction_tracking, is_group_interaction_candidate, is_group_cleanup_scheduled, ) from wbb.services.point_settings import CHECKIN_BUTTON_TEXT from wbb.services.interaction_settings import get_interaction_settings __MODULE__ = "群聊交互清理" __HELP__ = "群内机器人指令和按钮交互消息会在 10 秒后自动清理。" install_group_interaction_tracking(app) @app.on_message(group=-2000) async def begin_message_cleanup_context(_, message: Message): if not is_group_interaction_candidate(message, menu_texts={CHECKIN_BUTTON_TEXT}): clear_current_group_interaction() return settings = await get_interaction_settings(message.chat.id) begin_group_message_interaction( message, menu_texts={CHECKIN_BUTTON_TEXT}, delay_seconds=settings["cleanup_seconds"], ) @app.on_callback_query(group=-2000) async def begin_callback_cleanup_context(_, query: CallbackQuery): if not getattr(query, "message", None) or not is_group_cleanup_scheduled(query.message): clear_current_group_interaction() return settings = await get_interaction_settings(query.message.chat.id) begin_group_callback_interaction(query, delay_seconds=settings["cleanup_seconds"])