35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
# Dyżur-bot
|
||
|
||
A telegram bot for managing the cleaning rota in hackerspace.
|
||
Bot offers weekly reminders about cleaning duties as well as on demand informations.
|
||
Backend read the schedule from a Google sheet, store it in local JSON file.
|
||
|
||
## Running
|
||
|
||
Requires `GOOGLE_API_KEY`, `GOOGLE_SHEETS_ID`, and `BOT_TOKEN` in the
|
||
environment or a `.env` file (see `service.go`/`sheet.go` for optional
|
||
`SHEET_RANGE`, `ROTA_CACHE_PATH`, `SYNC_INTERVAL`). Then:
|
||
|
||
```sh
|
||
go run ./cmd/dyzur-bot
|
||
```
|
||
|
||
The service loads the cached rota, syncs from Google Sheets in the background on
|
||
`SYNC_INTERVAL` (default 30m), and runs the Telegram bot via long polling until
|
||
interrupted (Ctrl-C / SIGTERM).
|
||
|
||
### Commands
|
||
|
||
- `/kto_sprzata` — who is on cleaning duty this week.
|
||
- `/sync` — refresh the rota from Google Sheets now.
|
||
|
||
### Reminders
|
||
|
||
If `GROUP_CHAT_ID` is set, the bot posts a weekly duty reminder to that chat.
|
||
Schedule (all optional, with defaults): `REMINDER_WEEKDAY` (default `Monday`),
|
||
`REMINDER_HOUR` (default `9`, 0–23), `DUTY_AHEAD_DAYS` (default `14`). The hour
|
||
is interpreted in Europe/Warsaw time. The reminder announces who is on duty
|
||
`DUTY_AHEAD_DAYS` from the fire time — e.g. every Monday 09:00, who cleans two
|
||
weeks out. Leave `GROUP_CHAT_ID` unset to disable reminders.
|
||
|