Фото: неверная команда — глобальное сообщение ошибки; тест-режим: кнопка 9 «Назад»
This commit is contained in:
+31
-13
@@ -30,7 +30,6 @@ from utils.texts import (
|
||||
photo_cancel_text,
|
||||
photo_preview_ready,
|
||||
photo_welcome_with_status,
|
||||
photo_invalid_cmd,
|
||||
photo_test_welcome,
|
||||
PHOTO_TEST_WELCOME_TEXT,
|
||||
PHOTO_TEST_PREVIEW_TEXT,
|
||||
@@ -224,6 +223,25 @@ async def photo_module_handler(msg: Message):
|
||||
cmd = raw_num
|
||||
break
|
||||
|
||||
# --- ТЕСТ-ПОД-РЕЖИМ: 9 = назад в меню фото (не выход из модуля) ---
|
||||
if in_test_submode(user_id) and cmd == "9" and not is_attachment:
|
||||
test_submode_users.discard(user_id)
|
||||
log_menu_stats(user_id, "Photo Bot (TEST)", "Назад из тест-под-режима")
|
||||
# Висящее тест-фото снимаем (тест-режим: оно никуда не публиковалось)
|
||||
if user_id in pending_photos:
|
||||
photo_data = pending_photos[user_id]
|
||||
if os.path.exists(photo_data['path']):
|
||||
os.remove(photo_data['path'])
|
||||
if 'preview_path' in photo_data and os.path.exists(photo_data['preview_path']):
|
||||
os.remove(photo_data['preview_path'])
|
||||
del pending_photos[user_id]
|
||||
status = await check_moderation_status(user_id)
|
||||
await msg.answer(
|
||||
photo_welcome_with_status(status, show_test=config.PHOTO_TEST_MODE),
|
||||
parse_mode="html"
|
||||
)
|
||||
return
|
||||
|
||||
# --- ВЫХОД (Кнопки 0 и 9 возвращают в общее меню с очисткой кэша) ---
|
||||
if cmd in ["0", "9", "/start", "меню"]:
|
||||
log_menu_stats(user_id, "Photo Bot", "Выход в главное меню")
|
||||
@@ -250,14 +268,14 @@ async def photo_module_handler(msg: Message):
|
||||
and status.get("moderation_status") == "pending"
|
||||
)
|
||||
if still_pending:
|
||||
if config.PHOTO_TEST_MODE and (cmd == "1" or in_test_submode(user_id)):
|
||||
# Вход в тест-под-режим (кнопка 1) / повтор его сообщения
|
||||
if config.PHOTO_TEST_MODE and cmd == "1":
|
||||
# Кнопка 1 — вход в тест-под-режим (можно отправить фото в ИИ)
|
||||
test_submode_users.add(user_id)
|
||||
log_menu_stats(user_id, "Photo Bot (TEST)", "Тест-под-режим (фото на модерации)")
|
||||
await msg.answer(photo_test_welcome(), parse_mode="html")
|
||||
await msg.answer(PHOTO_TEST_WELCOME_TEXT, parse_mode="html")
|
||||
else:
|
||||
# стандартная ошибка: кнопок, кроме 0 (и 1 в тест-режиме), нет
|
||||
await msg.answer(photo_invalid_cmd(), parse_mode="html")
|
||||
# Неверная команда → глобальное сообщение
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
return
|
||||
# Статус изменился (одобрено/отклонено) — разблокируем
|
||||
was_in_test = in_test_submode(user_id)
|
||||
@@ -286,11 +304,6 @@ async def photo_module_handler(msg: Message):
|
||||
# Ошибка проверки — не блокируем, просто логируем
|
||||
logger.warning(f"Не удалось проверить статус модерации для {user_id}: {status.get('reason')}")
|
||||
|
||||
# --- ТЕСТ-ПОД-РЕЖИМ: нет висящего фото — на любой текст повторяем тест-приветствие ---
|
||||
if not is_attachment and user_id not in pending_photos and in_test_submode(user_id):
|
||||
await msg.answer(PHOTO_TEST_WELCOME_TEXT, parse_mode="html")
|
||||
return
|
||||
|
||||
# --- ВХОД В ТЕСТ-ПОД-РЕЖИМ: кнопка 1 в меню фото-режима (тест включен) ---
|
||||
if (not is_attachment and user_id not in pending_photos
|
||||
and not in_test_submode(user_id)
|
||||
@@ -350,9 +363,9 @@ async def photo_module_handler(msg: Message):
|
||||
await msg.answer(PHOTO_TEST_WELCOME_TEXT, parse_mode="html")
|
||||
return
|
||||
|
||||
# --- Защита от мусорного ввода при висящем превью (тестовый мод) ---
|
||||
# --- Неверная команда при висящем превью → глобальное сообщение ---
|
||||
else:
|
||||
await msg.answer(PHOTO_TEST_PREVIEW_TEXT, parse_mode="html")
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
return
|
||||
|
||||
# --- ПОДТВЕРЖДЕНИЕ ОТПРАВКИ (Кнопка 1) ---
|
||||
@@ -421,6 +434,11 @@ async def photo_module_handler(msg: Message):
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
return
|
||||
|
||||
# --- НЕВЕРНАЯ КОМАНДА (висящего фото нет) → глобальное сообщение ---
|
||||
if not is_attachment:
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
return
|
||||
|
||||
# --- ПРИЕМ НОВОГО ФОТО ---
|
||||
if is_attachment:
|
||||
file_id = getattr(msg.content, "file_id", None)
|
||||
|
||||
Reference in New Issue
Block a user