Skip to content

AsQqqq/sample-telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Header

🚀 Шаблон бота на Aiogram 3

Добро пожаловать в репозиторий шаблона бота на Aiogram 3! 📌 Этот проект предназначен для быстрого старта при разработке Telegram-ботов с использованием асинхронного фреймворка Aiogram.

Языки и инструменты

Python Aiogram

🌳 Структура проекта

Проект разделен на несколько папок для удобства и лучшей организации кода.

📁 database — база дынных

В этой папке находится вся работа с бозой данных. Она умеет работать с 3 видами БД:

  • mysql
  • sqlite
  • postgresql

Что бы выбрать нужную БД, нужно изменить .env файл. Подробнее об этом ниже.

📁 handler — обработчики команд

Здесь находятся основные обработчики команд, которые обрабатывают входящие сообщения от пользователей.

  • __init__.py — файл для импорта и запуска обработчиков.
  • start.py — содержит обработчик команды /start, который приветствует пользователей и инициализирует взаимодействие с ботом.

📁 logs — логирование событий

Логи бота автоматически записываются с помощью библиотеки cololog. Она позволяет удобно отслеживать ошибки и события.

Установка библиотеки:

pip install cololog

📁 setting — основные настройки бота

В этой папке хранятся конфигурационные файлы и важные параметры:

  • __init__.py — импорт всех настроек бота, логирования и функций очистки консоли.
  • bot.py — содержит основные настройки, а также создает экземпляры bot и dp (dispatcher) для обработки сообщений.
  • config.py — отвечает за загрузку параметров из .env файла. Подробнее об этом ниже.
  • logger.py — конфигурация логирования, включая указание пути сохранения логов и функцию очистки консоли на разных ОС.

📁 utils — вспомогательные утилиты

Папка содержит модули для обработки данных и оптимизации работы бота:

  • optimization_data.py — отвечает за валидацию данных пользователя (ФИО) и генерацию JSON-профиля.

Пример выходных данных:

{
    "user_id": 12345678,
    "first_name": "имя<",
    "last_name": "фамилия",
    "full_name": "Имя Фамилия",
    "is_admin": false
}

Входные данные это message из обработчика.

✅ Функция автоматически удаляет нежелательные символы (например, <), которые могут вызывать ошибки при форматировании сообщений в HTML.

📝 Файл app.py — главный запускной файл

Этот файл используется для запуска бота:

python app.py

При старте:

  1. Загружаются все обработчики.
  2. Бот подключается к API Telegram.
  3. Администраторы, указанные в .env, получают уведомление о запуске бота. 📩

🔧 Настройки

Конфигурационные параметры бота хранятся в .env файле. В нем можно задать токен API, администраторов и другие параметры.

Пример .env файла:

# ----------------------------------- Системные

# Выбор типа базы данных
# 'sqlite', 'mysql', 'postgresql'
DATABASE_TYPE = "postgresql"


# ----------------------------------- Бот телеграмм

# Токен бота Telegram
TELEGRAM_KEY=ВАШ_ТОКЕН

# Список администраторов (разделенные запятой)
TELEGRAM_ADMIN=USER1,USER2,USER3

# ----------------------------------- postgreSQL

# IP для подключения
IP_ADDRESS=адрес подключения

# Название базы данных
DATABASE_NAME=название базы данных

# Пользователь с правами чтения и записи в базу данных
USERNAME=пользователь

# Пароль от пользователя
PASSWORD=пароль


# ----------------------------------- SQLite

# Название базы данных
DATABASE_NAME=название базы данных


# ----------------------------------- MySQL

# IP для подключения
IP_ADDRESS=адрес подключения

# Название базы данных
DATABASE_NAME=название базы данных

# Пользователь с правами чтения и записи в базу данных
USERNAME=пользователь

# Пароль от пользователя
PASSWORD=пароль

Не нужные базы данных (их настройки) можно удалить.

▶️ Запуск проекта

Для корректной работы бота выполните следующие шаги:

1️⃣ Создайте виртуальное окружение (рекомендуется для изоляции зависимостей):

python -m venv .venv

2️⃣ Активируйте виртуальное окружение:

  • Для Linux/macOS:
    source .venv/bin/activate
  • Для Windows:
    source .venv/Scripts/activate

3️⃣ Установите зависимости:

pip install -r requirements.txt

4️⃣ Запустите бота:

python app.py

🎯 Заключение

Этот проект является простым и удобным шаблоном для быстрого старта разработки ботов на Aiogram 3. Он поможет вам:

✅ Организовать код в удобной структуре; ✅ Работать с логами для отслеживания ошибок; ✅ Гибко настраивать бота через .env файл; ✅ Быстро развернуть и запустить своего Telegram-бота.

💡 Надеюсь, этот шаблон окажется полезным и сэкономит ваше время при создании нового бота! 🚀

Связь со мной

Telegram

About

This is a telegram bot for an easy start

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages