mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-01-20 03:40:26 +00:00
@@ -209,6 +209,11 @@ async def show_balance_menu(
|
||||
db_user: User,
|
||||
db: AsyncSession
|
||||
):
|
||||
# Проверяем, доступно ли сообщение
|
||||
if isinstance(callback.message, InaccessibleMessage):
|
||||
await callback.answer()
|
||||
return
|
||||
|
||||
texts = get_texts(db_user.language)
|
||||
|
||||
balance_text = texts.BALANCE_INFO.format(
|
||||
|
||||
@@ -3,7 +3,7 @@ import logging
|
||||
from datetime import datetime
|
||||
from typing import Callable, Dict, Any, Awaitable
|
||||
from aiogram import BaseMiddleware
|
||||
from aiogram.types import Message, CallbackQuery, TelegramObject, User as TgUser
|
||||
from aiogram.types import Message, CallbackQuery, TelegramObject, User as TgUser, InaccessibleMessage
|
||||
from aiogram.fsm.context import FSMContext
|
||||
|
||||
from app.config import settings
|
||||
@@ -44,10 +44,18 @@ class AuthMiddleware(BaseMiddleware):
|
||||
data: Dict[str, Any]
|
||||
) -> Any:
|
||||
|
||||
# Глобальная проверка: если callback с недоступным сообщением — игнорируем
|
||||
if isinstance(event, CallbackQuery) and isinstance(event.message, InaccessibleMessage):
|
||||
try:
|
||||
await event.answer()
|
||||
except Exception:
|
||||
pass
|
||||
return None
|
||||
|
||||
user: TgUser = None
|
||||
if isinstance(event, (Message, CallbackQuery)):
|
||||
user = event.from_user
|
||||
|
||||
|
||||
if not user:
|
||||
return await handler(event, data)
|
||||
|
||||
@@ -216,4 +224,4 @@ class AuthMiddleware(BaseMiddleware):
|
||||
if hasattr(event, 'data'):
|
||||
logger.error(f"Callback data: {event.data}")
|
||||
await db.rollback()
|
||||
raise
|
||||
raise
|
||||
|
||||
Reference in New Issue
Block a user