diff --git a/middlewares/subscription.py b/middlewares/subscription.py index 658a1fcc..914e6196 100644 --- a/middlewares/subscription.py +++ b/middlewares/subscription.py @@ -29,24 +29,32 @@ class SubscriptionMiddleware(BaseMiddleware): tg_id = None message = None from_user = None - chat_type = None if event.message: + if event.message.chat.type != ChatType.PRIVATE: + return await handler(event, data) + if not event.message.from_user: + return await handler(event, data) + if event.message.from_user.is_bot: + return await handler(event, data) + 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: + if event.callback_query.message and event.callback_query.message.chat.type != ChatType.PRIVATE: + return await handler(event, data) + if not event.callback_query.from_user: + return await handler(event, data) + if event.callback_query.from_user.is_bot: + return await handler(event, data) + 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"):