diff --git a/app/main.py b/app/main.py index 0712553..5959b03 100644 --- a/app/main.py +++ b/app/main.py @@ -985,20 +985,23 @@ async def request_access(request: Request, db: Session = Depends(get_db)): if not _re.match(r'^[\+\d][\d\s\-\(\)]{6,18}$', phone): raise HTTPException(status_code=422, detail="Некорректный номер телефона") + import html as _html + def _e(s): return _html.escape(str(s)) + products_text = "" if products: - items = "\n".join(f" • {p}" for p in products) - products_text = f"\n\n🖥 *Интересующие продукты:*\n{items}" + items = "\n".join(f" • {_e(p)}" for p in products) + products_text = f"\n\n🖥 Интересующие продукты:\n{items}" divider = "━━━━━━━━━━━━━━━━━━━━━━" - manager_text = f"\n🤝 *Менеджер MONT:* {manager}" if manager else "" + manager_text = f"\n🤝 Менеджер MONT: {_e(manager)}" if manager else "" text = ( - f"🔔 *Новый запрос доступа к полигону MONT*\n" + f"🔔 Новый запрос доступа к полигону MONT\n" f"{divider}\n\n" - f"👤 *Имя:* {name}\n" - f"🏢 *Компания:* {company}\n" - f"📧 *Email:* {email}\n" - f"📱 *Телефон:* {phone}" + f"👤 Имя: {_e(name)}\n" + f"🏢 Компания: {_e(company)}\n" + f"📧 Email: {_e(email)}\n" + f"📱 Телефон: {_e(phone)}" f"{manager_text}" f"{products_text}" ) @@ -1008,8 +1011,8 @@ async def request_access(request: Request, db: Session = Depends(get_db)): geo = _get_geo(ip) geo_text = "" if geo: - geo_text += "\n📍 *Местоположение:* " + geo - geo_text += "\n🖥 *IP:* " + ip + geo_text += "\n📍 Местоположение: " + _e(geo) + geo_text += "\n🖥 IP: " + _e(ip) text += geo_text if not TELEGRAM_BOT_TOKEN or not TELEGRAM_CHAT_ID: @@ -1037,7 +1040,7 @@ async def request_access(request: Request, db: Session = Depends(get_db)): _tg_api("sendMessage", { "chat_id": TELEGRAM_CHAT_ID, "text": text, - "parse_mode": "Markdown", + "parse_mode": "HTML", "reply_markup": _make_approval_keyboard(req_id), }) except Exception as e: