diff --git a/photo_bot/__pycache__/handlers.cpython-313.pyc b/photo_bot/__pycache__/handlers.cpython-313.pyc index 681a76c..427a5a1 100644 Binary files a/photo_bot/__pycache__/handlers.cpython-313.pyc and b/photo_bot/__pycache__/handlers.cpython-313.pyc differ diff --git a/photo_bot/handlers.py b/photo_bot/handlers.py index 3240af9..a983161 100644 --- a/photo_bot/handlers.py +++ b/photo_bot/handlers.py @@ -31,7 +31,6 @@ from utils.texts import ( photo_preview_ready, photo_moderation_pending, photo_welcome_with_status, - PHOTO_TEST_ENTRY_TEXT, PHOTO_TEST_WELCOME_TEXT, PHOTO_TEST_PREVIEW_TEXT, PHOTO_TEST_AI_CHECKING_TEXT, @@ -162,34 +161,31 @@ async def send_dynamic_photo_main_menu(msg: Message, user_id: str): (кнопок загрузки фото нет); - rejected — ОДНО сообщение: меню + причина отказа (кнопки на месте); - иначе/ошибка API — штатное меню входа. + Статус проверяется и показывается всегда, включая тестовый режим. """ - status = None - if not config.PHOTO_TEST_MODE: - status = await check_moderation_status(user_id) - if status.get("status") == "ok" and status.get("moderation_status") == "pending": - # Фото на модерации — не вводим в модуль (кнопок загрузки нет) - photo_id = status.get("photo_id", "???") - log_menu_stats(user_id, "Photo Bot", "Вход заблокирован — фото на модерации") - await msg.answer( - photo_moderation_pending(photo_id), - parse_mode="html" - ) - return - if status.get("status") == "ok" and status.get("moderation_status") == "rejected": - log_menu_stats(user_id, "Photo Bot", "Вход — фото отклонено, показана причина") - elif status.get("status") != "ok": - logger.warning( - f"Не удалось проверить статус модерации для {user_id}: {status.get('reason')}" - ) - status = None + # Статус модерации запрашиваем всегда (и в тестовом режиме тоже) + status = await check_moderation_status(user_id) + if status.get("status") == "ok" and status.get("moderation_status") == "pending": + # Фото на модерации — не вводим в модуль (кнопок загрузки нет) + photo_id = status.get("photo_id", "???") + log_menu_stats(user_id, "Photo Bot", "Вход заблокирован — фото на модерации") + await msg.answer( + photo_moderation_pending(photo_id), + parse_mode="html" + ) + return + if status.get("status") == "ok" and status.get("moderation_status") == "rejected": + log_menu_stats(user_id, "Photo Bot", "Вход — фото отклонено, показана причина") + elif status.get("status") != "ok": + logger.warning( + f"Не удалось проверить статус модерации для {user_id}: {status.get('reason')}" + ) + status = None states.set_state(user_id, "PHOTO_MODE") log_menu_stats(user_id, "Photo Bot (TEST)" if config.PHOTO_TEST_MODE else "Photo Bot", "Вход") - # Одно универсальное сообщение: меню + (если нужно) причина отказа - if config.PHOTO_TEST_MODE: - entry_text = PHOTO_TEST_ENTRY_TEXT - else: - entry_text = photo_welcome_with_status(status) + # Одно универсальное сообщение: меню (+ тест-кнопка) + (если нужно) статус модерации + entry_text = photo_welcome_with_status(status, show_test=config.PHOTO_TEST_MODE) await msg.answer(entry_text, parse_mode="html") diff --git a/utils/__pycache__/texts.cpython-313.pyc b/utils/__pycache__/texts.cpython-313.pyc index b2b7bdf..5e5c893 100644 Binary files a/utils/__pycache__/texts.cpython-313.pyc and b/utils/__pycache__/texts.cpython-313.pyc differ diff --git a/utils/texts.py b/utils/texts.py index 2c90526..cdf5757 100644 --- a/utils/texts.py +++ b/utils/texts.py @@ -395,11 +395,12 @@ def photo_cancel_text() -> str: def photo_moderation_pending(photo_id: str) -> str: return _photo_moderation_pending(photo_id, EMOJI_DIGITS) -def photo_welcome_with_status(status: dict = None) -> str: +def photo_welcome_with_status(status: dict = None, show_test: bool = False) -> str: """Универсальное входное сообщение фото-режима: меню + статус модерации, - если он требует внимания (отказ с причиной).""" + если он требует внимания (отказ с причиной). + show_test — добавить кнопку тест-проверки (PHOTO_TEST_MODE).""" info = _photo_status_info(status, EMOJI_DIGITS) - return _photo_welcome(EMOJI_DIGITS, info=info) + return _photo_welcome(EMOJI_DIGITS, show_test=show_test, info=info) PHOTO_TEST_WELCOME_TEXT = _photo_test_welcome(EMOJI_DIGITS) PHOTO_TEST_PREVIEW_TEXT = _photo_test_preview(EMOJI_DIGITS)