From ce2860aec934fd0a823047283369a599be4fb3bd Mon Sep 17 00:00:00 2001 From: Kenik Date: Fri, 26 Jun 2026 18:20:24 +0300 Subject: [PATCH] =?UTF-8?q?start=5Fbot.bat:=20=D0=B0=D0=B2=D1=82=D0=BE-?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B2=D0=BE=D0=BC=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - проверка наличия Python в PATH; - создание .env из .env.example, если его нет (с открытием на заполнение); - установка зависимостей из requirements.txt; - далее как прежде: глушение дублей + цикл авто-перезапуска. bot_database.db создаётся кодом автоматически (с сидом услуг). Co-Authored-By: Claude Opus 4.8 --- start_bot.bat | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/start_bot.bat b/start_bot.bat index 5bd78f8..706f421 100644 --- a/start_bot.bat +++ b/start_bot.bat @@ -3,10 +3,39 @@ chcp 65001 >nul cd /d "%~dp0" title Бот ИКП (VK) -REM Защита от нескольких экземпляров. ОБЯЗАТЕЛЬНО глушим старые процессы бота -REM перед стартом: иначе два longpoll-инстанса (старый и новый) отвечают на одни -REM и те же нажатия, и цвета кнопок «пляшут» (старая палитра vs новая). -REM Внутри бота дополнительно есть lock-файл (bot.lock) — подстраховка от дублей. +REM === Подготовка окружения при первом запуске === + +REM 1) Проверяем, что Python доступен +where python >nul 2>&1 +if errorlevel 1 ( + echo [ОШИБКА] Python не найден в PATH. Установите Python 3 и запустите снова. + pause + exit /b +) + +REM 2) Нет .env — создаём из шаблона и открываем на заполнение +if not exist ".env" ( + if exist ".env.example" ( + copy /Y ".env.example" ".env" >nul + echo. + echo Создан файл .env из шаблона. Впишите VK_TOKEN, VK_GROUP_ID, ADMIN_IDS и др., + echo сохраните файл и запустите бота снова. + notepad ".env" + pause + exit /b + ) else ( + echo [ОШИБКА] Нет ни .env, ни .env.example. Настройте конфигурацию вручную. + pause + exit /b + ) +) + +REM 3) Устанавливаем зависимости (если уже стоят — отработает быстро) +echo Проверка зависимостей... +python -m pip install -r requirements.txt >nul 2>&1 + +REM 4) Защита от нескольких экземпляров: глушим старые процессы бота перед стартом +REM (иначе два longpoll-инстанса отвечают на одни нажатия). В боте ещё есть bot.lock. powershell -NoProfile -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -eq 'python.exe' -and $_.CommandLine -like '*bot.py*' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }" >nul 2>&1 :loop