No description
  • Python 79.1%
  • Fluent 17.9%
  • Dockerfile 3%
Find a file
2026-02-24 12:47:31 +07:00
bot mod: set skip_updates=False 2026-02-24 12:47:31 +07:00
.gitignore Initial commit 2026-02-23 18:05:42 +07:00
docker-compose.yml mod: set skip_updates=False 2026-02-24 12:47:31 +07:00
Dockerfile mod: set skip_updates=False 2026-02-24 12:47:31 +07:00
env_example Initial commit 2026-02-23 18:05:42 +07:00
LICENSE Initial commit 2026-02-23 18:05:42 +07:00
README.md Initial commit 2026-02-23 18:05:42 +07:00
requirements.txt Initial commit 2026-02-23 18:05:42 +07:00

Feedback Telegram Bot

Бот для обратной связи между пользователями и администратором. Пользователи могут отправлять сообщения, медиафайлы и получать ответы от админа.

License: MIT

Возможности

  • Отправка текстовых сообщений и медиафайлов (фото, видео, аудио, файлы, стикеры)
  • Подтверждение отправки сообщений для пользователей и админа
  • Система банов и shadowban
  • Локализация интерфейса (Fluent)
  • Поддержка webhook и polling режимов
  • Docker-контейнеризация

Быстрый старт

1. Клонирование репозитория

git clone http://makatorama.mooo.com:3000/Makatorama/Feedback-Telegram-Bot
cd Feedback-Telegram-Bot

2. Настройка

Создайте файл .env на основе env_example:

cp env_example .env

Заполните переменные окружения:

Переменная Описание
BOT_TOKEN Токен бота от @BotFather
ADMIN_CHAT_ID ID чата администратора (можно узнать через @my_id_bot)
REMOVE_SENT_CONFIRMATION Удалять подтверждения отправки (yes/no)
WEBHOOK_DOMAIN Домен для webhook (опционально, для polling оставить пустым)
WEBHOOK_PATH Путь webhook (опционально)
APP_HOST Хост для запуска (по умолчанию 0.0.0.0)
APP_PORT Порт для запуска (по умолчанию 9000)
CUSTOM_BOT_API Адрес собственного сервера Bot API (опционально)

3. Запуск

Через Docker Compose (рекомендуется)

docker compose up -d

Без Docker

pip install -r requirements.txt
python -m bot

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

Feedback-Telegram-Bot/
├── bot/
│   ├── __main__.py          # Точка входа
│   ├── config_reader.py     # Чтение конфигурации
│   ├── storage.py           # Работа с JSON-хранилищем
│   ├── blocklists.py        # Списки забаненных
│   ├── utils.py             # Утилиты
│   ├── commandsworker.py    # Регистрация команд бота
│   ├── handlers/            # Обработчики событий
│   │   ├── usermode.py      # Хэндлеры для пользователей
│   │   ├── adminmode.py     # Хэндлеры для админа
│   │   ├── bans.py          # Команды банов
│   │   └── ...
│   ├── filters/             # Фильтры сообщений
│   ├── middlewares/         # Промежуточное ПО
│   └── locales/             # Локализация (Fluent)
├── banned.json              # Хранилище забаненных пользователей
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
└── env_example

Команды бота

Для пользователей

Команда Описание
/start Приветственное сообщение
/help Справка по использованию

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

Команда Описание
/who Информация о пользователе
/ban <id> Заблокировать пользователя
/shadowban <id> Скрытно заблокировать
/unban <id> Разблокировать
/list_banned Список заблокированных

Команды администратора работают в ответ на сообщение пользователя.

Локализация

Бот использует систему локализации Fluent. Для добавления нового языка:

  1. Создайте папку с кодом языка в bot/locales/
  2. Добавьте файлы strings.ftl и errors.ftl
  3. Обновите список доступных языков в __main__.py

API

Поддерживаемые типы сообщений

  • Текст (до 4000 символов)
  • Фото, видео, аудио, файлы (с подписью до 1000 символов)
  • Стикеры
  • Голосовые сообщения

Неподдерживаемые типы

  • Опросы
  • Геолокация
  • Контакты
  • Инвойсы
  • Уведомления о добавлении/удалении участников
  • Системные сообщения

Лицензия

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