Global code ovehaul - remove CAS and other, add 15 minute greet check
- Remove CAS, as it no longer works for us - Remove other checks - Implement 15 minute greet timeout check - Fix chat logos - Ditch thirdparty logger, use stdlib log facility wrapper for logging
This commit is contained in:
76
README.md
76
README.md
@@ -1,31 +1,75 @@
|
||||
# Bunny telegram bot
|
||||
|
||||
Yet another telegram bot. It has one purpose - restrict access of abusers to chat.
|
||||
Ещё один телеграм-бот.
|
||||
|
||||
By now it uses [Combot Anti-Spam System](https://cas.chat/) to detect spammers and its own method of detection of bad
|
||||
users.
|
||||
Его задача - банить спаммеров. Обнаружение спаммеров работает единственным способом - если вошедший не отвечает на
|
||||
приветствие в течение 15 минут, он попадает в бан.
|
||||
|
||||
## Build instructions
|
||||
## Как это собрать?
|
||||
|
||||
Bot is not done yet, actually it does not do anything useful.
|
||||
Понадобится компилятор go версии 1.24 или новее. Воодим в каталоге с исходниками команду
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
## Run instructions
|
||||
и ждём. Через некоторое время в каталоге должен появиться бмнапник bunny-bot или bunny-bot.exe - это и есть весь наш бот.
|
||||
|
||||
You probably don't need it in its current state. But if you want - all is simple. Visit data/config.json, edit for your
|
||||
needs and run:
|
||||
## Как это запустить
|
||||
|
||||
Надо создать каталог `data/config.json` рядом с бинарником в качестве примера можно использовать `data/config-example.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"token": "get_it_from_botfather",
|
||||
"loglevel": "debug",
|
||||
"logfile": "/var/log/bunny-bot/bunny-bot.log",
|
||||
"chat_logs": "chat_logs"
|
||||
}
|
||||
```
|
||||
|
||||
Затем запускаем сам бинарник:
|
||||
|
||||
```bash
|
||||
./bunny-bot
|
||||
```
|
||||
|
||||
There is openrc init script in contrib directory, you may use it for creating service under alpine linux or
|
||||
gentoo(untested) with openrc init.
|
||||
Путь до конфига захардкожен и это `<binary dir>/data/config.json`.
|
||||
|
||||
That's it.
|
||||
### Логгирование чатов
|
||||
|
||||
Параметр `chat_logs` опционален и, если он есть и целевой каталог существует и доступен для записи, бот будет логгировать события в чате.
|
||||
|
||||
События из чата группируются по дням:
|
||||
|
||||
```text
|
||||
<chat_logs>/<chat id>/<yyyy>/<MM>/<dd>.txt
|
||||
```
|
||||
|
||||
И каждая строка выглядит примерно так:
|
||||
|
||||
```text
|
||||
21:33:07.123 in chat -1001234567890 (title=Bunny Fans username=@bunnybot) user 42 (first_name=Ann last_name=Smith username=@ann) says hello there
|
||||
21:33:07.123 in chat -1001234567890 (title=Bunny Fans username=@bunnybot) user 42 (first_name=Ann last_name=Smith username=@ann) post video (file_name=clip.mp4 mime=video/mp4 1280x720 duration=15s size=1048576) says look at this reply_to=1
|
||||
21:33:07.123 in chat -1001234567890 (title=Bunny Fans username=@bunnybot) user 42 (first_name=Ann) user 7 (first_name=Al) joined the chat
|
||||
21:33:07.123 in chat -1001234567890 (title=Bunny Fans) user 42 (first_name=Ann) status member -> administrator custom_title=Mod by user 7 (first_name=Bob)
|
||||
```
|
||||
|
||||
Временные метки во всех логах проставляются по часовому поясу GMT+0.
|
||||
|
||||
### Дополнительные файлы
|
||||
|
||||
в каталоге `contrib` есть пример openrc-скрипта для запуска бота в среде alpine linux.
|
||||
|
||||
### Signals
|
||||
|
||||
| Signal | Effect |
|
||||
|---|---|
|
||||
| `SIGINT`, `SIGTERM`, `SIGQUIT` | Аккуратоное запершение работы - закрываются кэши, логи и затем программа завершается. |
|
||||
| `SIGHUP`, `SIGUSR1` | Переоткрывает лог-файлы, для ротации логов. Процесс продолжает работать. |
|
||||
|
||||
N.B.
|
||||
Бот не откладывает PID-файла, используйте copy-truncate в logrotate.
|
||||
|
||||
## Special thanks
|
||||
|
||||
@@ -33,16 +77,10 @@ To all active users of chat :)
|
||||
|
||||
To maintainers of telegram bot lib [https://github.com/NicoNex/echotron](https://github.com/NicoNex/echotron)
|
||||
|
||||
To maintainers of pebble db [https://github.com/cockroachdb/pebble](https://github.com/cockroachdb/pebble)
|
||||
|
||||
To maintainers of zap logging facility [https://github.com/uber-go/zap](https://github.com/uber-go/zap)
|
||||
|
||||
And kind hello to maintainer of spew dumper [https://github.com/davecgh/go-spew](https://github.com/davecgh/go-spew)
|
||||
|
||||
Without you, folks, all this bot-thing become very boring adventure.
|
||||
|
||||
## Maybe some more mumble-jumble
|
||||
## AI Slop warning
|
||||
|
||||
Yes, but next time. When bot will be ready for some real action.
|
||||
|
||||
For now I can say that bot does not support any of commands.
|
||||
Последние изменения в боте сделаны с помощью ai.
|
||||
|
||||
Reference in New Issue
Block a user