Доступна фильтрация следующих типов сообщений:
- Текстовые: любые кликабельные сущности (номера телефонов, упоминания, ссылки и т.д.)
Для текстовых фильтров также можно выбрать режим работы белый/черный список и добавить исключения, которые будут обработаны в соответствии с режимом работы фильтра
Настраивать модерацию чатов можно как через REST API, выполнив вход по полученным в Telegram боте логину и паролю, а можно через сам Telegram
* Некоторые функции недоступны для настройки в Telegram боте ввиду невозможности их реализации стандартными элементами управления Telegram, например, добавление исключений для текстовых фильтров
Получение истории удалённых сообщений в указанном чате и её фильтрация по пользователю через API
Можно добавить сколько угодно чатов и настраивать для каждого из них отдельную политику модерации
- Безопасность. Все данные чата хранятся локально (postgres, rabbitmq, redis), доступ к серверу только у администратора чата;
- Масштабируемость. Возможно поднять сколько угодно модулей обработки сообщений, тем самым устранив долгую обработку или пропуск части сообщений.
Для запуска требуется установленный docker compose в системе
- Создать бота в Bot Father
- Получить ID своего Telegram аккаунта в Get My ID
- Клонировать репозиторий
git clone https://github.com/GhostOfEndless/chat-protector.git - Перейти в директорию
composecd chat-protector/docker/compose - Открыть файл
.envчерез любой удобный редактор и присвоить переменнымTELEGRAM_BOT_TOKENиTELEGRAM_OWNER_ACCOUNT_IDзначения, полученные в 1 и 2 шагах соответственно... TELEGRAM_BOT_TOKEN=9876543210:AABBCCDDEEFFGGHH1122334455667788990 TELEGRAM_OWNER_ACCOUNT_ID=123456790 ... - Запускаем приложение через docker compose
docker compose -f compose.yml up -d
Теперь приложение запущено и готово к работе.
- Swagger: http://localhost:8080/swagger-ui/index.html
- Grafana: http://localhost:3000/
- Kibana: http://localhost:5601/
- Перейти в директорию
compose:cd chat-protector/docker/compose - Остановить запущенное приложение:
docker compose -f compose.yml down - Обновить локальный репозиторий проекта:
git pull origin master - Обновить образы сервисов:
docker compose -f compose.yml pull - Поднять обновлённое приложение:
docker compose -f compose.yml up -d