feat: contact form modal with Telegram, enlarge Made by button

This commit is contained in:
2026-05-14 10:08:35 +03:00
parent 4fc4ef9342
commit c4e9a9294b
3 changed files with 168 additions and 12 deletions
+40
View File
@@ -805,6 +805,46 @@ def health():
return {"status": "ok"}
@bp.post("/api/contact")
def contact():
import re as _re
data = request.get_json(silent=True) or {}
name = str(data.get("name", "")).strip()
email = str(data.get("email", "")).strip()
phone = str(data.get("phone", "")).strip()
text = str(data.get("text", "")).strip()
if not all([name, email, phone, text]):
return jsonify({"detail": "Заполните все обязательные поля"}), 422
if not _re.match(r"^[^\s@]+@[^\s@]+\.[^\s@]+$", email):
return jsonify({"detail": "Некорректный email"}), 422
if not _re.match(r"^[\+\d][\d\s\-\(\)]{6,18}$", phone):
return jsonify({"detail": "Некорректный номер телефона"}), 422
divider = "" * 22
msg = (
f"🔔 *Сообщение через форму*\n{divider}\n\n"
f"👤 *Имя:* {name}\n"
f"📧 *Email:* {email}\n"
f"📱 *Телефон:* {phone}\n\n"
f"💬 *Сообщение:*\n{text}"
)
payload = json.dumps({
"chat_id": TELEGRAM_CHAT_ID,
"text": msg,
"parse_mode": "Markdown",
}).encode()
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
try:
req = Request(url, data=payload, headers={"Content-Type": "application/json"})
with urlopen(req, timeout=10) as resp:
resp.read()
except Exception as e:
return jsonify({"detail": f"Ошибка отправки: {e}"}), 502
return jsonify({"ok": True})
@bp.get("/assets/mont-logo")
def mont_logo():
return send_from_directory(BASE_DIR, "mont_logo.png")