No description
- Python 79.1%
- Fluent 17.9%
- Dockerfile 3%
| bot | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| env_example | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
Feedback Telegram Bot
Бот для обратной связи между пользователями и администратором. Пользователи могут отправлять сообщения, медиафайлы и получать ответы от админа.
Возможности
- Отправка текстовых сообщений и медиафайлов (фото, видео, аудио, файлы, стикеры)
- Подтверждение отправки сообщений для пользователей и админа
- Система банов и 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. Для добавления нового языка:
- Создайте папку с кодом языка в
bot/locales/ - Добавьте файлы
strings.ftlиerrors.ftl - Обновите список доступных языков в
__main__.py
API
Поддерживаемые типы сообщений
- Текст (до 4000 символов)
- Фото, видео, аудио, файлы (с подписью до 1000 символов)
- Стикеры
- Голосовые сообщения
Неподдерживаемые типы
- Опросы
- Геолокация
- Контакты
- Инвойсы
- Уведомления о добавлении/удалении участников
- Системные сообщения
Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.