Бот со списком движков и банхаммером в руках
Go to file
Nefrace 2f8e15ee4a Fixed text handling in captcha 2023-12-28 23:17:51 +03:00
assets Added fourth logo, fixed docker-compose 2022-02-02 12:16:45 +03:00
captchagen Greetings, storage of joined users 2023-09-10 02:48:59 +03:00
db Added logs 2023-12-07 22:02:36 +03:00
kicker Fixed text handling in captcha 2023-12-28 23:17:51 +03:00
.dockerignore Updated Dockerfile, added .dockerignore 2022-02-02 13:11:53 +03:00
.gitignore Update .gitignore 2022-02-11 12:27:07 +03:00
Dockerfile Updated go image version for Docker 2022-11-09 02:02:12 +03:00
README.md Изменил(а) на 'README.md' 2023-09-27 15:22:59 +03:00
docker-compose.yml Изменил(а) на 'docker-compose.yml' 2023-09-27 15:24:33 +03:00
go.mod Update, new mentions, fixed captcha icons Y-pos 2023-09-07 01:10:30 +03:00
go.sum Update, new mentions, fixed captcha icons Y-pos 2023-09-07 01:10:30 +03:00
main.go Users mute, admin topics 2023-09-13 22:33:53 +03:00
out.png Added image generation 2022-01-28 01:00:40 +03:00

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