Интеллектуальный Telegram бот для поиска и рекомендации кооперативных игр с друзьями
Этот проект представляет собой полнофункциональный Telegram бот, который помогает пользователям находить кооперативные игры для совместной игры с друзьями. Бот использует современную архитектуру с модульной структурой и поддерживает все последние версии Python и aiogram.
- 🎯 Поиск по жанрам: Выживание, Ролевые игры, Стратегия, Шутеры
- 🖼️ Медиа-контент: Обложки игр, скриншоты, трейлеры
- 📱 Интерактивные клавиатуры: Удобная навигация по меню
- 👥 Персонализация: Приветствие по имени пользователя
- 🔄 Навигация: Интуитивная система меню
- 📊 База данных: Встроенная база с описаниями игр
👤 Пользователь: /start
🤖 Бот: Привет, Азиз!
👤 Пользователь: По жанру
🤖 Бот: Выберите нужный пункт
[Выживание] [Ролевые]
[Стратегия] [Шутер]
👤 Пользователь: Выживание
🤖 Бот: Вот игры жанра выживание:
[The Forest] [Dead Island] [Rust]
| Жанр | Игры |
|---|---|
| Выживание | The Forest, Dead Island, Rust |
| Ролевые | Dark Souls 3, ARK Survival Evolved, The Division |
| Стратегия | Dota 2, Civilization V, Divinity: Original Sin 2 |
| Шутеры | Rainbow Six Siege, Call of Duty: Warzone, CS:GO |
- Python 3.13+ - Основной язык программирования
- aiogram 3.22.0 - Современная библиотека для Telegram Bot API
- python-dotenv - Управление переменными окружения
- asyncio - Асинхронное программирование
- Модульная структура - Разделение логики по компонентам
- Обработка ошибок - Корректная обработка исключений
- Логирование - Подробное логирование всех операций
- Конфигурация - Централизованное управление настройками
telegram-coop-games-bot/
├── 📁 config/ # Конфигурация
│ ├── __init__.py
│ └── settings.py # Настройки и переменные окружения
├── 📁 database/ # База данных
│ ├── __init__.py
│ └── games_db.py # Модели и данные игр
├── 📁 handlers/ # Обработчики событий
│ ├── __init__.py
│ ├── command_handlers.py # Команды (/start, /help)
│ ├── callback_handlers.py # Callback-запросы
│ ├── text_handlers.py # Текстовые сообщения
│ └── media_handlers.py # Медиафайлы
├── 📁 keyboards/ # Клавиатуры
│ ├── __init__.py
│ └── keyboard_builder.py # Создание клавиатур
├── 📁 utils/ # Утилиты
│ ├── __init__.py
│ └── media_handler.py # Работа с медиафайлами
├── 📁 medias/ # Медиа-контент
│ ├── *.jpg # Обложки игр (20 файлов)
│ ├── *.mp4 # Трейлеры (12 файлов)
│ └── screenshots/ # Скриншоты (33 файла)
├── 🤖 bot_v3.py # Главный файл бота (aiogram 3.x)
├── 🤖 bot.py # Оригинальная версия (aiogram 2.x)
├── 🧪 test_*.py # Тесты
├── 📋 requirements.txt # Зависимости
├── 🔧 config.env # Переменные окружения
└── 📖 README.md # Документация
git clone https://github.com/yourusername/telegram-coop-games-bot.git
cd telegram-coop-games-botpip install -r requirements.txtСоздайте файл config.env:
BOT_TOKEN=your_telegram_bot_token_here
PARSE_MODE=HTML
DEBUG=False# Для aiogram 3.x (рекомендуется)
python bot_v3.py
# Для aiogram 2.x (совместимость)
python bot.py| Переменная | Описание | По умолчанию |
|---|---|---|
BOT_TOKEN |
Токен Telegram бота | - |
PARSE_MODE |
Режим парсинга сообщений | HTML |
DEBUG |
Режим отладки | False |
База данных игр находится в database/games_db.py и содержит:
- 12 игр в 4 жанрах
- Описания, обложки, трейлеры, скриншоты
- Легко расширяемая структура
# Тест архитектуры (без aiogram)
python test_architecture.py
# Тест с aiogram 3.x
python test_aiogram3.py
# Тест оригинального бота
python test_bot.py- Строк кода: ~2000+
- Модулей: 8 основных модулей
- Игр в базе: 12 игр
- Медиафайлов: 65+ файлов
- Жанров: 4 категории
- Тестов: 3 тестовых файла
- Модульность: Каждый компонент в отдельном модуле
- Асинхронность: Полностью асинхронный код
- Типизация: Использование type hints
- Обработка ошибок: Корректная обработка исключений
- Python 3.13+: Поддержка последних версий
- aiogram 3.x: Современный API
- Кроссплатформенность: Windows, Linux, macOS
- Быстрый отклик: Оптимизированные обработчики
- Эффективная память: Правильное управление ресурсами
- Масштабируемость: Легко расширяемая архитектура
Мы приветствуем вклад в развитие проекта! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения подробной информации.
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/AmazingFeature) - Зафиксируйте изменения (
git commit -m 'Add some AmazingFeature') - Отправьте в ветку (
git push origin feature/AmazingFeature) - Откройте Pull Request
Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.
Ваше имя
- GitHub: @yourusername
- Telegram: @yourusername
- aiogram - Отличная библиотека для Telegram Bot API
- Python - Замечательный язык программирования
- Сообщество разработчиков Telegram ботов
- Добавление новых жанров игр
- Интеграция с Steam API
- Система рейтингов игр
- Многоязычная поддержка
- Веб-интерфейс для администрирования
- Интеграция с базами данных
Если у вас есть вопросы или предложения, пожалуйста:
- Откройте Issue
- Свяжитесь со мной в Telegram
- Напишите на email: [email protected]
⭐ Если проект вам понравился, поставьте звезду! ⭐