KickerBot/README.md

3.0 KiB
Raw Blame History

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=<пароль для базы>

ME_CONFIG_MONGODB_ADMINUSERNAME=<логин для базы>
ME_CONFIG_MONGODB_ADMINPASSWORD=<пароль для базы>
ME_CONFIG_MONGODB_URL=mongodb://<логин>:<пароль>@mongo:27017/

Затем запустить команду docker-compose up -d --build, чтобы собрать образ бота и запустить контейнеры в стэке.