Фото: вход в тест-режим только по кнопке 1; во входном сообщении — меню+статус+кнопка 1 (без описания тест-режима)
This commit is contained in:
Binary file not shown.
+13
-7
@@ -180,9 +180,12 @@ async def send_dynamic_photo_main_menu(msg: Message, user_id: str):
|
|||||||
states.set_state(user_id, "PHOTO_MODE")
|
states.set_state(user_id, "PHOTO_MODE")
|
||||||
moderation_pending_users.add(user_id)
|
moderation_pending_users.add(user_id)
|
||||||
if config.PHOTO_TEST_MODE:
|
if config.PHOTO_TEST_MODE:
|
||||||
# Тест-режим: можно отправить фото на проверку в ИИ
|
# Единый вход: меню + «фото на модерации» + кнопка «1 — тест проверка фото».
|
||||||
test_submode_users.add(user_id)
|
# Описание тест-режима показываем ТОЛЬКО после нажатия кнопки 1
|
||||||
await msg.answer(photo_test_welcome(photo_id), parse_mode="html")
|
await msg.answer(
|
||||||
|
photo_welcome_with_status(status, show_test=True),
|
||||||
|
parse_mode="html"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
await msg.answer(
|
await msg.answer(
|
||||||
photo_moderation_pending(photo_id),
|
photo_moderation_pending(photo_id),
|
||||||
@@ -256,16 +259,19 @@ async def photo_module_handler(msg: Message):
|
|||||||
)
|
)
|
||||||
if still_pending:
|
if still_pending:
|
||||||
photo_id = status.get("photo_id", "???")
|
photo_id = status.get("photo_id", "???")
|
||||||
if config.PHOTO_TEST_MODE and in_test_submode(user_id):
|
if config.PHOTO_TEST_MODE and (cmd == "1" or in_test_submode(user_id)):
|
||||||
# тест-режим: повторяем инфо (можно отправить фото на тест)
|
# Вход в тест-под-режим (кнопка 1) / повтор его сообщения
|
||||||
|
test_submode_users.add(user_id)
|
||||||
|
log_menu_stats(user_id, "Photo Bot (TEST)", "Тест-под-режим (фото на модерации)")
|
||||||
await msg.answer(photo_test_welcome(photo_id), parse_mode="html")
|
await msg.answer(photo_test_welcome(photo_id), parse_mode="html")
|
||||||
else:
|
else:
|
||||||
# стандартная ошибка: кнопок, кроме 0, нет
|
# стандартная ошибка: кнопок, кроме 0 (и 1 в тест-режиме), нет
|
||||||
await msg.answer(photo_invalid_cmd(), parse_mode="html")
|
await msg.answer(photo_invalid_cmd(), parse_mode="html")
|
||||||
return
|
return
|
||||||
# Статус изменился (одобрено/отклонено) — разблокируем
|
# Статус изменился (одобрено/отклонено) — разблокируем
|
||||||
|
was_in_test = in_test_submode(user_id)
|
||||||
moderation_pending_users.discard(user_id)
|
moderation_pending_users.discard(user_id)
|
||||||
if config.PHOTO_TEST_MODE:
|
if config.PHOTO_TEST_MODE and was_in_test:
|
||||||
await msg.answer(PHOTO_TEST_WELCOME_TEXT, parse_mode="html")
|
await msg.answer(PHOTO_TEST_WELCOME_TEXT, parse_mode="html")
|
||||||
else:
|
else:
|
||||||
await msg.answer(
|
await msg.answer(
|
||||||
|
|||||||
Binary file not shown.
+3
-1
@@ -270,8 +270,10 @@ def _photo_status_info(status: dict = None, emojis: dict = None) -> str | None:
|
|||||||
f"Пожалуйста, отправьте новое фото."
|
f"Пожалуйста, отправьте новое фото."
|
||||||
)
|
)
|
||||||
if ms == "pending":
|
if ms == "pending":
|
||||||
|
photo_id = status.get("photo_id")
|
||||||
|
num = f" (№ {photo_id})" if photo_id not in (None, "", "???") else ""
|
||||||
return (
|
return (
|
||||||
f"⏳ <b>У вас уже есть фото на модерации.</b>\n"
|
f"⏳ <b>У вас уже есть фото на модерации{num}.</b>\n"
|
||||||
f"Ожидайте решения модератора."
|
f"Ожидайте решения модератора."
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user