mirror of
https://github.com/lukaszraczylo/go-telegram.git
synced 2026-06-05 22:43:59 +00:00
ac7cae8fa7
A fully-generated, strongly-typed Go client for the Telegram Bot API. * 176 methods + 301 types generated from Bot API v10.0 * 1408 auto-generated tests (8 scenarios per method) * Typed unions throughout — no 'any' in the public surface * Pluggable HTTP transport and JSON codec (default goccy/go-json) * Built-in retry middleware honouring Telegram's retry_after * Generic dispatcher with filters and conversation handlers * Self-verifying codegen pipeline (regen → audit → emit → run tests) * 14 example bots covering common patterns
30 lines
844 B
Markdown
30 lines
844 B
Markdown
# polls
|
|
|
|
Create polls and tally answers in real time via `OnPollAnswer`.
|
|
|
|
## What it shows
|
|
|
|
- `api.SendPoll` with `[]api.InputPollOption` and `IsAnonymous: false`
|
|
- `router.OnPollAnswer` to receive vote updates (`PollAnswer.OptionIds`, `PollAnswer.User`)
|
|
- Concurrent-safe in-memory tally with `sync.Mutex`
|
|
|
|
## Commands
|
|
|
|
| Command | Description |
|
|
|---|---|
|
|
| `/poll <question>` | Creates a poll with four preset options (A/B/C/D) |
|
|
| `/tally <poll_id>` | Shows current vote counts for a poll |
|
|
|
|
## Notes
|
|
|
|
- `OnPollAnswer` only fires for **non-anonymous** polls. For anonymous polls, Telegram does not send user identifiers.
|
|
- The poll ID is logged when the poll is created; copy it to use with `/tally`.
|
|
- Vote tallies are in-memory and reset on restart.
|
|
|
|
## Running
|
|
|
|
```bash
|
|
export TELEGRAM_BOT_TOKEN=123456:ABC...
|
|
go run ./examples/polls
|
|
```
|