Polls
System ankiet z przyciskami, timerami i podliczaniem głosów w czasie rzeczywistym.
Komendy
/poll
Tworzy nową ankietę w bieżącym kanale z przyciskami do głosowania.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| question | string | Tak | Pytanie ankiety (max 256 znaków) |
| option1 | string | Tak | Pierwsza opcja |
| option2 | string | Tak | Druga opcja |
| option3 | string | Nie | Trzecia opcja |
| option4 | string | Nie | Czwarta opcja |
| option5 | string | Nie | Piąta opcja |
| option6 | string | Nie | Szósta opcja |
| option7 | string | Nie | Siódma opcja |
| option8 | string | Nie | Ósma opcja |
| option9 | string | Nie | Dziewiąta opcja |
| option10 | string | Nie | Dziesiąta opcja |
| duration | string | Nie | Czas trwania (np. 30m, 1h, 24h, 7d, 2w). Domyślna z konfiguracji. |
| anonymous | boolean | Nie | Ukryj autora ankiety (nadpisuje domyślne ustawienie) |
| multiple | boolean | Nie | Pozwól na wielokrotne głosy (nadpisuje domyślne ustawienie) |
Uprawnienia: Konfigurowane (everyone / moderation_roles / custom)
Przykład: /poll question:Jaki język preferujesz? option1:Polski option2:Angielski option3:Oba duration:24h
Sukces:
- Wysyła embed z pytaniem, opcjami i przyciskami do kanału (widoczny dla wszystkich)
- Ephemeral potwierdzenie dla twórcy
- Log w module "polls"
Błędy:
- Brak uprawnień do tworzenia ankiet
- Nieprawidłowy format czasu trwania
Obsługiwane formaty: 30m (minuty), 1h (godziny), 7d (dni), 2w (tygodnie).
/polls
Wyświetla listę aktywnych (otwartych) ankiet na serwerze.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| (brak) | — | — | — |
Uprawnienia: Każdy (Everyone)
Przykład: /polls
Sukces: Ephemeral embed z listą do 10 aktywnych ankiet (pytanie, kanał, liczba opcji, termin wygaśnięcia)
Błędy:
- Brak aktywnych ankiet (informacja)
Głosowanie
Głosowanie odbywa się przez kliknięcie przycisków pod ankietą:
Tryb single-vote (domyślny)
- Kliknięcie opcji → oddanie głosu
- Kliknięcie tej samej opcji ponownie → cofnięcie głosu
- Kliknięcie innej opcji → zmiana głosu (stary głos usuwany)
Tryb multiple-vote
- Kliknięcie opcji → dodanie/cofnięcie głosu (toggle)
- Można głosować na wiele opcji jednocześnie
Po każdym głosie embed jest automatycznie aktualizowany z nową liczbą głosów i procentami.
Auto-zamykanie
Ankiety z ustawionym czasem trwania są automatycznie zamykane po wygaśnięciu:
- Co 60 sekund bot sprawdza
expires_atwszystkich otwartych ankiet - Po wygaśnięciu:
- Embed dostaje prefiks "📊 POLL CLOSED" i zmienia kolor na szary
- Dodawany jest wizualny wykres słupkowy z wynikami
- Przyciski są wyłączane (disabled)
- Log w module "polls"
Konfiguracja
| Opcja | Opis | Domyślna wartość |
|---|---|---|
color | Kolor embeda ankiety (hex) | #5865F2 |
default_duration | Domyślny czas trwania | brak (bez limitu) |
default_anonymous | Domyślnie anonimowe | false |
default_multiple | Domyślnie wielokrotny głos | false |
create_permission | Kto może tworzyć ankiety | everyone |
create_roles | Role dla custom permission | brak |
Gdy ankieta jest anonimowa, embed nie pokazuje autora (brak sekcji "Author"). W stopce pojawia się "Anonymous". Głosy są nadal przypisane do użytkowników w bazie (do celów deduplikacji), ale nie są publicznie widoczne.