Фикс клавиатуры возвращающегося клиента + защита от двух экземпляров

- Возвращающийся клиент: «Да/Отмена» — нижняя клавиатура, а «Сменить имя/
  телефон/Заполнить заново» — отдельные инлайн-кнопки под сообщением (ровно 3,
  как просил).
- start_bot.bat: перед запуском убивает старые экземпляры бота — устраняет
  «рандомные» цвета от нескольких параллельных longpoll-инстансов.
- Маска телефона в приветствии возвращающегося клиента.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kenik
2026-06-25 09:14:57 +03:00
parent 60ef76024e
commit fc3361c7ea
3 changed files with 20 additions and 7 deletions
+8 -3
View File
@@ -666,15 +666,20 @@ class VKBotApplication:
def _send_returning_prompt(self, user_id: int, user_data: Dict[str, Any]):
"""Приветствие для клиента, чьи имя и телефон уже сохранены."""
name = user_data.get("name")
phone = user_data.get("phone")
phone = format_phone_display(user_data.get("phone", ""))
self.send_message(
user_id,
f"Здравствуйте! Мы вас помним, {name}. 👋\n\n"
f"Ваш номер телефона по-прежнему {phone}?\n\n"
"Если всё верно — нажмите «Да, всё верно ✅», и сразу перейдём к выбору услуги. "
"Либо измените данные или заполните заявку заново.",
"Если всё верно — нажмите «Да, всё верно ✅», и сразу перейдём к выбору услуги.",
keyboard=get_returning_keyboard()
)
# Кнопки изменения данных — инлайн, под отдельным сообщением
self.send_message(
user_id,
"Нужно поправить данные? 👇",
keyboard=get_returning_changes_keyboard()
)
def _handle_form_returning(self, user_id: int, text: str, text_lower: str, user_data: Dict[str, Any]):
"""Развилка для возвращающегося клиента: подтвердить данные / сменить / заполнить заново."""