Фикс: бот слал «не понял запрос» на беседы и пустые сообщения
Причина случайного фолбэка «Пока не получилось определить запрос»: - бот реагировал на сообщения из бесед/групповых чатов (peer_id != from_id) и слал отправителю в ЛС фолбэк — теперь такие сообщения игнорируются (работаем только в личке); - сообщения без текста (стикер/фото/голосовое/гифка) давали text="" → фолбэк в главном меню — теперь пустые сообщения игнорируются. Тест: test_empty_message_ignored. pytest 44 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -484,6 +484,11 @@ class VKBotApplication:
|
||||
text_lower = text_clean.lower()
|
||||
attachments = attachments or []
|
||||
|
||||
# Сообщения без текста (стикер/фото/голосовое/гифка/сервисное) не распознаются
|
||||
# и раньше вызывали фолбэк «не понял запрос». Бот текстовый — просто игнорируем.
|
||||
if not text_clean:
|
||||
return
|
||||
|
||||
# === Экстренный выключатель бота (только супер-админ) ===
|
||||
if self._is_super_admin(user_id):
|
||||
if user_id in self._favi_pending:
|
||||
@@ -1835,6 +1840,12 @@ class VKBotApplication:
|
||||
if event.type == VkBotEventType.MESSAGE_NEW:
|
||||
message_obj = event.obj.message
|
||||
user_id = message_obj["from_id"]
|
||||
peer_id = message_obj.get("peer_id", user_id)
|
||||
# Работаем только в личке. Сообщения из бесед/групповых чатов
|
||||
# (peer_id != from_id) игнорируем — иначе бот шлёт людям в ЛС
|
||||
# «не понял запрос» на каждое их сообщение в беседе.
|
||||
if peer_id != user_id:
|
||||
continue
|
||||
text = message_obj["text"]
|
||||
attachments = message_obj.get("attachments", [])
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user