A botod logikája, lépésről lépésre
A flow lépések listája. A Napi kérdés flow öt lépésből áll: a katalógus beolvasása, a következő kérdés kiválasztása, közzététele, szál nyitása, számolás. Adj hozzá egy lépést, kösd be az értéket, teszteld, majd kapcsold be.
Napi kérdés
AktívMentésTrigger
MódosításÜtemezés, minden nap 09:00-kor
Tárhelyérték lekérése(get-storage-value)
A kérdéskatalógus beolvasása innen:{questions}
A következő bejegyzés kiválasztása(array-at)
A tegnapit követő
Üzenet küldése(send-message)
Bemeneti paraméterek
Csatorna:#general
Üzenet:A nap kérdése
Szál létrehozása(start-thread-from-message)
Szál nyitása azon az üzeneten
Tárhelyérték növelése(increment-storage-value)
A kérdés megjelölése feltettként itt:{asked}
Csak illusztráció - a tényleges felület eltérhet
Amit ez az öt lépés 09:00-kor létrehoz
Az öt lépés egy üzenetet hoz létre. Az alatta lévő szálban gyűlnek a válaszok, a számláló pedig gondoskodik róla, hogy holnap a következő kérdés jöjjön.
Csak illusztráció - a tényleges felület és működés eltérhet
Lépések, nem szkriptek
Minden lépés egy akció a katalógusból, saját bemenetekkel, és a lépés által előállított érték bármelyik későbbi lépésbe bekötható. A szerkesztő mindig csak a megfelelő értékeket kínálja fel. A választó mögött 691 akció és 181 paramétertípus áll.
Rögzített érték, bekötött változó vagy sablon
Minden bemenet a három közül egyet fogad el. A sablon a saját szövegedet keveri a beillesztett változókkal.
A változóválasztó típusérzékeny
Elrejti az oda nem illő értékeket, belefúr az objektumok tulajdonságaiba, figyelmeztet az üresen maradható értékekre, és konverziós lépést is hozzáadhat helyetted.
A bekötött értékek chipként jelennek meg
Ezeken a soron lévő chipek a kérdéskatalógus és a csatorna, így látod, honnan jött egy érték.
Minden lépésnek ára van
Az Ingyenestől a Nagyon nehézig, és a flow az aktiválás előtt megmutatja a legrosszabb esetet.
Nem kell üres flow-ból indulnod. Az irányítópult sablonokkal érkezik, amelyeket megnyithatsz és módosíthatsz: üdvözlőválaszoló, új tagok üdvözlése, /warn parancs, /remind parancs, XP-rendszer, javaslatok és eseményjelentkezés.
Napi kérdés
AktívMentésTrigger
MódosításÜtemezés, minden nap 09:00-kor
Tárhelyérték lekérése(get-storage-value)
A kérdéskatalógus beolvasása innen:{questions}
A következő bejegyzés kiválasztása(array-at)
A tegnapit követő
Üzenet küldése(send-message)
Bemeneti paraméterek
Csatorna:#general
Üzenet:A nap kérdése
Szál létrehozása(start-thread-from-message)
Szál nyitása azon az üzeneten
Tárhelyérték növelése(increment-storage-value)
A kérdés megjelölése feltettként itt:{asked}
Csak illusztráció - a tényleges felület eltérhet
Elágazások és ciklusok
Az automatizálásokhoz döntések kellenek. Az If, a Switch, a Random branch és a Branch on subcommand elágaztatja a flow-t, a For each item, For each map entry és Repeat a listákat és térképeket járja be Break és Continue segítségével, a Try blokk pedig helyet ad a helyreállításnak, ha a Discord nemet mond.
Minden elágazásnak saját változói vannak
Az elágazáson belül beállított érték az elágazáshoz tartozik.
Try, On error ággal
A hibakód alapján tud ágazni: Hiányzó jogosultságok, Nem található, Érvénytelen bemenet, Tárhelyhiba, Időtúllépés, Lejárt interakció.
Állj meg ott, ahol a megállás a helyes válasz
Az If ebben a flow-ban emlékeztetőt posztol a staff csatornába, és megáll, ahelyett hogy üres kérdést tenne közzé.
Az elszabadult ciklus magától megáll, így egy hiba megállít, ahelyett hogy egész délelőtt futna.
Napi kérdés
AktívMentésTrigger
MódosításÜtemezés, minden nap 09:00-kor
Tárhelyérték lekérése(get-storage-value)
A kérdéskatalógus beolvasása innen:{questions}
If(if-condition)
A katalógus üres: emlékeztető a #staff csatornába, majd megállás
For each item(for-each)
Végigjárja a katalógust, amíg elő nem kerül egy fel nem használt kérdés
Üzenet küldése(send-message)
A kérdés közzététele beágyazásként itt:#general
Szál létrehozása(start-thread-from-message)
Szál nyitása azon az üzeneten
Csak illusztráció - a tényleges felület eltérhet
A flow-k hívhatnak más flow-kat, és a várakozás is egy lépés
Írj meg egy viselkedést egyszer, és hívd meg, ahonnan csak kell. És amikor egy flow-nak válasz kell a folytatáshoz, ez a várakozás le van írva, nem a memóriában tartva, így egy bot-újraindítás nem veszíti el.
Másik flow hívása
Adj át értékeket, és olvasd vissza az eredményeket. Az egymást körbe hívó flow-kat a rendszer elutasítja.
A hívott flow a hívó futásához tartozik
A futási előzmények ezt jelzik, és linkelnek vissza a hívóra. Az egyedi események lazább változatot adnak: az egyik flow küld, a másik figyel.
A várakozások túlélik az újraindítást
Kérj megerősítést, kérj választást, várj egy üzenetre, mutass egy felugró ablakot, és várd meg a beküldést. A közbeeső újraindítás nem veszíti el a várakozást.
Időzített futtatások
A Schedule flow run egy későbbi futtatást foglal le egy flow-n belülről, és vannak akciók a függőben lévők törlésére és listázására.
Ha úgy szerkesztesz egy flow-t, hogy egy futása éppen valakire vár, az a várakozó futás leáll, és a napló ezt jelzi. Olyasmihez, aminek hónapokig használhatónak kell maradnia, jobb eszköz egy gomb, amely elindít egy flow-t: nem kerül semmibe, amíg senki sem kattint rá, és sosem jár le.
Javaslat elbírálása
AktívMentésTrigger
MódosításFelugró ablak beküldve, Javasolj egy kérdést
Üzenet küldése(send-message)
A javaslat közzététele Jóváhagyás gombbal itt:#staff
Várakozás gombra(wait-for-interaction)
Szünet, amíg egy moderátor rá nem kattint
Tárhelyérték beállítása(set-storage-value)
A kérdés hozzáadása ehhez:{questions}
Másik flow hívása(call-flow)
Napi kérdés, az új kérdéssel argumentumként
Csak illusztráció - a tényleges felület eltérhet
Nézd meg, mielőtt élesbe viszed
A tesztfuttatás a flow-t a saját szerveradataiddal szimulálja. Semmi sem megy ki, semmi sem módosul vagy törlődik. Te döntöd el, ki nevében fut, melyik csatornában, és mit ad át neki a trigger, az eredmény pedig minden lépést megmutat azzal, hogy mit tett volna. A tesztelés semmibe sem kerül a szervernek.
A flow-t az aktívvá válás előtt is ellenőrzi a rendszer, így a hiba a szerkesztőben derül ki, nem reggel kilenckor. Az elszabadult ciklus pedig nem tudja letenni a botodat: magától megáll.
Piszkozat vagy aktív
A piszkozatokat elmenti és ellenőrzi a rendszer, de soha nem futnak.
Az aktív flow mentése azonnal életbe lép
A botod mentés után rögtön átveszi az új verziót. Ha ez nem sikerül, a már futó verzió kezeli tovább a flow-t, és újra próbálkozhatsz.
Véletlenül semmi sem vész el
Ha valaki más mentette a flow-t, miközben te nyitva tartottad, figyelmeztetést kapsz ahelyett, hogy felülírnád a munkáját. A törölt flow-k és modulok 30 napig visszaállíthatók.
Egy dolgot érdemes tisztázni: csak a tesztfuttatások mutatják meg az összes lépést. Az éles futás az állapotát, az időzítését és a lépést rögzíti, ahol elbukott, nem mindent, amin átment.
Tesztfuttatás
Szimulált futtatás, nem ment ki semmiTárhelyérték lekérése
A katalógus beolvasása, 120 bejegyzés
A következő bejegyzés kiválasztása
42. kérdés
Üzenet küldése
A #general csatornában tette volna közzé
Szál létrehozása
Szálat nyitott volna az üzeneten
Tárhelyérték növelése
A feltett kérdések számlálója 41-ről 42-re ugrana
Csak illusztráció - a tényleges felület eltérhet
Kérdések a flow-król
Az a flow igen, amely valakire vár. Az olyan várakozások, mint a Megerősítés kérése vagy az Üzenetre várás, le vannak írva, nem a memóriában vannak tartva, így túlélik az újraindítást. Egy kivétel, amit érdemes tudni: ha szerkeszted a flow-t, miközben egy futása vár, az a futás leáll, és a napló ezt jelzi.
Még több a Custom Commands V3-ból
Szeretnéd a szervered a bétában?
A V3 nagy rendszer, és még gyorsan változik, ezért a szerverek egyesével érkeznek, nem egyszerre. Minden jelentkezést ember olvas el, és pár napon belül visszajelzünk.
A bétában lévő szerverek döntik el nagyrészt, mit építünk legközelebb. Amit megépítesz, az a tiéd: a flow-k és a modulok a béta végén is megmaradnak.