Фото: pending — только статус (без «пришлите фото», без номера); тест-приветствие без блока модерации
This commit is contained in:
+26
-27
@@ -202,17 +202,24 @@ def sd_file_upload_error() -> str:
|
||||
|
||||
# --- Private functions (Internal logic) ---
|
||||
|
||||
def _photo_welcome(emojis: dict, show_test: bool = False, info: str = None) -> str:
|
||||
def _photo_welcome(emojis: dict, show_test: bool = False, info: str = None, pending: bool = False) -> str:
|
||||
"""Входное сообщение фото-режима. info — необязательный блок о статусе
|
||||
модерации (отказ/ожидание) — вставляется перед списком кнопок."""
|
||||
text = (
|
||||
f"🖼 <b>Режим обновления фото профиля</b>\n\n"
|
||||
f"📸 Пришлите мне вашу фотографию.\n\n"
|
||||
f"Бот автоматически найдёт лицо, покажет превью\n"
|
||||
f"и отправит фото на публикацию в ваши корпоративные сервисы.\n\n"
|
||||
)
|
||||
if info:
|
||||
text += info + "\n\n"
|
||||
модерации (отказ). pending=True — фото уже на модерации: без призыва
|
||||
отправить фото, только статус."""
|
||||
text = f"🖼 <b>Режим обновления фото профиля</b>\n\n"
|
||||
if pending:
|
||||
text += (
|
||||
f"⏳ <b>У вас уже есть фото на модерации.</b>\n"
|
||||
f"Ожидайте решения модератора.\n\n"
|
||||
)
|
||||
else:
|
||||
text += (
|
||||
f"📸 Пришлите мне вашу фотографию.\n\n"
|
||||
f"Бот автоматически найдёт лицо, покажет превью\n"
|
||||
f"и отправит фото на публикацию в ваши корпоративные сервисы.\n\n"
|
||||
)
|
||||
if info:
|
||||
text += info + "\n\n"
|
||||
if show_test:
|
||||
text += f"{emojis['1']} — тест проверка фото\n"
|
||||
return text + f"{emojis['0']} — В главное меню"
|
||||
@@ -249,13 +256,6 @@ def _photo_ai_processing(emojis: dict) -> str:
|
||||
"Пожалуйста, не закрывайте чат и подождите...</i>"
|
||||
)
|
||||
|
||||
def _photo_moderation_pending(photo_id: str, emojis: dict) -> str:
|
||||
return (
|
||||
f"⏳ <b>У вас уже есть фото на модерации.</b>\n\n"
|
||||
f"Ожидайте решения модератора.\n\n"
|
||||
f"{emojis['0']} — В главное меню"
|
||||
)
|
||||
|
||||
def _photo_status_info(status: dict = None, emojis: dict = None) -> str | None:
|
||||
"""Блок о статусе модерации для входного сообщения. Универсальный для всех
|
||||
случаев: rejected → причина отказа, pending → ожидание, прочее → пусто."""
|
||||
@@ -270,10 +270,8 @@ def _photo_status_info(status: dict = None, emojis: dict = None) -> str | None:
|
||||
f"Пожалуйста, отправьте новое фото."
|
||||
)
|
||||
if ms == "pending":
|
||||
photo_id = status.get("photo_id")
|
||||
num = f" (№ {photo_id})" if photo_id not in (None, "", "???") else ""
|
||||
return (
|
||||
f"⏳ <b>У вас уже есть фото на модерации{num}.</b>\n"
|
||||
f"⏳ <b>У вас уже есть фото на модерации.</b>\n"
|
||||
f"Ожидайте решения модератора."
|
||||
)
|
||||
return None
|
||||
@@ -284,7 +282,7 @@ def _photo_test_welcome(emojis: dict, photo_id: str = None) -> str:
|
||||
text = (
|
||||
f"🧪 <b>Тестовый режим фото-проверки</b>\n\n"
|
||||
f"📸 Пришлите фотографию — она уйдёт <b>напрямую в ИИ</b>.\n"
|
||||
f"Бот покажет вердикт ИИ. <b>Фото никуда не публикуется</b>.\n"
|
||||
f"Бот покажет вердикт ИИ. <b>Фото никуда не публикуется</b>."
|
||||
)
|
||||
if photo_id:
|
||||
text += (
|
||||
@@ -444,15 +442,16 @@ def photo_error_already_pending() -> str:
|
||||
def photo_cancel_text() -> str:
|
||||
return _photo_cancel(EMOJI_DIGITS)
|
||||
|
||||
def photo_moderation_pending(photo_id: str) -> str:
|
||||
return _photo_moderation_pending(photo_id, EMOJI_DIGITS)
|
||||
|
||||
def photo_welcome_with_status(status: dict = None, show_test: bool = False) -> str:
|
||||
"""Универсальное входное сообщение фото-режима: меню + статус модерации,
|
||||
если он требует внимания (отказ с причиной).
|
||||
"""Универсальное входное сообщение фото-режима: меню + статус модерации.
|
||||
pending — только статус (без призыва отправить фото);
|
||||
show_test — добавить кнопку тест-проверки (PHOTO_TEST_MODE)."""
|
||||
info = _photo_status_info(status, EMOJI_DIGITS)
|
||||
return _photo_welcome(EMOJI_DIGITS, show_test=show_test, info=info)
|
||||
pending = bool(
|
||||
status and status.get("status") == "ok"
|
||||
and status.get("moderation_status") == "pending"
|
||||
)
|
||||
return _photo_welcome(EMOJI_DIGITS, show_test=show_test, info=info, pending=pending)
|
||||
|
||||
PHOTO_TEST_WELCOME_TEXT = _photo_test_welcome(EMOJI_DIGITS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user