v1.8.3: добавлены docstrings и комментарии по AGENTS.md ко всем ключевым файлам
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
"""
|
||||
Обработчик контактов пользователя.
|
||||
|
||||
Принимает контакты (телефон, email) через:
|
||||
- sharing контакта из мессенджера (VCF)
|
||||
- ручной ввод текстом
|
||||
"""
|
||||
import datetime
|
||||
import re
|
||||
import logging
|
||||
@@ -13,6 +20,7 @@ EMAIL_PATTERN = re.compile(r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$")
|
||||
|
||||
|
||||
async def handle_contact_received(user_id: int, conv_id: int, contact_text: str) -> None:
|
||||
"""Обработка контакта из мессенджера: парсинг телефона/email, переход к заявке."""
|
||||
async with async_session() as db:
|
||||
result = await db.execute(select(BotUser).where(BotUser.id == user_id))
|
||||
user = result.scalar_one_or_none()
|
||||
@@ -37,6 +45,7 @@ async def handle_contact_received(user_id: int, conv_id: int, contact_text: str)
|
||||
|
||||
|
||||
async def handle_manual_contact(user_id: int, conv_id: int, text: str) -> None:
|
||||
"""Обработка ручного ввода контакта: валидация телефона/email, отказ → consent_refused."""
|
||||
text = text.strip()
|
||||
text_lower = text.lower()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user