Skip to content

AndyGptpro/aiogram-patterns

Repository files navigation

Python Telegram Bot Patterns (aiogram 3.x)

Python Version Aiogram Version GitHub Stars License

🇷🇺 Русская версия (Нажмите, чтобы развернуть)

Репозиторий с готовыми паттернами кода для разработки Telegram-ботов на Python с использованием фреймворка aiogram 3.x. Здесь вы найдете рабочие примеры для FSM, кастомных клавиатур, middleware и других задач, что значительно ускорит ваше bot development-путешествие.


🚀 Что такое Aiogram Patterns?

Этот репозиторий — практическое руководство и набор готовых решений для разработчиков Python Telegram ботов. Вместо того чтобы искать решения по всему интернету, вы можете взять готовый, чистый и проверенный код для самых частых задач.

  • Практический пример: Файл example_bot показывает, как все aiogram паттерны работают вместе.
  • Готовые решения: Просто скопируйте нужные модули (например, middleware для проверки подписки) в ваш проект.
  • Современный стек: Весь код написан для aiogram 3.x с использованием asyncio и лучших практик.

⚡ Быстрый старт: запуск демонстрационного бота

Следуйте этим шагам, чтобы запустить example bot и протестировать все паттерны.

1. Клонируйте репозиторий

git clone https://github.com/YOUR_USERNAME/aiogram-patterns.git
cd aiogram-patterns

2. Создайте и активируйте виртуальное окружение

Для Windows:

python -m venv venv && .\venv\Scripts\activate

Для macOS/Linux:

python3 -m venv venv && source venv/bin/activate

3. Установите зависимости

pip install -r requirements.txt

4. Настройте .env файл

  • Скопируйте .env.example в новый файл .env.
  • Впишите ваш BOT_TOKEN и YOUR_CHANNEL_ID.

5. Запустите Python Telegram Bot

python example_bot

🛠️ Паттерны кода для Aiogram 3

1. Фабрика клавиатур: Динамические Telegram клавиатуры

Файл: keyboards/keyboard_factory.py

Что это? Универсальная фабрика для создания инлайн-клавиатур в aiogram без лишнего кода. Идеально для меню и навигации.

2. FSM States: Управление диалогами

Файл: fsm_states/survey_states.py

Что это? Пример реализации Finite State Machine (FSM) для управления состояниями диалога. Используется для пошаговых сценариев, таких как регистрация или квизы.

3. Subscription Middleware: Проверка подписки на канал

Файл: middlewares/subscription.py

Что это? Готовый middleware для aiogram, который проверяет подписку пользователя на ваш Telegram-канал.

4. Deployment Guides: Развертывание Telegram-бота

Папка: deployment/

Что это? Инструкции, как сделать деплой Telegram-бота на популярных хостинг-платформах.


🤝 Вклад в проект

Мы приветствуем вклад в проект! Если вы хотите добавить новые aiogram примеры или улучшить существующие, ознакомьтесь с файлом CONTRIBUTING.md.

📄 Лицензия

Этот проект распространяется под лицензией MIT. Подробности можно найти в файле LICENSE.


🇬🇧 English Version (Click to expand)

A repository with production-ready code patterns for Python Telegram bot development using the aiogram 3.x framework. Find working examples for FSM, custom keyboards, middleware, and other common tasks to accelerate your bot development journey.


🚀 What is Aiogram Patterns?

This repository is a practical guide and a set of ready-to-use solutions for Python Telegram bot developers. Instead of searching for solutions across the internet, you can grab clean, tested code for the most common tasks.

  • Practical Example: The example_bot file shows how all aiogram patterns work together.
  • Ready-to-use Solutions: Simply copy the modules you need (e.g., the subscription middleware) into your project.
  • Modern Stack: All code is written for aiogram 3.x using asyncio and best practices.

⚡ Quick Start: Running the Example Bot

Follow these steps to run the example bot and test all the patterns.

1. Clone the repository

git clone https://github.com/YOUR_USERNAME/aiogram-patterns.git
cd aiogram-patterns

2. Create and activate a virtual environment

For Windows:

python -m venv venv && .\venv\Scripts\activate

For macOS/Linux:

python3 -m venv venv && source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Configure the .env file

  • Copy .env.example to a new file named .env.
  • Enter your BOT_TOKEN and YOUR_CHANNEL_ID.

5. Run the Python Telegram Bot

python example_bot

🛠️ Code Patterns for Aiogram 3

1. Keyboard Factory: Dynamic Telegram Keyboards

File: keyboards/keyboard_factory.py

What is it? A universal factory for creating inline keyboards in aiogram without boilerplate code. Perfect for menus and navigation.

2. FSM States: Managing Dialogues

File: fsm_states/survey_states.py

What is it? An example of a Finite State Machine (FSM) implementation to manage dialogue states. Used for step-by-step scenarios like registration or quizzes.

3. Subscription Middleware: Check Channel Subscription

File: middlewares/subscription.py

What is it? A ready-to-use middleware for aiogram that checks if a user is subscribed to your Telegram channel.

4. Deployment Guides: Deploying a Telegram Bot

Folder: deployment/

What is it? Guides on how to deploy your Telegram bot to popular hosting platforms.


🤝 Contributing

Contributions are welcome! If you want to add new aiogram examples or improve existing ones, please read the CONTRIBUTING.md file.

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Production-ready code patterns and a complete example bot for developers using Python and aiogram 3.x. Speeds up development by providing clean solutions for common tasks.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages