🇷🇺 Русская версия (Нажмите, чтобы развернуть)
Репозиторий с готовыми паттернами кода для разработки Telegram-ботов на Python с использованием фреймворка aiogram 3.x. Здесь вы найдете рабочие примеры для FSM, кастомных клавиатур, middleware и других задач, что значительно ускорит ваше bot development-путешествие.
Этот репозиторий — практическое руководство и набор готовых решений для разработчиков Python Telegram ботов. Вместо того чтобы искать решения по всему интернету, вы можете взять готовый, чистый и проверенный код для самых частых задач.
- ✅ Практический пример: Файл
example_botпоказывает, как все aiogram паттерны работают вместе. - ✅ Готовые решения: Просто скопируйте нужные модули (например,
middlewareдля проверки подписки) в ваш проект. - ✅ Современный стек: Весь код написан для aiogram 3.x с использованием
asyncioи лучших практик.
Следуйте этим шагам, чтобы запустить example bot и протестировать все паттерны.
git clone https://github.com/YOUR_USERNAME/aiogram-patterns.git
cd aiogram-patternsДля Windows:
python -m venv venv && .\venv\Scripts\activateДля macOS/Linux:
python3 -m venv venv && source venv/bin/activatepip install -r requirements.txt- Скопируйте
.env.exampleв новый файл.env. - Впишите ваш
BOT_TOKENиYOUR_CHANNEL_ID.
python example_botФайл: keyboards/keyboard_factory.py
Что это? Универсальная фабрика для создания инлайн-клавиатур в aiogram без лишнего кода. Идеально для меню и навигации.
Файл: fsm_states/survey_states.py
Что это? Пример реализации Finite State Machine (FSM) для управления состояниями диалога. Используется для пошаговых сценариев, таких как регистрация или квизы.
Файл: middlewares/subscription.py
Что это? Готовый middleware для aiogram, который проверяет подписку пользователя на ваш 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.
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_botfile 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
asyncioand best practices.
Follow these steps to run the example bot and test all the patterns.
git clone https://github.com/YOUR_USERNAME/aiogram-patterns.git
cd aiogram-patternsFor Windows:
python -m venv venv && .\venv\Scripts\activateFor macOS/Linux:
python3 -m venv venv && source venv/bin/activatepip install -r requirements.txt- Copy
.env.exampleto a new file named.env. - Enter your
BOT_TOKENandYOUR_CHANNEL_ID.
python example_botFile: keyboards/keyboard_factory.py
What is it? A universal factory for creating inline keyboards in aiogram without boilerplate code. Perfect for menus and navigation.
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.
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.
Folder: deployment/
What is it? Guides on how to deploy your Telegram bot to popular hosting platforms.
Contributions are welcome! If you want to add new aiogram examples or improve existing ones, please read the CONTRIBUTING.md file.
This project is licensed under the MIT License. See the LICENSE file for details.