FIX "Добавление чата для обязательной подписки"

This commit is contained in:
Boris Kovalskii
2025-10-07 00:12:21 +00:00
committed by GitHub
parent b09bde32e4
commit ebf1b22094
+7
View File
@@ -2,6 +2,7 @@ from collections.abc import Awaitable, Callable
from typing import Any
from aiogram import BaseMiddleware
from aiogram.enums import ChatType
from aiogram.exceptions import TelegramBadRequest, TelegramForbiddenError
from aiogram.fsm.context import FSMContext
from aiogram.types import InlineKeyboardButton, Message, Update
@@ -28,18 +29,24 @@ class SubscriptionMiddleware(BaseMiddleware):
tg_id = None
message = None
from_user = None
chat_type = None
if event.message:
tg_id = event.message.from_user.id
message = event.message
from_user = event.message.from_user
chat_type = event.message.chat.type
elif event.callback_query:
tg_id = event.callback_query.from_user.id
message = event.callback_query.message
from_user = event.callback_query.from_user
chat_type = event.callback_query.message.chat.type if event.callback_query.message else None
else:
return await handler(event, data)
if chat_type and chat_type != ChatType.PRIVATE:
return await handler(event, data)
try:
member = await bot.get_chat_member(CHANNEL_ID, tg_id)
if member.status not in ("member", "administrator", "creator"):