An open API service indexing awesome lists of open source software.

https://github.com/weirdvic/zruty-bot

Telegram бот для встречи и приветствия новых пользователей в русскоязычной Telegram группе про NetHack
https://github.com/weirdvic/zruty-bot

go golang nethack tbot telegram

Last synced: 5 months ago
JSON representation

Telegram бот для встречи и приветствия новых пользователей в русскоязычной Telegram группе про NetHack

Awesome Lists containing this project

README

          

# Zruty bot
Telegram бот-дворецкий на Go + SQLite

# Список команд бота
Бот отправляет отчёт только на команды от админов, админами считаются пользователи, чьи Telegram ID записаны в таблицу `admins`.

- `/start` — Просто запуск бота
- `/report` — Отправить отчёт по пользователям, отслеживаемым в данный момент
- `/underAttackSwitch` — Переключить режим "Под атакой", доступно только админам бота.

# Сборка бота
При помощи [Taskfile](https://taskfile.dev/), либо вручную:
``` shell
go build -v -o zruty-bot
./zruty-bot
```
# Описание переменных окружения
## `BOT_TOKEN`
Тип значения: строка.

Переменная читается при запуске бота.

Если она задана, то в БД добавляется или обновляется существующая настройка `botToken`.
## `BOT_ADMIN_ID`
Тип значения: целое число в формате Telegram chat_id.

Переменная читается при запуске бота.

Если она задана, то проверяется существование такого пользователя в БД или добавляется пользователь и назначается администратором.
## `UNDER_ATTACK`
Тип значения: логическое, валидные значения `0`, `false`, `FALSE` или `1`, `true`, `TRUE`.

Переменная читается при запуске бота.

Значение настройки `underAttack` в БД обновляется в соответствии со значением этой переменной.
## `LOG_UPDATES`
Тип значения: логическое, за истину считается `true` в любом регистре, остальные значения ложные.

Переменная читается при старте программы.

В зависимости от значения переменной происходит логирование апдейтов от сервера при помощи функции `updateHandler`.
# Описание настроек в таблице `settings`
## `botToken`
API токен бота, используется на старте.
## `banAfter`
Тип значения: целое число, количество часов.

Используется для проверки времени неактивности пользователя.
## `greetAdminMessage`
Тип значения: строковый литерал.

Используется для ответа на команду `/start` от админов бота.
## `notAdminMessage`
Тип значения: строковый литерал.

Используется для ответа на команду `/start` от пользователей, не являющихся админами бота.
## `kickMessage`
Тип значения: строковый литерал.

Сообщение, отправляемое админам при бане пользователя в чате.
## `welcomeMessage`
Тип значения: строковый литерал.

Приветственное сообщение, отправляемое новым пользователям.
## `underAttack`
Тип значения: логическое, в виде строки `true` или `false`

Используется для управления режимом "Под атакой".
## `muteDuration`
Тип значения: целое число секунд.

Время, на которое мутить новых пользователей если включён режим `underAttack`. По-умолчанию равно 604800 или 1 неделе.
## `challengeTime`
Тип значения: целое число секунд.
Время, за которое пользователь должен нажать кнопку на приветственном сообщении. По-умолчанию равно 30 секундам.