# Proměnné příkazů

> Všechny proměnné příkazů v KickBotu s ukázkami, od {{sender.followage}} pro followage na Kicku po náhodná čísla a API požadavky v odpovědích v chatu.

Source: https://kickbot.com/cs/docs/chat-bot/command-variables

Proměnné jsou zástupné značky v odpovědi příkazu. KickBot do nich při každém spuštění příkazu doplní aktuální hodnotu. Třeba odpověď příkazu `!followage` s `{{sender.followage}}` napíše, jak dlouho divák sleduje tvůj Kick kanál. Proměnné fungují ve [vlastních příkazech](https://kickbot.com/cs/docs/chat-bot/custom-commands) a v odpovědích [vestavěných příkazů](https://kickbot.com/cs/docs/chat-bot/built-in-commands).

Každou proměnnou piš se dvěma složenými závorkami na každé straně, přesně jak je uvedená na této stránce. Na velkých písmenech záleží: `{{sender.username}}` funguje, `{{Sender.Username}}` ne.

## Přidání proměnné do odpovědi

1. Na stránce [Vlastní příkazy](https://kickbot.com/dashboard/commands) otevři příkaz, nebo klikni na **Přidat příkaz**.
2. Pod polem **Odpověď** použij **Vložit proměnnou**. Vyber skupinu (**Odesílatel**, **Streamer**, **Označený uživatel / parametr**, **Stream**, **Náhodné** nebo **API požadavek**).
3. Klikni na proměnnou. KickBot ji vloží tam, kde máš kurzor.

Náhled **V chatu na Kicku** ukazuje ukázkové hodnoty, takže odpověď zkontroluješ ještě před uložením.

![Menu Vložit proměnnou s otevřenou skupinou Stream a náhledem s ukázkovými hodnotami pro followage, kategorii a diváky](https://kickbot.com/docs/images/chat-bot/command-variables/01-variables.webp "Náhled doplní ukázkové hodnoty. V chatu KickBot použije skutečné hodnoty.")

Ukázky níže počítají s divákem KickBotDev na kanálu yourchannel.

## Odesílatel

Divák, který příkaz napsal.

| Proměnná | Co vypíše | Ukázka výstupu |
| --- | --- | --- |
| `{{sender.username}}` | Jméno diváka tak, jak je v odkazu na jeho kanál (malými písmeny) | `kickbotdev` |
| `{{sender.followers}}` | Kolik sledujících má vlastní kanál diváka | `128` |
| `{{sender.followage}}` | Jak dlouho divák sleduje tvůj kanál | `4 months 12 days` |
| `{{sender.url}}` | Odkaz na Kick kanál diváka | `https://kick.com/kickbotdev` |
| `{{sender.bio}}` | Bio z profilu diváka na Kicku | `Variety streamer from Texas` |
| `{{sender.instagram}}` | Jméno na Instagramu z profilu diváka na Kicku | `yourhandle` |
| `{{sender.twitter}}` | Jméno na X (Twitteru) z profilu diváka na Kicku | `yourhandle` |
| `{{sender.youtube}}` | YouTube z profilu diváka na Kicku | `yourhandle` |
| `{{sender.discord}}` | Discord z profilu diváka na Kicku | `discord.gg/your-server-code` |
| `{{sender.tiktok}}` | Jméno na TikToku z profilu diváka na Kicku | `yourhandle` |
| `{{sender.facebook}}` | Jméno na Facebooku z profilu diváka na Kicku | `yourhandle` |

### Followage na Kicku

Pokud divák tvůj kanál nesleduje, KickBot místo tvé odpovědi napíše: `@kickbotdev is not following @yourchannel`.

Tuto proměnnou používá vestavěný příkaz `!followage`. Jeho odpověď je `@{{sender.username}} has been following for {{sender.followage}}`, takže v chatu vypadá jako `@kickbotdev has been following for 4 months 12 days`.

## Streamer

Ty, majitel kanálu.

| Proměnná | Co vypíše | Ukázka výstupu |
| --- | --- | --- |
| `{{streamer.username}}` | Název tvého kanálu tak, jak je v odkazu na kanál | `yourchannel` |
| `{{streamer.followers}}` | Tvůj počet sledujících | `2450` |
| `{{streamer.url}}` | Odkaz na tvůj Kick kanál | `https://kick.com/yourchannel` |
| `{{streamer.bio}}` | Tvoje bio na Kicku | `Chill streams every night` |
| `{{streamer.instagram}}` | Jméno na Instagramu z tvého profilu na Kicku | `yourhandle` |
| `{{streamer.twitter}}` | Jméno na X (Twitteru) z tvého profilu na Kicku | `yourhandle` |
| `{{streamer.youtube}}` | YouTube z tvého profilu na Kicku | `yourhandle` |
| `{{streamer.discord}}` | Discord z tvého profilu na Kicku | `discord.gg/your-server-code` |
| `{{streamer.tiktok}}` | Jméno na TikToku z tvého profilu na Kicku | `yourhandle` |
| `{{streamer.facebook}}` | Jméno na Facebooku z tvého profilu na Kicku | `yourhandle` |

> **Caution:** Proměnné z profilu (bio, Instagram, X, YouTube, Discord, TikTok, Facebook) čtou profil na Kicku. Když je dané pole v profilu prázdné, proměnná zůstane v odpovědi jako obyčejný text, třeba `{{streamer.tiktok}}`. Používej je jen u profilů, kde je pole vyplněné.

## Označený uživatel a parametr

Text nebo jméno, které divák napíše za příkaz. Divák třeba napíše `!so @SomeChannel` nebo `!hug @friend`.

| Proměnná | Co vypíše | Ukázka pro `!so @SomeChannel great stream` |
| --- | --- | --- |
| `{{param}}` | Celý text za příkazem | `@SomeChannel great stream` |
| `{{taggedUser.username}}` | Jméno za prvním `@` | `SomeChannel` |
| `{{taggedUser.url}}` | Odkaz na označený kanál | `https://kick.com/SomeChannel` |
| `{{taggedUser.followers}}` | Počet sledujících označeného kanálu | `57` |
| `{{taggedUser.followage}}` | Jak dlouho označený divák sleduje tvůj kanál | `2 months 3 days` |

Označený uživatel má i proměnné z profilu: `{{taggedUser.bio}}`, `{{taggedUser.instagram}}`, `{{taggedUser.twitter}}`, `{{taggedUser.youtube}}`, `{{taggedUser.discord}}`, `{{taggedUser.tiktok}}` a `{{taggedUser.facebook}}`.

Pokud divák nikoho neoznačí, `{{taggedUser.username}}` je prázdné. Pokud označené jméno není Kick kanál, proměnné, které něco dohledávají (sledující, bio a další pole z profilu), fungovat nemůžou a KickBot místo odpovědi napíše `404 tagged user not found`.

Příklad: vestavěný příkaz `!so` (shout-out) má odpověď `Go check @{{taggedUser.username}}'s channel! {{taggedUser.url}}`.

## Stream

Tvůj aktuální stream. Tyto proměnné fungují během streamu.

| Proměnná | Co vypíše | Ukázka výstupu |
| --- | --- | --- |
| `{{stream.title}}` | Název tvého streamu | `Chill stream, come hang out` |
| `{{stream.category}}` | Kategorie tvého streamu | `Just Chatting` |
| `{{stream.viewers}}` | Tvůj aktuální počet diváků | `342` |

Když jsi offline, KickBot tvůj stream přečíst nemůže, takže příkaz s těmito proměnnými nepošle svoji běžnou odpověď. Místo ní může napsat `404 stream not found`.

## Náhodné

Hodí se pro hry a zábavné příkazy. Každé spuštění vybere novou hodnotu.

| Proměnná | Co vypíše | Ukázka výstupu |
| --- | --- | --- |
| `{{randomRange(1,100)}}` | Celé číslo od prvního čísla po druhé, obě včetně | `42` |
| `{{randomItem("rock","paper","scissors")}}` | Jednu položku ze seznamu, každou se stejnou šancí | `paper` |
| `{{randomItemPercentage("common":70,"rare":25,"legendary":5)}}` | Jednu položku ze seznamu, s šancí, kterou každé položce dáš | `common` |

Pravidla:

- `randomRange` bere dvě celá čísla od 0 výš. První nesmí být větší než druhé.
- Každou položku dej do rovných dvojitých uvozovek (`"`) a odděl je čárkami. Položky můžou obsahovat mezery, třeba `"Ask again later"`.
- V `randomItemPercentage` napiš číslo hned za dvojtečku, bez mezery. Čísla jsou váhy. S 70, 25 a 5 padne první položka zhruba 70krát ze 100. `randomItemPercentage` v menu **Vložit proměnnou** není. Napiš ho ručně.

## API požadavek

`{{request("https://...")}}` načte data z webové adresy (API) a vloží je do odpovědi. Takhle můžeš ukázat vtip, herní rank nebo cokoli jiného, co vrací veřejné API.

```text
{{request("https://uselessfacts.jsph.pl/api/v2/facts/random").text}}
```

KickBot otevře adresu, přečte odpověď v JSON a napíše pole `text`. Třeba: `The praying mantis is the only insect that can turn its head`.

Jak to funguje:

- **Výběr pole.** Za uzavírací závorku přidej cestu. Pro názvy použij tečky a pro položky seznamu `[0]`, třeba `.data[0].name`. Bez cesty, nebo když cesta v odpovědi není, KickBot napíše celou odpověď.
- **Proměnné v adrese.** Třeba `{{request("https://example.com/rank?user={{sender.username}}").rank}}`. KickBot doplní hodnotu a upraví ji tak, aby byla bezpečná pro webovou adresu (z mezery se stane `%20`). Požadavek uvnitř požadavku není povolený.
- **Jen požadavky GET.** KickBot nemůže poslat tělo ani hlavičky. Pokud API potřebuje klíč, dej ho do adresy jako parametr dotazu.
- **Limity.** Jen adresy `http` a `https` na veřejném internetu. KickBot čeká na odpověď nejvýš 3 sekundy, takže použij API, které odpoví rychle a krátce.

> **Caution:** Klíč k API v adrese uvidí každý, kdo vidí nastavení tvých příkazů. Používej klíče, které čtou jen veřejná data.

## Další proměnné

Tyto proměnné fungují, ale v menu **Vložit proměnnou** nejsou.

| Proměnná | Co vypíše | Ukázka výstupu |
| --- | --- | --- |
| `{{user}}` | Jméno diváka i s velkými písmeny | `KickBotDev` |
| `{{sender.fullUsername}}` | Jméno diváka se `@` na začátku | `@KickBotDev` |
| `{{commands}}` | Všechny zapnuté příkazy oddělené čárkami | `commands, followage, lurk, me, so, welcome, discord` |

Vestavěný příkaz `!commands` používá `{{commands}}`. Jeho odpověď je `Enabled commands: {{commands}}`.

## Časté chyby

- **Jedna závorka místo dvou.** `{sender.username}` zůstane jako text. Použij `{{sender.username}}`.
- **Překlep v názvu.** Neznámá proměnná, třeba `{{sender.name}}`, zastaví odpověď příkazu. Porovnej pravopis s touto stránkou.
- **Typografické uvozovky.** `randomItem` a `request` potřebují rovné uvozovky (`"`). Některé telefony a textové editory je mění na typografické (`“ ”`). Pro jistotu je piš přímo v dashboardu.

## Časté dotazy

**Jak udělám příkaz followage na Kicku?**

KickBot má vestavěný příkaz `!followage`, který je zapnutý na každém kanálu. Pokud chceš vlastní, přidej příkaz s odpovědí třeba `@{{sender.username}} has followed for {{sender.followage}}`.

**Jak v příkazu ukážu jméno diváka?**

Použij `{{sender.username}}` pro jméno tak, jak je v odkazu na kanál, nebo `{{user}}` pro jméno i s velkými písmeny. Pokud chceš, aby ho Kick ukázal jako zmínku, přidej před něj `@`, třeba `@{{sender.username}}`.

**Může příkaz ukázat můj počet diváků nebo název streamu?**

Ano. Použij `{{stream.viewers}}` a `{{stream.title}}`. Fungují během streamu.
