Some checks reported errors
continuous-integration/drone/push Build encountered an error
66 lines
2.6 KiB
Python
66 lines
2.6 KiB
Python
import asyncio
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Добавляем корневую папку проекта в Python path
|
|
project_root = Path(__file__).parent.parent
|
|
sys.path.append(str(project_root))
|
|
|
|
from config.config import config
|
|
from src.database.database import DatabaseManager
|
|
from src.services.csv_service import QuizGenerator
|
|
|
|
|
|
async def init_project():
|
|
"""Инициализация проекта - создание БД и тестовых данных"""
|
|
print("🚀 Инициализация проекта Quiz Bot...")
|
|
|
|
# Создаем необходимые папки
|
|
os.makedirs(config.database_path.split('/')[0], exist_ok=True)
|
|
os.makedirs(config.csv_data_path, exist_ok=True)
|
|
|
|
# Инициализируем базу данных
|
|
print("📊 Инициализация базы данных...")
|
|
db = DatabaseManager(config.database_path)
|
|
await db.init_database()
|
|
print("✅ База данных готова!")
|
|
|
|
# Создаем тестовые CSV файлы
|
|
print("📝 Создание тестовых CSV файлов...")
|
|
await QuizGenerator.create_all_korean_csv_files(config.csv_data_path)
|
|
print("✅ CSV файлы созданы!")
|
|
|
|
# Загружаем тесты в базу данных
|
|
print("📚 Загрузка тестов в базу данных...")
|
|
|
|
levels_info = {
|
|
1: "Базовые слова и фразы",
|
|
2: "Повседневное общение",
|
|
3: "Средний уровень грамматики",
|
|
4: "Продвинутые конструкции",
|
|
5: "Высокий уровень языка"
|
|
}
|
|
|
|
for level in range(1, 6):
|
|
test_id = await db.add_test(
|
|
name=f"Корейский язык - Уровень {level}",
|
|
description=levels_info[level],
|
|
level=level,
|
|
category="korean",
|
|
csv_file=f"korean_level_{level}.csv"
|
|
)
|
|
print(f" ✅ Тест уровня {level} добавлен (ID: {test_id})")
|
|
|
|
print("\n🎉 Проект успешно инициализирован!")
|
|
print(f"📁 База данных: {config.database_path}")
|
|
print(f"📁 CSV файлы: {config.csv_data_path}")
|
|
print("\n📋 Следующие шаги:")
|
|
print("1. Скопируйте .env.example в .env")
|
|
print("2. Добавьте ваш BOT_TOKEN в .env файл")
|
|
print("3. Запустите бота командой: python src/bot.py")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(init_project())
|