Фикс: пустой ряд в клавиатуре ломал отправку («Задать вопрос» молчал) + vk.ru в резолвере
1) _kb при пустых рядах создавал ПУСТОЙ первый ряд (add_line до кнопок) — VK отклонял такую клавиатуру, из-за чего сообщения шага «Задать вопрос», «другая игра», «нужен совет» не отправлялись (состояние при этом менялось). Теперь add_line ставится только между реальными кнопками — пустых рядов нет. 2) _resolve_vk_user_id теперь понимает домен vk.ru (и www./m.), а не только vk.com — ссылку https://vk.ru/screenname на добавление админа бот принимает. Тесты: test_funnel_keyboards_no_empty_rows, test_resolve_vk_links. pytest 40 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+9
-4
@@ -34,16 +34,21 @@ def _kb(rows, back=False, ask_manager=False, back_menu=True):
|
||||
back_menu — кнопка «В главное меню ↩️».
|
||||
"""
|
||||
keyboard = VkKeyboard(one_time=False)
|
||||
for i, row in enumerate(rows):
|
||||
if i:
|
||||
has = False # была ли уже добавлена хоть одна кнопка (чтобы не создавать пустой ряд)
|
||||
for row in rows:
|
||||
if has:
|
||||
keyboard.add_line()
|
||||
for label in row:
|
||||
keyboard.add_button(label, color=VkKeyboardColor.SECONDARY)
|
||||
has = True
|
||||
if ask_manager:
|
||||
keyboard.add_line()
|
||||
if has:
|
||||
keyboard.add_line()
|
||||
keyboard.add_button("Задать вопрос менеджеру 💬", color=VkKeyboardColor.SECONDARY)
|
||||
has = True
|
||||
if back or back_menu:
|
||||
keyboard.add_line()
|
||||
if has:
|
||||
keyboard.add_line()
|
||||
if back:
|
||||
keyboard.add_button("Назад ⬅️", color=VkKeyboardColor.SECONDARY)
|
||||
if back_menu:
|
||||
|
||||
Reference in New Issue
Block a user