dyzur-bot/README.md

35 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`, 023), `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.