Фото: статусы модерации показываются и в тестовом режиме

This commit is contained in:
dddennnisss
2026-08-21 22:22:42 +07:00
parent 1c2d018be4
commit 0b9a697099
4 changed files with 25 additions and 28 deletions
Binary file not shown.
+21 -25
View File
@@ -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")
Binary file not shown.
+4 -3
View File
@@ -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)