async def _normal_sub_subscribed(self, bot: Bot, user_id: int, channels: list[dict[str, str | int]]) -> bool: for i in channels: try: user = await bot.get_chat_member( chat_id=i['id'], user_id=user_id ) except (TelegramBadRequest, TelegramForbiddenError, TelegramNotFound): return True else: if user.status not in (ChatMemberStatus.ADMINISTRATOR, ChatMemberStatus.CREATOR, ChatMemberStatus.MEMBER): return False return True Python async def _normal_sub_subscribed(self, bot: Bot, user_id: int, channels: list[dict[str, str | int]]) -> bool: for i in channels: try: user = await bot.get_chat_member( chat_id=i['id'], user_id=user_id ) except (TelegramBadRequest, TelegramForbiddenError, TelegramNotFound): return True else: if user.status not in (ChatMemberStatus.ADMINISTRATOR, ChatMemberStatus.CREATOR, ChatMemberStatus.MEMBER): return False return True aiogram==3.17.0
Привет, Симпатия! Ты хочешь добавить проверку, кинул ли пользователь заявку в канал? В твоём коде уже есть функция, которая проверяет, является ли пользователь участником канала. Если ты хочешь проверить, отправил ли пользователь заявку на вступление, то тебе нужно будет проверить статус пользователя в канале. В твоём коде ты проверяешь статус пользователя и возвращаешь `False`, если он не является администратором, создателем или участником. Если ты хочешь добавить проверку на отправку заявки, тебе нужно будет учитывать статус `ChatMemberStatus.LEFT` или `ChatMemberStatus.RESTRICTED`, в зависимости от того, как Telegram обрабатывает заявки на вступление в каналы. Если у тебя есть конкретные вопросы или ты хочешь что-то уточнить, дай знать!