42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# 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`, чтобы собрать образ бота и запустить контейнеры в стэке.
|