Add middleware logging
This commit is contained in:
@@ -13,6 +13,7 @@ from handlers.admin import admin, admin_panel, user_editor
|
||||
from handlers.keys import key_management, keys
|
||||
from handlers.payment import freekassa_pay, yookassa_pay
|
||||
from middlewares.admin import AdminMiddleware
|
||||
from middlewares.logging import UserActivityMiddleware
|
||||
|
||||
dp.include_router(admin.router)
|
||||
dp.include_router(admin_panel.router)
|
||||
@@ -28,3 +29,5 @@ dp.include_router(notifications.router)
|
||||
|
||||
dp.message.middleware(AdminMiddleware())
|
||||
dp.callback_query.middleware(AdminMiddleware())
|
||||
dp.message.middleware(UserActivityMiddleware())
|
||||
dp.callback_query.middleware(UserActivityMiddleware())
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
from typing import Any, Awaitable, Callable, Dict
|
||||
|
||||
from aiogram import BaseMiddleware
|
||||
from aiogram.types import CallbackQuery, Message, TelegramObject
|
||||
from loguru import logger
|
||||
|
||||
class UserActivityMiddleware(BaseMiddleware):
|
||||
async def __call__(
|
||||
self,
|
||||
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
|
||||
event: TelegramObject,
|
||||
data: Dict[str, Any],
|
||||
) -> Any:
|
||||
user_id = None
|
||||
username = None
|
||||
action = None
|
||||
|
||||
if isinstance(event, Message):
|
||||
user_id = event.from_user.id
|
||||
username = event.from_user.username
|
||||
action = f"Message: {event.text}"
|
||||
elif isinstance(event, CallbackQuery):
|
||||
user_id = event.from_user.id
|
||||
username = event.from_user.username
|
||||
action = f"Callback: {event.data}"
|
||||
|
||||
# Логируем действие пользователя
|
||||
logger.info(
|
||||
f"User Activity - "
|
||||
f"User ID: {user_id}, "
|
||||
f"Username: {username}, "
|
||||
f"Action: {action}"
|
||||
)
|
||||
|
||||
# Продолжаем выполнение обработчика
|
||||
return await handler(event, data)
|
||||
Reference in New Issue
Block a user