From e40dae764ab3f20a027b2cf1d0d753a0fdec87bf Mon Sep 17 00:00:00 2001 From: Vladless Date: Sun, 2 Feb 2025 05:50:14 +0300 Subject: [PATCH] change_location/CASHBACK/logging/bug_fixes --- handlers/start.py | 22 ++++++++++++++++++++-- main_obfu.py => main.py | 0 2 files changed, 20 insertions(+), 2 deletions(-) rename main_obfu.py => main.py (100%) diff --git a/handlers/start.py b/handlers/start.py index 294385de..e6627c29 100644 --- a/handlers/start.py +++ b/handlers/start.py @@ -221,15 +221,33 @@ async def process_start_logic(message: Message, state: FSMContext, session: Any, @router.callback_query(F.data == "check_subscription") async def check_subscription_callback(callback_query: CallbackQuery, state: FSMContext, session: Any, admin: bool): + user_id = callback_query.from_user.id + logger.info(f"[CALLBACK] Получен callback 'check_subscription' от пользователя {user_id}") + try: - member = await bot.get_chat_member(CHANNEL_ID, callback_query.from_user.id) + logger.info(f"[CALLBACK] Запрос информации о подписке для пользователя {user_id} на канал {CHANNEL_ID}") + member = await bot.get_chat_member(CHANNEL_ID, user_id) + logger.info(f"[CALLBACK] Статус подписки пользователя {user_id}: {member.status}") + if member.status not in ["member", "administrator", "creator"]: + logger.info(f"[CALLBACK] Пользователь {user_id} НЕ подписан на канал {CHANNEL_ID}. Текущий статус: {member.status}") await callback_query.answer("Вы еще не подписаны на канал!", show_alert=True) + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="✅ Я подписался", callback_data="check_subscription")) + await callback_query.message.answer( + f"Для использования бота, пожалуйста, подпишитесь на наш канал: {CHANNEL_URL}", + reply_markup=builder.as_markup() + ) + logger.info(f"[CALLBACK] Обновлено сообщение с приглашением подписаться для пользователя {user_id}") else: + logger.info(f"[CALLBACK] Пользователь {user_id} подписан на канал {CHANNEL_ID} - подписка подтверждена") await callback_query.answer("Подписка подтверждена!") + logger.info(f"[CALLBACK] Перед вызовом process_start_logic для пользователя {user_id}. Текущее сообщение: {callback_query.message.text}") await process_start_logic(callback_query.message, state, session, admin) + logger.info(f"[CALLBACK] Завершен вызов process_start_logic для пользователя {user_id}") + except Exception as e: - logger.error(f"Ошибка проверки подписки (callback) для пользователя {callback_query.from_user.id}: {e}") + logger.error(f"[CALLBACK] Ошибка проверки подписки для пользователя {user_id}: {e}", exc_info=True) await callback_query.answer("Ошибка проверки подписки, повторите попытку", show_alert=True) diff --git a/main_obfu.py b/main.py similarity index 100% rename from main_obfu.py rename to main.py