бывает такое, что иногда при проверке подписки на канал бот всем, независимо от того подписан человек или нет возвращает left случается это редко (но иногда может 2 раза за день) и длиться пару часов, что это может быть?
Gosha_coder, @router.callback_query(F.data == "checks_subscribe") async def check_subscribe_callback(callback: CallbackQuery, bot: Bot, session: AsyncSession, config: Config): SPONSOR_CHECK_MESSAGE = ''' <b>Уважаемый пользователь</b>, к сожалению, вы не подписаны на спонсоров <i>Подпишитесь на каналы спонсоров и нажмите кнопку «✅ Проверить подписку»</i> ''' user_id = callback.from_user.id user_data = await db.get_user(session, user_id) ref_id = user_data.refferal_id if user_data else None if ref_id: ref_data = await db.get_user(session, ref_id) ref_username = ref_data.username if ref_data else None else: ref_username = "Без реферера" public_channels = [ channel for channel in await db.get_all_channels(session) if channel.channel_status == 'Публичный' ] # Проверяем подписку на каждый публичный канал for channel in public_channels: try: member = await bot.get_chat_member( chat_id=channel.channel_id, user_id=user_id ) if member.status not in ["member", "administrator", "creator"]: await bot.delete_message(callback.message.chat.id, callback.message.message_id) photo = FSInputFile('bot/assets/images/sponsors.jpg') await callback.message.answer_photo( photo=photo, caption=SPONSOR_CHECK_MESSAGE, reply_markup=await kb.get_channels_keyboard(await db.get_all_channels(session)) ) await callback.answer() return except Exception as e: logger.error(f"Ошибка при проверке подписки на канал {channel.channel_id}: {e}") await callback.message.answer( "Произошла ошибка при проверке подписки. Пожалуйста, попробуйте позже." ) await callback.answer() return Python @router.callback_query(F.data == "checks_subscribe") async def check_subscribe_callback(callback: CallbackQuery, bot: Bot, session: AsyncSession, config: Config): SPONSOR_CHECK_MESSAGE = ''' <b>Уважаемый пользователь</b>, к сожалению, вы не подписаны на спонсоров <i>Подпишитесь на каналы спонсоров и нажмите кнопку «✅ Проверить подписку»</i> ''' user_id = callback.from_user.id user_data = await db.get_user(session, user_id) ref_id = user_data.refferal_id if user_data else None if ref_id: ref_data = await db.get_user(session, ref_id) ref_username = ref_data.username if ref_data else None else: ref_username = "Без реферера" public_channels = [ channel for channel in await db.get_all_channels(session) if channel.channel_status == 'Публичный' ] # Проверяем подписку на каждый публичный канал for channel in public_channels: try: member = await bot.get_chat_member( chat_id=channel.channel_id, user_id=user_id ) if member.status not in ["member", "administrator", "creator"]: await bot.delete_message(callback.message.chat.id, callback.message.message_id) photo = FSInputFile('bot/assets/images/sponsors.jpg') await callback.message.answer_photo( photo=photo, caption=SPONSOR_CHECK_MESSAGE, reply_markup=await kb.get_channels_keyboard(await db.get_all_channels(session)) ) await callback.answer() return except Exception as e: logger.error(f"Ошибка при проверке подписки на канал {channel.channel_id}: {e}") await callback.message.answer( "Произошла ошибка при проверке подписки. Пожалуйста, попробуйте позже." ) await callback.answer() return
h3artkrush, как появится ошибка, попробуй такой же запрос к другому каналу сделать и посмотреть ответ, если left - бот проклят и меняй его
Nekro3, ошибки нету никакой, просто он хуйню какую-то возвращает, вот думаю что это все мб из за русского сервака, так-как читал что из за этого траблы с тг апи есть. это кстати не в одном боте, а в 2, получается оба прокляты) я еще думал что это мб лимиты какие-то, но чет тоже не нашел никакой инфы о лимитах
h3artkrush, у меня все боты стоят на русском серваке,когда бота на своем пк запускаешь,тоже же русский айпи адрес И никаких траблов
оно еще ломается редко и вот как то думаю может все-таки лимиты, потому-что юзеров в боте достаточно много