Nefrace 2f8e15ee4a | ||
---|---|---|
assets | ||
captchagen | ||
db | ||
kicker | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
README.md | ||
docker-compose.yml | ||
go.mod | ||
go.sum | ||
main.go | ||
out.png |
README.md
KickerBot
Бот, генерирующий капчу в виде картинки с набором логотипов игровых движков. Проверяемому необходимо выбрать правильный и написать ответ цифрой. Если ответ неверный: бот банит пользователя.
Основные команды админа
/settopic
- устанавливает выбранный топик в качестве "полигона" для капчи. Все сообщения с капчей пойдут туда, все сообщения пользователей, не связанные с капчей, будут удаляться.
/admin
- устанавливает выбранный топик как "админский" и запрещает другим пользователям туда писать, удаляя все их сообщения. Отменяет данное действие команда /unadmin
.
/mute [дни=1] [сообщение]
- даёт пользователю, на чьё сообщение был ответ, молчанку. По-умолчанию один день, а в качестве сообщения указывается текст оригинала. Информация о молчанке сохраняется в базе до момента её окончания, но пока нет никакого способа посмотреть на неё, помимо прямого доступа к базе.
Модули
Kicker
Сам бот, взаимодействующий с Telegram и базой. Обработчики событий находятся в handlers.go
DB
Обработчик базы данных, взаимодействует с MongoDB
Captchagen
Автономный генератор капчи. При запуске принимает список картинок, которые потом использует для генерации капчи. По умолчанию логотип с именем godot.png
всегда является правильным.
Как запустить:
Создать два файла: bot.env
и mongo.env
для настройки базы и самого бота.
bot.env
TOKEN=<токен бота Telegram>
DB_USER=<логин для базы>
DB_PASSWORD=<пароль для базы>
MONGO_URI=mongodb://mongo:27017
mongo.env
MONGO_INITDB_ROOT_USERNAME=<логин для базы>
MONGO_INITDB_ROOT_PASSWORD=<пароль для базы>
Затем запустить команду docker-compose up -d --build
, чтобы собрать образ бота и запустить контейнеры в стэке.