Правки кнопок + VK-имя в уведомлении о заявке
- Админка — всегда зелёная (POSITIVE). - Меню изменения данных: «Назад к проверке» — красная. - Возвращающийся клиент: «Да/Сменить имя/телефон/Заполнить заново/Отмена» — инлайн-кнопки под сообщением. - Уведомление оператору: добавлено реальное имя из VK с флагом «не совпадает с введённым» — помогает отсеивать рандомные/фейковые данные (профиль VK уже был). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -143,6 +143,20 @@ class VKBotApplication:
|
||||
for op_id in self._operator_ids():
|
||||
self.send_message(op_id, message)
|
||||
|
||||
def _vk_name(self, user_id: int) -> Optional[str]:
|
||||
"""Реальное имя пользователя из VK (для сверки с введёнными данными)."""
|
||||
if not self.vk or user_id <= 0:
|
||||
return None
|
||||
try:
|
||||
info = self.vk.users.get(user_ids=user_id)
|
||||
if info:
|
||||
u = info[0]
|
||||
full = f"{u.get('first_name', '')} {u.get('last_name', '')}".strip()
|
||||
return full or None
|
||||
except Exception as e:
|
||||
logger.error(f"Не удалось получить имя VK для {user_id}: {e}")
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def _progress_bar(step: int, total: int = 3) -> str:
|
||||
"""Визуальный прогресс шага формы: ▰▰▱ Шаг 2 из 3."""
|
||||
@@ -1761,9 +1775,20 @@ class VKBotApplication:
|
||||
consent_3 = user_data.get("consent_3", "Согласен")
|
||||
promo_line = f"🎁 Промокод клиента: {promo}\n" if promo else ""
|
||||
|
||||
# Реальное имя из VK + флаг несовпадения (помогает отсеять «рандомные» данные)
|
||||
vk_name = self._vk_name(user_id)
|
||||
if vk_name:
|
||||
mismatch = ""
|
||||
if name and name.strip().lower() not in vk_name.lower() and vk_name.lower() not in name.strip().lower():
|
||||
mismatch = " ⚠️ не совпадает с введённым!"
|
||||
vk_name_line = f"🪪 Имя в VK: {vk_name}{mismatch}\n"
|
||||
else:
|
||||
vk_name_line = ""
|
||||
|
||||
operator_msg = (
|
||||
f"⚡ Получена новая заявка!\n\n"
|
||||
f"👤 Имя: {name}\n"
|
||||
f"👤 Имя (введено): {name}\n"
|
||||
f"{vk_name_line}"
|
||||
f"📞 Телефон: {format_phone_display(phone)}\n"
|
||||
f"🎯 Выбранная услуга: {question}\n"
|
||||
f"🕒 Удобное время звонка: {call_time}\n"
|
||||
|
||||
Reference in New Issue
Block a user