Files
Kenik 9ded7a513d .env.example: понятная инструкция по активации + защита config от пустых значений
- .env.example переписан как пошаговый гид: разделы (подключение к сообществу,
  кому приходят заявки, почта, ссылки, /favi-stop), пометки «ОБЯЗАТЕЛЬНО»,
  правила заполнения (без инлайн-комментариев, числа не оставлять пустыми).
- config: безопасный разбор чисел (_int_env) — пустое/кривое VK_GROUP_ID/порт/часы
  больше не роняют бот при старте, откатываются на дефолт. '#' в значениях (URL
  #prices) не трогаем.

pytest 43 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-26 11:11:38 +03:00

98 lines
6.5 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================================
# НАСТРОЙКА БОТА «Кибершкола БАЗА» — файл .env
# ============================================================================
# Это ШАБЛОН. Что делать:
# 1) Скопируйте этот файл рядом и назовите ровно .env (без .example).
# Проще: запустите start_bot.bat — он сам создаст .env и откроет его в
# Блокноте. Заполните, сохраните, запустите start_bot.bat снова.
# 2) Заполните строки из раздела 1 и 2 (помечены «ОБЯЗАТЕЛЬНО»). Остальное —
# по желанию.
#
# ПРАВИЛА ЗАПОЛНЕНИЯ (важно!):
# • Формат строки: ПЕРЕМЕННАЯ=значение — без пробелов вокруг «=», без кавычек.
# • НЕ пишите комментарии в одной строке со значением. Комментарий — только
# на отдельной строке, начинается с #.
# • Числовые поля (ID, порт) не оставляйте пустыми — впишите число.
# ============================================================================
# ───────────────── 1. ПОДКЛЮЧЕНИЕ К СООБЩЕСТВУ (ОБЯЗАТЕЛЬНО) ──────────────
# VK_TOKEN — ключ доступа ВАШЕГО сообщества:
# Сообщество → Управление → Работа с API → Ключи доступа → Создать ключ
# (право «Сообщения сообщества») → скопировать сюда.
# Там же: Работа с API → Long Poll API → включить, версия — последняя.
VK_TOKEN=your_vk_community_token_here
# VK_GROUP_ID — числовой ID сообщества (только цифры). Замените 0 на свой ID.
# Узнать ID: Управление → Работа с API (виден там), либо через vk.com.
VK_GROUP_ID=0
# ───────────────── 2. КОМУ ПРИХОДЯТ ЗАЯВКИ (ОБЯЗАТЕЛЬНО) ──────────────────
# OPERATOR_PEER_ID — VK ID человека, которому падают заявки/запросы клиентов.
# Узнать свой ID можно, написав боту @idbot во ВКонтакте.
OPERATOR_PEER_ID=0
# ADMIN_IDS — у кого есть «Админка» в боте (через запятую, только цифры).
# Обычно тот же ID, что OPERATOR_PEER_ID. Пример: 350793273,12345678
ADMIN_IDS=0
# (Необязательно) Несколько операторов — заявки уйдут ВСЕМ. Через запятую.
# OPERATOR_PEER_IDS=350793273,12345678
# (Необязательно) Часы работы — вне их клиенту пишем «ответим утром».
WORK_HOUR_START=9
WORK_HOUR_END=21
# ───────────────── 3. ПОЧТА ДЛЯ ЗАЯВОК (по желанию) ──────────────────────
# Заполните — и каждая заявка продублируется на почту. Оставите пусто — бот
# работает как обычно, просто письма не шлёт.
# SMTP_HOST — сервер почты, напр. smtp.yandex.ru / smtp.mail.ru / smtp.gmail.com
SMTP_HOST=
# SMTP_PORT — 465 для SSL (обычно), 587 для STARTTLS
SMTP_PORT=465
# SMTP_USER — полный email-логин
SMTP_USER=
# SMTP_PASSWORD — ПАРОЛЬ ПРИЛОЖЕНИЯ (для Яндекс/Gmail), не основной пароль!
SMTP_PASSWORD=
# MAIL_FROM — от кого (пусто = как SMTP_USER)
MAIL_FROM=
# MAIL_TO — куда слать заявки (можно несколько через запятую)
MAIL_TO=group-zakaz@infocyber.pro
# SMTP_USE_SSL — true для порта 465, false для 587
SMTP_USE_SSL=true
# ───────────────── 4. ССЫЛКИ КНОПОК ЗАПИСИ/ОПЛАТЫ ────────────────────────
# Куда ведут кнопки в боте. Их также можно менять прямо из «Админки → Ссылки».
# UTM-метки бот добавляет сам.
LINK_TRIAL=https://infocyber.pro/form/index.html
LINK_TARIFFS=https://infocyber.pro/#prices
LINK_GROUP_4=https://infocyber.pro/form/index.html?service_id=web_2
LINK_GROUP_8=https://infocyber.pro/form/index.html?service_id=web_3
LINK_IND_1=https://infocyber.pro/form/index.html?service_id=web_1
LINK_IND_4=https://infocyber.pro/form/index.html?service_id=web_4
LINK_IND_8=https://infocyber.pro/form/index.html?service_id=web_5
# LINK_SUMMER — летний интенсив (замените, когда будет своя страница)
LINK_SUMMER=https://infocyber.pro/form/index.html
# ───────────────── 5. ЭКСТРЕННЫЙ СТОП /favi-stop (по желанию) ─────────────
# Команда /favi-stop у супер-админа отключает бота по паролю. Хранится ХЭШ
# пароля, а не сам пароль. Пусто — команда отключена.
# Сгенерировать хэш своего пароля (замените ВАШ_ПАРОЛЬ):
# py -3.11 -c "import hashlib,os,sys; s=os.urandom(16); print('pbkdf2_sha256$240000$'+s.hex()+'$'+hashlib.pbkdf2_hmac('sha256',sys.argv[1].encode(),s,240000).hex())" "ВАШ_ПАРОЛЬ"
FAVI_STOP_HASH=
# ───────────────── ПРОЧЕЕ (можно не трогать) ─────────────────────────────
ALLOWED_ORIGIN=https://infocyber.pro
PROMO_ENABLED=false
# ============================================================================
# СУПЕР-АДМИН (кто добавляет админов и делает /favi-stop) задаётся НЕ здесь,
# а в коде — файл config.py, список SUPER_ADMIN_IDS.
# Готово? Запускайте start_bot.bat.
# ============================================================================