diff --git a/README.md b/README.md index 3b4a44e..fc29358 100644 --- a/README.md +++ b/README.md @@ -8,26 +8,12 @@ Telegram bot на `aiogram 3` для магазина с категориями, 1. Создаст виртуальное окружение `.venv` 2. Установит зависимости из `requirements.txt` -3. Создаст `.env` из примера и откроет его для заполнения (если ещё нет) -4. Запустит бота - -## Запуск через .sh (Linux) - -```bash -chmod +x start.sh -./start.sh -``` - -Скрипт автоматически: - -1. Создаст виртуальное окружение `.venv` -2. Установит зависимости из `requirements.txt` -3. Создаст `.env` из примера и откроет его в `$EDITOR` (или `nano`) для заполнения (если ещё нет) +3. Создаст `.env` из примера (если ещё нет) 4. Запустит бота --- -## Быстрый запуск +## Запуск через командную строку (вручную) 1. Установи Python `3.11+`. 2. Поставь зависимости: diff --git a/start.bat b/start.bat index 46adddd..1ed16e1 100644 --- a/start.bat +++ b/start.bat @@ -1,52 +1,2 @@ @echo off -chcp 65001 >nul -title AutoShop Bot - -:: Проверка Python -python --version >nul 2>&1 -if errorlevel 1 ( - echo [ERROR] Python не найден. Установи Python 3.11+ с https://python.org - pause - exit /b 1 -) - -:: Создание виртуального окружения если нет -if not exist ".venv" ( - echo [INFO] Создание виртуального окружения... - python -m venv .venv -) - -:: Активация виртуального окружения -call .venv\Scripts\activate.bat - -:: Установка зависимостей -echo [INFO] Установка зависимостей... -pip install -r requirements.txt --quiet - -:: Создание .env если нет -if not exist ".env" ( - echo [INFO] Создание .env из примера... - copy .env.example .env >nul - echo. - echo [!] Заполни BOT_TOKEN и BOT_ADMIN_IDS в файле .env - echo [!] Открываю .env для редактирования... - notepad .env - echo. - echo Нажми любую клавишу после сохранения .env... - pause >nul -) - -:: Проверка BOT_TOKEN -findstr /r "BOT_TOKEN=." .env >nul 2>&1 -if errorlevel 1 ( - echo [ERROR] BOT_TOKEN не заполнен в .env - notepad .env - pause - exit /b 1 -) - -:: Запуск бота -echo [INFO] Запуск бота... -python main.py - -pause \ No newline at end of file +powershell -ExecutionPolicy Bypass -File "%~dp0start.ps1" diff --git a/start.ps1 b/start.ps1 new file mode 100644 index 0000000..4587ae1 --- /dev/null +++ b/start.ps1 @@ -0,0 +1,52 @@ +$Host.UI.RawUI.WindowTitle = "AutoShop Bot" +$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path +Set-Location $ScriptDir + +# Проверка Python +if (-not (Get-Command python -ErrorAction SilentlyContinue)) { + Write-Host "[ERROR] Python не найден. Установи Python 3.11+ с https://python.org" -ForegroundColor Red + exit 1 +} + +# Создание .venv если нет +if (-not (Test-Path ".venv")) { + Write-Host "[INFO] Создание виртуального окружения..." + python -m venv .venv +} + +# Активация +& ".venv\Scripts\Activate.ps1" + +# Установка зависимостей +Write-Host "[INFO] Установка зависимостей..." +python -m pip install --upgrade pip +pip install -r requirements.txt + +cls + +# Создание .env если нет +if (-not (Test-Path ".env")) { + Write-Host "[INFO] Создание .env из примера..." + Copy-Item ".env.example" ".env" + Write-Host "[!] Заполни BOT_TOKEN и BOT_ADMIN_IDS в файле .env" -ForegroundColor Yellow + Write-Host "[!] Открываю .env для редактирования..." -ForegroundColor Yellow + notepad .env + Read-Host "Нажми Enter после сохранения .env" +} + +cls + +# Проверка BOT_TOKEN +$envContent = Get-Content ".env" -Raw +if ($envContent -notmatch "(?m)^BOT_TOKEN=\S+") { + Write-Host "[ERROR] BOT_TOKEN не заполнен в .env" -ForegroundColor Red + Write-Host "[!] Открываю .env для редактирования..." -ForegroundColor Yellow + notepad .env + Read-Host "Нажми Enter после сохранения .env" +} + +cls + +# Запуск бота +Write-Host "[INFO] Запуск бота..." -ForegroundColor Green +python main.py diff --git a/start.sh b/start.sh deleted file mode 100644 index 080fa38..0000000 --- a/start.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -set -e - -# Проверка Python -if ! command -v python3 &>/dev/null; then - echo "[ERROR] Python не найден. Установи Python 3.11+" - exit 1 -fi - -# Создание виртуального окружения если нет -if [ ! -d ".venv" ]; then - echo "[INFO] Создание виртуального окружения..." - python3 -m venv .venv -fi - -# Активация виртуального окружения -source .venv/bin/activate - -# Установка зависимостей -echo "[INFO] Установка зависимостей..." -pip install -r requirements.txt --quiet - -# Создание .env если нет -if [ ! -f ".env" ]; then - echo "[INFO] Создание .env из примера..." - cp .env.example .env - echo "" - echo "[!] Заполни BOT_TOKEN и BOT_ADMIN_IDS в файле .env" - echo "[!] Открываю .env для редактирования..." - ${EDITOR:-nano} .env -fi - -# Проверка BOT_TOKEN -if ! grep -qP "BOT_TOKEN=.+" .env 2>/dev/null; then - if ! grep -q "BOT_TOKEN=." .env; then - echo "[ERROR] BOT_TOKEN не заполнен в .env" - ${EDITOR:-nano} .env - exit 1 - fi -fi - -# Запуск бота -echo "[INFO] Запуск бота..." -python3 main.py \ No newline at end of file