Skip to content

Бот Telegram для сортировки и пересылки заявок исполнителям. Flask

Notifications You must be signed in to change notification settings

tizerof/gupsppmbot

Repository files navigation

Бот для фильтрации заявок по районам ГУП СППМ

Этот бот предназначен для автоматической фильтрации и пересылки заявок по районам. Он анализирует сообщения в групповых чатах Telegram, определяет район из текста заявки и пересылает её подписчикам соответствующего района.

Функциональность

  • Автоматическое определение района из текста заявки
  • Подписка/отписка пользователей от районов
  • Пересылка заявок только подписанным пользователям
  • Управление активностью пользователей (только для администраторов)

Управление активностью пользователей

Для обеспечения безопасности и контроля за использованием бота, была добавлена система активации пользователей. По умолчанию все новые пользователи неактивны и не могут получать сообщения через бота.

Для администраторов

Администраторы могут активировать/деактивировать пользователей с помощью команд:

  • /activate_user <ID пользователя> - активировать пользователя
  • /deactivate_user <ID пользователя> - деактивировать пользователя

Чтобы получить права администратора, необходимо добавить свой Telegram ID в переменную окружения ADMIN_IDS.

Для обычных пользователей

Обычные пользователи должны обратиться к администратору для активации своего аккаунта. После активации они смогут использовать все функции бота.

Переменные окружения

  • TELEGRAM_BOT_TOKEN - токен Telegram бота
  • DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD - параметры подключения к базе данных
  • ADMIN_IDS - список Telegram ID администраторов (через запятую)
  • WEBHOOK_HOST - адрес webhook'а (обязателен для работы в режиме webhook)
  • WEB_SERVER_HOST - хост сервера (по умолчанию 0.0.0.0)
  • WEB_SERVER_PORT - порт сервера (по умолчанию 8000)

Деплой на Render

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

  1. Создайте аккаунт на Render
  2. Создайте новую Web Service
  3. Подключите репозиторий с этим проектом
  4. Укажите следующие настройки:
    • Build Command: pip install -r requirements.txt
    • Start Command: uvicorn main:app --host 0.0.0.0 --port $PORT
  5. Добавьте необходимые переменные окружения:
    • TELEGRAM_BOT_TOKEN - токен вашего Telegram бота
    • DATABASE_URL - URL базы данных (Render предоставляет его автоматически при подключении БД)
    • ADMIN_IDS - список ID администраторов в формате JSON массива, например: ["123456789", "987654321"]
    • WEBHOOK_HOST - URL вашего приложения на Render, например: https://your-app.onrender.com
  6. Нажмите "Create Web Service"

Локальный запуск

Для локального запуска используйте Docker Compose:

docker-compose up -d

Или запустите напрямую:

pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000

About

Бот Telegram для сортировки и пересылки заявок исполнителям. Flask

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published