From 8f3c3b8b83ed3cc07277cc8b113023f82dc014fb Mon Sep 17 00:00:00 2001 From: Kenik Date: Sun, 26 Jul 2026 11:35:57 +0300 Subject: [PATCH] =?UTF-8?q?.env=20=D0=BA=D0=B0=D0=BA=20=D0=B3=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=D1=8B=D0=B9=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=20=D0=B2=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=B8=20(ID=20=D0=B2=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D1=8B,=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD-=D0=B7=D0=B0=D0=B3?= =?UTF-8?q?=D0=BB=D1=83=D1=88=D0=BA=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Чтобы при передаче человеку не заполнять всё вручную: .env лежит в репозитории с уже прописанными ID админов/оператора и рабочими ссылками. Заполнить нужно только VK_TOKEN и VK_GROUP_ID (ключ и ID своего сообщества). Реальный токен — только локально, в репозиторий не пушится. Co-Authored-By: Claude Opus 4.8 --- .env | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 5 +-- 2 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..364fcaf --- /dev/null +++ b/.env @@ -0,0 +1,97 @@ +# ============================================================================ +# НАСТРОЙКА БОТА «Кибершкола БАЗА» — файл .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=350793273 + +# ADMIN_IDS — у кого есть «Админка» в боте (через запятую, только цифры). +# Обычно тот же ID, что OPERATOR_PEER_ID. Пример: 350793273,12345678 +ADMIN_IDS=350793273,25076348,9782434,255661162 + +# (Необязательно) Несколько операторов — заявки уйдут ВСЕМ. Через запятую. +# 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. +# ============================================================================ diff --git a/.gitignore b/.gitignore index 3dc9efc..0947f1d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ -# Configuration files containing credentials -.env +# .env НАМЕРЕННО добавлен в репозиторий как ГОТОВЫЙ шаблон (ID уже вписаны, +# токен — заглушка). ВАЖНО: реальный VK_TOKEN вписывается только локально на +# машине с ботом и в репозиторий пушить его НЕ нужно. # Python byte-compiled files __pycache__/