hotfix: log any update and use index for excels
All checks were successful
Build and Run VSTU Public TG bot / build_and_run (push) Successful in 27s
All checks were successful
Build and Run VSTU Public TG bot / build_and_run (push) Successful in 27s
This commit is contained in:
51
middleware.py
Normal file
51
middleware.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from aiogram.types import Update
|
||||
from aiogram import BaseMiddleware
|
||||
from typing import Callable, Dict, Any, Awaitable
|
||||
import logging
|
||||
import time
|
||||
import json
|
||||
|
||||
class LoggingMiddleware(BaseMiddleware):
|
||||
async def __call__(
|
||||
self,
|
||||
handler: Callable[[Update, Dict[str, Any]], Awaitable[Any]],
|
||||
event: Update,
|
||||
data: Dict[str, Any]
|
||||
) -> Any:
|
||||
# Логируем входящий апдейт
|
||||
update_id = event.update_id
|
||||
update_type = "unknown"
|
||||
|
||||
if event.message:
|
||||
update_type = "message"
|
||||
chat_id = event.message.chat.id
|
||||
text = event.message.text or "[non-text]"
|
||||
log_msg = f"📥 [UPDATE {update_id}] type={update_type} chat={chat_id} text={text}"
|
||||
elif event.callback_query:
|
||||
update_type = "callback_query"
|
||||
chat_id = event.callback_query.message.chat.id
|
||||
data_str = event.callback_query.data or "[no data]"
|
||||
log_msg = f"📥 [UPDATE {update_id}] type={update_type} chat={chat_id} data={data_str}"
|
||||
elif event.my_chat_member:
|
||||
update_type = "my_chat_member"
|
||||
log_msg = f"📥 [UPDATE {update_id}] type={update_type}"
|
||||
elif event.chat_member:
|
||||
update_type = "chat_member"
|
||||
log_msg = f"📥 [UPDATE {update_id}] type={update_type}"
|
||||
else:
|
||||
log_msg = f"📥 [UPDATE {update_id}] type={update_type} raw={event.json()}"
|
||||
|
||||
# Печатаем или используем logging
|
||||
logging.info(log_msg)
|
||||
# Если настроен logging: logging.info(log_msg)
|
||||
|
||||
# Передаём управление дальше (в хендлеры)
|
||||
try:
|
||||
result = await handler(event, data)
|
||||
except Exception as e:
|
||||
# Логируем ошибку, но не подавляем
|
||||
logging.error(f"❌ [UPDATE {update_id}] handler error: {e}")
|
||||
raise
|
||||
else:
|
||||
logging.info(f"✅ [UPDATE {update_id}] handled successfully")
|
||||
return result
|
||||
Reference in New Issue
Block a user