photo_bot: тестовый мод — фото напрямую в ИИ, без публикации

This commit is contained in:
Denis Krivochenko
2026-08-17 16:03:04 +07:00
parent 9f35db6f09
commit aee2fe8f25
5 changed files with 268 additions and 16 deletions
+58
View File
@@ -243,6 +243,53 @@ def _photo_moderation_pending(photo_id: str, emojis: dict) -> str:
f"{emojis['0']}В главное меню"
)
def _photo_test_welcome(emojis: dict) -> str:
return (
f"🧪 <b>Тестовый режим фото-проверки</b>\n\n"
f"📸 Пришлите фотографию — она уйдёт <b>напрямую в ИИ</b>.\n"
f"Бот покажет вердикт ИИ. <b>Фото никуда не публикуется</b>.\n\n"
f"{emojis['0']}В главное меню"
)
def _photo_test_preview(emojis: dict) -> str:
return (
f"🧪 <b>Тестовый режим</b>\n\n"
f"Кадр получен. Нажмите {emojis['1']} — отправлю фото напрямую в ИИ.\n"
f"<b>Фото никуда не публикуется.</b>\n\n"
f"{emojis['2']} — Загрузить другое фото\n"
f"{emojis['0']}В главное меню"
)
def _photo_test_ai_checking(emojis: dict) -> str:
return (
"🧪 <i>Отправляю фото напрямую в ИИ (тестовый режим)...\n"
"Обычно это занимает 1-3 минуты. Пожалуйста, подождите...</i>"
)
def _photo_test_receiving(emojis: dict) -> str:
return "🧪 <i>Ищу лицо на фото (тестовый режим), пожалуйста, подождите...</i>"
def _photo_test_result(verdict: str, reason: str, emojis: dict) -> str:
icons = {"Прошел": "", "Не прошел": "", "На модерацию": ""}
icon = icons.get(verdict, "")
return (
f"🧪 <b>Тестовый режим: вердикт ИИ</b>\n\n"
f"{icon} <b>Вердикт:</b> {verdict}\n"
f"📝 <b>Причина:</b> {reason}\n\n"
f"⚠️ <i>Тестовый режим: фото не публиковалось и никуда не отправлялось.</i>\n\n"
f"{emojis['2']} — Загрузить другое фото\n"
f"{emojis['0']}В главное меню"
)
def _photo_test_ai_error(emojis: dict) -> str:
return (
f"❌ <b>Ошибка обращения к ИИ.</b>\n\n"
f"Проверьте доступность ИИ-сервиса. Повторите попытку позже.\n\n"
f"{emojis['1']} — Повторить проверку\n"
f"{emojis['2']} — Загрузить другое фото\n"
f"{emojis['0']}В главное меню"
)
def _photo_success_published(emojis: dict) -> str:
return (
f"🎉 <b>Фото успешно опубликовано!</b>\n\n"
@@ -310,6 +357,17 @@ def photo_cancel_text() -> str:
def photo_moderation_pending(photo_id: str) -> str:
return _photo_moderation_pending(photo_id, EMOJI_DIGITS)
PHOTO_TEST_WELCOME_TEXT = _photo_test_welcome(EMOJI_DIGITS)
PHOTO_TEST_PREVIEW_TEXT = _photo_test_preview(EMOJI_DIGITS)
PHOTO_TEST_AI_CHECKING_TEXT = _photo_test_ai_checking(EMOJI_DIGITS)
PHOTO_TEST_RECEIVING_TEXT = _photo_test_receiving(EMOJI_DIGITS)
def photo_test_result(verdict: str, reason: str) -> str:
return _photo_test_result(verdict, reason, EMOJI_DIGITS)
def photo_test_ai_error() -> str:
return _photo_test_ai_error(EMOJI_DIGITS)
# =========================================================
# SEARCH BOT