init commit
This commit is contained in:
139
setup.py
Normal file
139
setup.py
Normal file
@@ -0,0 +1,139 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
🚀 Quiz Bot - Финальная настройка и запуск
|
||||
|
||||
Этот скрипт поможет вам настроить и запустить телеграм-бота.
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def print_header():
|
||||
print("🤖 Quiz Bot - Настройка и запуск")
|
||||
print("=" * 50)
|
||||
|
||||
def check_token():
|
||||
"""Проверка наличия токена бота"""
|
||||
env_path = Path(".env")
|
||||
|
||||
if not env_path.exists():
|
||||
print("❌ Файл .env не найден!")
|
||||
print("📋 Создайте файл .env:")
|
||||
print(" cp .env.example .env")
|
||||
return False
|
||||
|
||||
# Читаем .env файл
|
||||
with open(env_path, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
if "BOT_TOKEN=your_bot_token_here" in content or "BOT_TOKEN=" in content:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def setup_instructions():
|
||||
"""Инструкции по настройке"""
|
||||
print("📋 Инструкции по настройке:")
|
||||
print()
|
||||
|
||||
print("1. 🤖 Создание бота в Telegram:")
|
||||
print(" - Найдите @BotFather в Telegram")
|
||||
print(" - Отправьте команду /newbot")
|
||||
print(" - Следуйте инструкциям")
|
||||
print(" - Скопируйте токен (выглядит как: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)")
|
||||
print()
|
||||
|
||||
print("2. ⚙️ Настройка файла .env:")
|
||||
print(" - Откройте файл .env в текстовом редакторе")
|
||||
print(" - Замените 'your_bot_token_here' на ваш токен")
|
||||
print(" - Сохраните файл")
|
||||
print()
|
||||
|
||||
print("3. 🚀 Запуск бота:")
|
||||
print(" python src/bot.py")
|
||||
print()
|
||||
|
||||
def project_status():
|
||||
"""Статус проекта"""
|
||||
print("📊 Статус проекта:")
|
||||
|
||||
# Проверяем структуру
|
||||
required_files = [
|
||||
"src/bot.py",
|
||||
"src/database/database.py",
|
||||
"src/services/csv_service.py",
|
||||
"config/config.py",
|
||||
"requirements.txt",
|
||||
"data/quiz_bot.db"
|
||||
]
|
||||
|
||||
missing_files = []
|
||||
for file_path in required_files:
|
||||
if not Path(file_path).exists():
|
||||
missing_files.append(file_path)
|
||||
|
||||
if missing_files:
|
||||
print("❌ Отсутствуют файлы:")
|
||||
for file in missing_files:
|
||||
print(f" - {file}")
|
||||
return False
|
||||
else:
|
||||
print("✅ Все необходимые файлы на месте")
|
||||
|
||||
# Проверяем CSV файлы
|
||||
csv_files = list(Path("data").glob("*.csv"))
|
||||
print(f"✅ Найдено CSV файлов: {len(csv_files)}")
|
||||
|
||||
# Проверяем базу данных
|
||||
db_path = Path("data/quiz_bot.db")
|
||||
if db_path.exists():
|
||||
print(f"✅ База данных: {db_path} ({db_path.stat().st_size} байт)")
|
||||
else:
|
||||
print("❌ База данных не найдена")
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def main():
|
||||
print_header()
|
||||
|
||||
# Проверяем статус проекта
|
||||
if not project_status():
|
||||
print("\n❌ Проект не готов к запуску!")
|
||||
print("🔧 Выполните инициализацию: python init_project.py")
|
||||
return
|
||||
|
||||
print()
|
||||
|
||||
# Проверяем токен
|
||||
if check_token():
|
||||
print("✅ Токен бота настроен")
|
||||
print()
|
||||
print("🚀 Для запуска бота выполните:")
|
||||
print(" python src/bot.py")
|
||||
print()
|
||||
print("🎮 Доступные команды в боте:")
|
||||
print(" /start - Главное меню")
|
||||
print(" /help - Справка")
|
||||
print(" /stats - Статистика")
|
||||
print(" /stop - Остановить тест")
|
||||
print()
|
||||
print("🎯 Режимы работы:")
|
||||
print(" • Гостевой режим - быстрые викторины (5 вопросов)")
|
||||
print(" • Тестирование - полные тесты (10 вопросов)")
|
||||
print()
|
||||
print("📚 Доступные тесты:")
|
||||
print(" • Корейский язык (уровни 1-5)")
|
||||
print(" • По 20 вопросов на каждый уровень")
|
||||
|
||||
else:
|
||||
print("⚠️ Токен бота не настроен!")
|
||||
setup_instructions()
|
||||
|
||||
print("\n🔧 Дополнительные утилиты:")
|
||||
print(" python demo.py - Демонстрация возможностей")
|
||||
print(" python test_quiz.py - Интерактивный тест в консоли")
|
||||
print(" python load_questions.py - Перезагрузка вопросов в БД")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user