init commit

This commit is contained in:
2025-09-11 07:34:50 +09:00
commit 5ddc540f9e
36 changed files with 5103 additions and 0 deletions

65
init_project.py Normal file
View File

@@ -0,0 +1,65 @@
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())