FIX "Добавление чата для обязательной подписки"
This commit is contained in:
@@ -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"):
|
||||
|
||||
Reference in New Issue
Block a user