Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/badvibessz/vk-dorm-bot

vk bot for dormitory
https://github.com/badvibessz/vk-dorm-bot

dormitory dormitory-management-system golang vk vk-api vk-bot vk-bot-golang

Last synced: 5 days ago
JSON representation

vk bot for dormitory

Awesome Lists containing this project

README

        

## Простой вк бот для беседы этажа.

### Что может этот бот

Бот напоминает о дежурстве на этаже и еженедельной проверке комнат.

### Как задеплоить бота

- Создать файл **.env** в корне проекта с данным содержимым:
```dotenv
VK_API_TOKEN=YOUR_TOKEN
VK_ENDPOINT=https://api.vk.com/method/
VK_API_VERSION=5.154
```
- _YOUR_TOKEN_ заменить на токен бота.

### Конфиг

```yaml
chat-id: 2 # id чата, который должен слушать бот
rooms: # список комнат на этаже
- number: "123"
members:
- name: Ваня
id: id123456789
- name: Петя
id: id123456789
swap-pending: false
...

duty-timings: # время для напоминания о дежурстве
- "10:30"
- "21:30"

clean-timings: # время для напоминания о проверке
- "11:00"
- "18:00"

frequency: 2 # частота дежурства в днях (2 значит напоминать каждые два дня)
current: "393" # комната, ответственная за дежурство в данный момент
clean-day: saturday # день проверки комнат
clean-hour: "21:00" # время проверки комнат
retries: 3 # количество попыток отправки http запросов к vk api в случае неудачи
retry-interval: 1 # сколько ждать между попытками в секундах
dad: 123456789 # id папы (тот, кто создал vk token), в принципе можно указать чей угодно id

admins: # id администраторов (тех, кто может управлять ботом с помощью команд)
- 123456789
- 134436345

```

### Список команд

- **/queue**:
Показать текущий порядок дежурств

- **/reset**:
Восстановить порядок комнат по умолчанию

- **/swap <комната 1> <комната 2>**:
Поменять комнаты местами в порядке дежурств

- **/setcurrent <номер комнаты>**:
Назначить комнату дежурной

- **/accepted**:
Пометить, что текущее дежурство принято

- **/skip <число>**:
Пропустить **n** напоминаний дежурств

- **/setfreq <число>**:
Установить частоту дежурства
```yaml
число: от 1 до 7
```

- **/getcleanday**:
Вывести текущий день проверок комнат

- **/setcleanday <день недели>**:
Установить день проверки комнат
```yaml
день недели: понедельник - воскресенье, monday - sunday
```

- **/getcleanhour**:
Вывести текущее время проверки комнат

- **/setcleanhour <время> **:
Установить время проверки комнат
```yaml
время: час:минута
```