Merge pull request #234 from Vladless/feat/callback-answer

Callback answer middleware
This commit is contained in:
Vladislav Lisitsyn
2025-08-17 16:59:45 +03:00
committed by Capybara-z
parent 2a3f346434
commit b01eabdcda
5 changed files with 19 additions and 4 deletions
@@ -439,8 +439,6 @@ async def back_to_database_menu(callback: CallbackQuery):
@router.callback_query(AdminPanelCallback.filter(F.action == "export_remnawave"))
async def show_remnawave_clients(callback: CallbackQuery, session: AsyncSession):
await callback.answer()
result = await session.execute(select(Server).where(Server.panel_type == "remnawave", Server.enabled.is_(True)))
servers = result.scalars().all()
-1
View File
@@ -157,7 +157,6 @@ async def handle_rename_key(callback: CallbackQuery, state: FSMContext):
@router.callback_query(F.data == "cancel_and_back_to_view_keys")
async def cancel_and_back(callback: CallbackQuery, state: FSMContext, session: AsyncSession):
await state.clear()
await callback.answer()
await process_callback_or_message_view_keys(callback, session)
-1
View File
@@ -92,7 +92,6 @@ async def handle_pay(callback_query: CallbackQuery, state: FSMContext, session:
payment_handlers.append(process_callback_pay_tribute)
if len(payment_handlers) == 1:
await callback_query.answer()
return await payment_handlers[0](callback_query, state, session)
builder = InlineKeyboardBuilder()
+2
View File
@@ -14,6 +14,7 @@ from .maintenance import MaintenanceModeMiddleware
from .session import SessionMiddleware
from .throttling import ThrottlingMiddleware
from .user import UserMiddleware
from .answer import CallbackAnswerMiddleware
def register_middleware(
@@ -39,6 +40,7 @@ def register_middleware(
"logging": LoggingMiddleware(),
"throttling": ThrottlingMiddleware(),
"user": UserMiddleware(),
"answer": CallbackAnswerMiddleware(),
}
exclude_set = set(exclude or [])
+17
View File
@@ -0,0 +1,17 @@
from collections.abc import Awaitable, Callable
from typing import Any
from aiogram import BaseMiddleware
from aiogram.types import CallbackQuery, TelegramObject
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):
await event.answer()
return await handler(event, data)