Add bot commands setup, inline keyboards, and project dependencies
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import logging
|
||||
from typing import Any, Awaitable, Callable, Dict
|
||||
from aiogram import BaseMiddleware
|
||||
from aiogram.types import TelegramObject
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class LoggingMiddleware(BaseMiddleware):
|
||||
"""
|
||||
A simple middleware that logs details about incoming events.
|
||||
"""
|
||||
async def __call__(
|
||||
self,
|
||||
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
|
||||
event: TelegramObject,
|
||||
data: Dict[str, Any],
|
||||
) -> Any:
|
||||
logger.debug("Received event: %s", event.__class__.__name__)
|
||||
try:
|
||||
result = await handler(event, data)
|
||||
logger.debug("Event %s handled successfully", event.__class__.__name__)
|
||||
return result
|
||||
except Exception as e:
|
||||
logger.error("Error handling event %s: %s", event.__class__.__name__, e, exc_info=True)
|
||||
raise e
|
||||
Reference in New Issue
Block a user