Skip to content

DonBenn/echo_db_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Эхо Bot с PostgreSQL, Redis, и Admin инструментами

Проект Telegram Эхо Бот сделанный на aiogram, предназначенный для демонстрации практической интеграции с реляционной базой данных (PostgreSQL) и Redis. Бот включает в себя управление ролями пользователей, выбор языка, и админ-инструменты для модерации и аналитики пользователей.

Особенности

Основная функциональность

  • Эхо ответы: Ответы на все пользовательские сообщения.
  • Регистрация пользователя: Автоматически сохраняет новых пользователей в таблице users.
  • Отслеживание активности: Отслеживает взаимодействие пользователей за день в таблице statistics.
  • Многоязычный интерфейс: Позволяет пользователям устанавливать язык интерфейса (EN/RU).
  • Ролевое поведение: Различает постоянных пользователей и администраторов.

Функции администратора

  • /ban <@username|user_id>: Забанить пользователя.
  • /unban <@username|user_id>: Разблокировать пользователя.
  • /statistics: Просмотр лучших активных пользователей.

Стэк технологий

  • Python 3.13 — Основной язык проекта.
  • aiogram – Асинхронная библиотека для ботов Telegram на Python.
  • PostgreSQL – Реляционная база данных для сохранения информации о пользователях и их активности.
  • Redis – FSM хранилище для aiogram.
  • pgAdmin – Визуальное управление базами данных для PostgreSQL.
  • Docker — Используется для запуска инфраструктурных сервисов, таких как PostgreSQL, Redis, и pgAdmin.

Запуск бота

В проекте используется Docker Compose для запуска PostgreSQL, Redis, и pgAdmin.

  1. Клонирование репозитория:
git clone https://github.com/DonBenn/echo_db_bot.git
  1. Перейти в папку echo_db_bot:
cd echo_db_bot
  1. Создайте файл .env и скопируйте код из файла .env.example в него.

  2. Заполните файл .env реальными данными (BOT_TOKEN, POSTGRES_USER, POSTGRES_PASSWORD, и т.д.)

  3. Запуск контейнеров с Postgres, Redis, и pgAdmin с командой:

docker compose up -d
  1. Создайте виртуальное окружение в корне проекта и активируйте его.

  2. Установите необходимые библиотеки в виртуальном окружении с pip:

pip install -r requirements.txt
  1. Примените миграции базы данных с помощью команды:
python3 -m migrations.create_tables
  1. Запустите main.py для запуска бота:
python3 main.py
  1. Запуск в приложении Telegram

Выберете бота в Telegram. Для запуска, выполните в боте команду

/start

Поведение Бота

Команда /start:

  • Добавляет пользователя в таблицу пользователей, если он не существует.
  • Записывает начальный язык.
  • Назначает роль пользователя или администратора.
  • Регистрирует активность в статистике.
  • Отображает /help сообщение и Menu.

Команда /help:

  • Показывает удобное для пользователя описание команд (переведённое).
  • Регистрирует активность в статистике.

Команда /lang:

  • Позволяет пользователю выбрать язык интерфейса (EN/RU).
  • Обновляет БД и надписи на кнопках соответственно.

Команды /ban и /unban (только для админов):

  • Заблокировать/разблокировать по @username или user_id.
  • Обрабатывает валидацию ввода.

Заметки

  • Статус пользователя обновляется до is_alive=false если бот заблокирован.
  • Все роли и блокировки управляются базой данных; доступ не задается жестко.

Автор проекта

Бессонов Денис

About

Эхо бот. Aiogram + Redis + PostgreSQL + Docker

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages