Zum Inhalt springen
  • Dunkel
  • Hell
  • System

!catfact

!catfact

Fortgeschritten

!cat !katze

Zufälliger Cat-Fact via catfact.ninja API.

Steps
3
Cooldown
30s/User
Cooldown
5sglobal
Zugriff
Public

API: https://catfact.ninja/fact

Fetch URL: Cat-Fact API

Core Network Fetch URL
URL https://catfact.ninja/fact
Variable Name cat
Parse result as JSON aktiv

Response:

{
"fact": "A cat's normal pulse is 140-240 beats per minute.",
"length": 51
}

Parse-Output:

  • %cat.fact% = A cat's normal pulse is 140-240 beats per minute.
  • %cat.length% = 51

If/Else: API-Error abfangen

Core Logic If/Else

Then-Branch: Send Message + Break.

Input %fetchUrlStatusCode%
Operation Greater Than
Value 299

Send Message to Channel

Twitch Chat Send Message to Channel
Message 🐱 Cat-Fact: %cat.fact%
Send using bot account aktiv
AzaBot: 🐱 Cat-Fact: A cat's normal pulse is 140-240 beats per minute.
So sieht's im Chat aus
  1. 1 Fetch URL: https://catfact.ninja/fact → cat (JSON)
  2. 2 If/Else: %fetchUrlStatusCode% Greater Than 299
    1. Then 2a Send Message: "@%user% Cat-Fact-API nicht erreichbar."
    2. Then 2b Break
  3. 3 Send Message: "🐱 Cat-Fact: %cat.fact%"
FeldWert
Name!catfact
GroupAzaCraft API
Commands!catfact
!cat
!katze
SourcesTwitch Message
Global Cooldown5
User Cooldown30
ChatResultat
!catfact”🐱 Cat-Fact: A cat’s normal pulse is 140-240 beats per minute.”
!catgleich
!katzegleich

catfact.ninja unterstützt ?max_length=150:

URL: https://catfact.ninja/fact?max_length=150

Damit nur Facts ≤ 150 Zeichen. Gut wenn format=4 der !weather Variante eh schon lange Outputs hat.

https://catfact.ninja/facts?limit=3 liefert Array von 3 Facts:

{
"data": [
{"fact": "...", "length": 80},
{"fact": "...", "length": 60},
{"fact": "...", "length": 90}
]
}

Da Array, pragmatisch: nur den ersten nehmen: %cat.data[0].fact%. Oder bei einem einzelnen bleiben (default).

APIURLWas es liefert
Dog Factshttps://dogapi.dog/api/v2/factsHunde-Facts (etwas anderes Schema)
Random Facthttps://uselessfacts.jsph.pl/api/v2/facts/random?language=deZufällige nutzlose Facts
Chuck Norrishttps://api.chucknorris.io/jokes/randomChuck-Norris-Witze
Quotablehttps://api.quotable.io/randomBerühmte Zitate

Alle gleichen Pattern: GET → JSON Parse → Send Message.

[Cmd] !animalfact
├── 1. Get Random Number (1, 3)
├── 2. If/Else: %randomNumber% Equals 1
│ ├── Fetch URL: https://catfact.ninja/fact → animal (JSON)
│ ├── Send Message: "🐱 %animal.fact%"
│ └── Break
├── 3. If/Else: %randomNumber% Equals 2
│ ├── Fetch URL: https://dogapi.dog/api/v2/facts → animal (JSON)
│ ├── Send Message: "🐶 %animal.data.0.attributes.body%"
│ └── Break
└── 4. (Fox/Bird/...)

Zufällig Cat/Dog/etc.

  • API blockt nach zu vielen Requests: kostenlose APIs haben Rate-Limits. Bei Spam → 429-Status, dann mit Cooldown im Command bremsen
  • JSON-Schema ändert sich: heute {fact, length}, morgen vielleicht {text, len}. Bei Bedarf API-Doku checken
  • Network-Latency: wenn du in Asia hosted und API in USA, kann Fetch URL 1-2s dauern. Twitch-User merken’s