This commit is contained in:
2025-11-16 12:36:02 +09:00
parent 3a25e6a4cb
commit eb3f3807fd
61 changed files with 1438 additions and 1139 deletions

View File

@@ -1,6 +1,6 @@
# Makefile для телеграм-бота розыгрышей
.PHONY: help install setup run test clean
.PHONY: help install setup setup-postgres init-db run test clean
# По умолчанию показываем справку
help:
@@ -8,22 +8,26 @@ help:
@echo "================================"
@echo ""
@echo "Доступные команды:"
@echo " make install - Установка зависимостей"
@echo " make setup - Первоначальная настройка"
@echo " make run - Запуск бота"
@echo " make test - Запуск тестов и примеров"
@echo " make migration - Создание миграции"
@echo " make migrate - Применение миграций"
@echo " make sample - Создание тестового розыгрыша"
@echo " make stats - Показать статистику"
@echo " make demo-admin - Демонстрация админ-панели"
@echo " make test-admin - Тестирование улучшений админки"
@echo " make install - Установка зависимостей"
@echo " make setup-postgres- Настройка PostgreSQL БД"
@echo " make setup - Первоначальная настройка"
@echo " make init-db - Инициализация базы данных"
@echo " make run - Запуск бота"
@echo " make test - Запуск тестов и примеров"
@echo " make migration - Создание миграции"
@echo " make migrate - Применение миграций"
@echo " make sample - Создание тестового розыгрыша"
@echo " make stats - Показать статистику"
@echo " make demo-admin - Демонстрация админ-панели"
@echo " make test-admin - Тестирование улучшений админки"
@echo ""
@echo "Быстрый старт:"
@echo "Быстрый старт с PostgreSQL:"
@echo " 1. cp .env.example .env"
@echo " 2. Отредактируйте .env файл"
@echo " 3. make setup"
@echo " 4. make run"
@echo " 3. make setup-postgres"
@echo " 4. make migrate"
@echo " 5. make setup"
@echo " 6. make run"
# Установка зависимостей
install:
@@ -31,6 +35,11 @@ install:
python3 -m venv .venv
. .venv/bin/activate && pip install -r requirements.txt
# Настройка PostgreSQL базы данных
setup-postgres:
@echo "🐘 Настройка PostgreSQL базы данных..."
./scripts/setup_postgres.sh
# Первоначальная настройка
setup: install
@echo "🔧 Настройка проекта..."
@@ -38,10 +47,21 @@ setup: install
echo "❌ Файл .env не найден! Скопируйте .env.example в .env"; \
exit 1; \
fi
. .venv/bin/activate && python utils.py init
. .venv/bin/activate && python utils.py setup-admins
. .venv/bin/activate && python -c "from src.utils.utils import setup_admin_users; import asyncio; asyncio.run(setup_admin_users())"
@echo "✅ Настройка завершена!"
# Инициализация базы данных
init-db:
@echo "🗄️ Инициализация базы данных..."
. .venv/bin/activate && python -c "from src.core.database import init_db; import asyncio; asyncio.run(init_db())"
@echo "✅ База данных инициализирована!"
# Проверка подключения к базе данных
check-db:
@echo "🔍 Проверка подключения к базе данных..."
. .venv/bin/activate && python -c "from src.core.database import async_session_maker; import asyncio; asyncio.run(async_session_maker().__aenter__())"
@echo "✅ Подключение к базе данных работает!"
# Запуск бота
run:
@echo "🚀 Запуск бота..."
@@ -60,27 +80,27 @@ migrate:
# Тесты и примеры
test:
@echo "🧪 Запуск тестов..."
. .venv/bin/activate && python examples.py
. .venv/bin/activate && python scripts/examples.py
# Создание тестового розыгрыша
sample:
@echo "🎲 Создание тестового розыгрыша..."
. .venv/bin/activate && python utils.py sample
. .venv/bin/activate && python -c "from src.utils.utils import create_sample_lottery; import asyncio; asyncio.run(create_sample_lottery())"
# Статистика
stats:
@echo "📊 Статистика бота..."
. .venv/bin/activate && python utils.py stats
. .venv/bin/activate && python -c "from src.utils.utils import show_stats; import asyncio; asyncio.run(show_stats())"
# Демонстрация админ-панели
demo-admin:
@echo "🎪 Демонстрация возможностей админ-панели..."
. .venv/bin/activate && python demo_admin.py
. .venv/bin/activate && python src/display/demo_admin.py
# Тестирование улучшений админки
test-admin:
@echo "🧪 Тестирование новых функций админ-панели..."
. .venv/bin/activate && python test_admin_improvements.py
. .venv/bin/activate && python tests/test_admin_improvements.py
# Очистка
clean: