Skip to content

🤖 Intelligent Telegram bot for finding cooperative games to play with friends. Features modern architecture, media support, and interactive keyboards.

License

Notifications You must be signed in to change notification settings

AzizMukhammadiev/telegram-coop-games-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Telegram Bot для поиска кооперативных игр

Python aiogram License Telegram

Интеллектуальный 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              # Документация

⚡ Быстрый старт

1. Клонирование репозитория

git clone https://github.com/yourusername/telegram-coop-games-bot.git
cd telegram-coop-games-bot

2. Установка зависимостей

pip install -r requirements.txt

3. Настройка переменных окружения

Создайте файл config.env:

BOT_TOKEN=your_telegram_bot_token_here
PARSE_MODE=HTML
DEBUG=False

4. Запуск бота

# Для 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 для получения подробной информации.

Как внести вклад

  1. Форкните репозиторий
  2. Создайте ветку для новой функции (git checkout -b feature/AmazingFeature)
  3. Зафиксируйте изменения (git commit -m 'Add some AmazingFeature')
  4. Отправьте в ветку (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

📝 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.

👨‍💻 Автор

Ваше имя

🙏 Благодарности

  • aiogram - Отличная библиотека для Telegram Bot API
  • Python - Замечательный язык программирования
  • Сообщество разработчиков Telegram ботов

📈 Roadmap

  • Добавление новых жанров игр
  • Интеграция с Steam API
  • Система рейтингов игр
  • Многоязычная поддержка
  • Веб-интерфейс для администрирования
  • Интеграция с базами данных

📞 Поддержка

Если у вас есть вопросы или предложения, пожалуйста:

  1. Откройте Issue
  2. Свяжитесь со мной в Telegram
  3. Напишите на email: [email protected]

Если проект вам понравился, поставьте звезду!

About

🤖 Intelligent Telegram bot for finding cooperative games to play with friends. Features modern architecture, media support, and interactive keyboards.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages