Доработка VK-бота ИКП: контент, новые функции, защита и визуал

Контент и брендинг:
- Реальные данные ИКP (infocyber.pro): услуги CS2/Dota 2/WoT, цены, FAQ, контакты, площадки
- Приветствие и тексты приведены к бренду ИКП

Новые функции:
- Раздельные согласия (152-ФЗ): маркетинговая рассылка — отдельный необязательный шаг
- Шаг «удобное время звонка» в форме заявки
- Раздел «Карьера в ИКП»: набор игроков и сотрудников (таблица applications)
- Админ-команды: статистика (стата) и рассылка по подписчикам с троттлингом и отпиской
- Журнал заявок leads, «бот помнит клиента», международные телефоны, валидация имени
- Email-уведомления о заявках и откликах (mailer.py); HR-адрес через HR_MAIL_TO

Защита:
- Анти-флуд по пользователю и кулдаун уведомлений оператору (анти-DDoS)
- Веб-форма: серверная валидация, honeypot, рейт-лимит, CORS по ALLOWED_ORIGIN, SQLite-first

Визуал:
- Убрана Markdown-разметка (VK её не рендерит)
- Логотип в приветствии, карусели услуг и «Карьеры» (фото 13:8), предзагрузка медиа
- Кнопки-ссылки на соцсети
- Веб-форма: анимации, конфетти на успехе

Промокоды добавлены, но пока ВЫКЛЮЧЕНЫ флагом PROMO_ENABLED (по умолчанию false).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kenik
2026-06-21 21:54:31 +03:00
parent f38324645e
commit 79cc1ba38d
13 changed files with 1860 additions and 269 deletions
+24
View File
@@ -10,3 +10,27 @@ OPERATOR_PEER_ID=12345678
# Список ID администраторов (через запятую) для управления услугами через чат
ADMIN_IDS=12345678
# Разрешённый источник (Origin) для CORS веб-формы (домен сайта). Для локальной отладки можно '*'
ALLOWED_ORIGIN=https://infocyber.pro
# Промокоды на скидку. Пока выключены. Поставь true, когда захочешь их выдавать клиентам.
PROMO_ENABLED=false
# ===== Email (SMTP) для уведомлений о заявках =====
# Адрес SMTP-сервера почты (например, smtp.yandex.ru / smtp.gmail.com / smtp.mail.ru)
SMTP_HOST=
# Порт: 465 для SSL, 587 для STARTTLS
SMTP_PORT=465
# Логин (полный email) и пароль (для Яндекс/Gmail — пароль приложения, не основной!)
SMTP_USER=
SMTP_PASSWORD=
# От кого отправлять (по умолчанию = SMTP_USER)
MAIL_FROM=
# Куда отправлять заявки (можно несколько через запятую)
MAIL_TO=group-zakaz@infocyber.pro
# Куда отправлять отклики на вакансии/набор в состав. Пусто = на тот же адрес, что MAIL_TO.
# Можно вынести на отдельный HR-адрес, напр. hr@infocyber.pro
HR_MAIL_TO=
# true — SSL (порт 465), false — STARTTLS (порт 587)
SMTP_USE_SSL=true