Имеется код, который по задумке должен принимать заявки пользователей с подпиской и, соответственно, отклонять заявки пользователей без неё:
@DISPATCHER.chat_join_request_handler(lambda request: request.chat.id == 1234)
@DISPATCHER.throttled(rate=300)
@get_error(LOGGER)
async def process_channel_join_request(request: ChatJoinRequest) -> None:
"""Обрабатывает заявку на вступление в канал."""
if user := await DATABASE.get_user(request.from_user.id):
if user.subscription.status:
if not user.channel_member_status:
LOGGER.info(f'Пользователь {request.from_user.id} добавлен в канал')
await DATABASE.update_user(request.from_user.id, EditableUserInformation.channel_member_status, True)
await request.approve()
else:
await BOT.send_message(request.from_user.id, '')
await request.decline()
else:
await BOT.send_message(request.from_user.id, '')
await request.decline()
Однако код работает криво, что странно. Когда тестирую на втором аккаунте Telegram - всё в норме, а вот с клиентами иногда висит заявка, которую бот
не отклоняет, хоть и должен. В чём причина и, самое главное, как фиксить?