Files

31 lines
1.0 KiB
Python

from collections.abc import Awaitable, Callable
from typing import Any
from aiogram import BaseMiddleware
from aiogram.types import CallbackQuery, InaccessibleMessage, TelegramObject
from bot import bot
class CallbackAnswerMiddleware(BaseMiddleware):
async def __call__(
self,
handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],
event: TelegramObject,
data: dict[str, Any],
) -> Any:
if isinstance(event, CallbackQuery) and isinstance(event.message, InaccessibleMessage):
try:
new_message = await bot.send_message(event.message.chat.id, "")
object.__setattr__(event, "message", new_message)
except Exception:
pass
try:
return await handler(event, data)
finally:
if isinstance(event, CallbackQuery) and not data.get("callback_answered_early"):
try:
await event.answer()
except Exception:
pass