Botunun mantığı, adım adım
Flow, adımlardan oluşan bir listedir. Günün sorusu flow'u beş adımdır: kataloğu oku, sıradaki soruyu seç, paylaş, bir konu aç, say. Bir adım ekle, içine bir değer bağla, test et, sonra aç.
Günün sorusu
AktifKaydetTetikleyici
DeğiştirZamanlama, her gün 09:00
Depolama değerini al(get-storage-value)
Soru kataloğunu şuradan oku:{questions}
Sıradaki kaydı seç(array-at)
Dünkünden sonraki
Mesaj gönder(send-message)
Girdi parametreleri
Kanal:#general
Mesaj:Günün sorusu
Konu aç(start-thread-from-message)
O mesajda bir konu aç
Depolama değerini artır(increment-storage-value)
Soruyu şurada sorulmuş olarak say:{asked}
Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir
Bu beş adımın saat 09:00'da ürettiği sonuç
Beş adım tek bir mesaj üretir. Altındaki konu yanıtların toplandığı yerdir ve sayaç yarın sıradaki sorunun gelmesini sağlar.
Yalnızca görsel amaçlıdır, gerçek arayüz ve davranış farklı olabilir
Betik değil, adımlar
Her adım katalogdan bir eylemdir ve kendi girdileri vardır; bir adımın ürettiği değer sonraki herhangi bir adıma bağlanabilir. Editör sana yalnızca uyan değerleri sunar. Bu seçicinin arkasında 691 eylem ve 181 parametre türü var.
Sabit değer, bağlı değişken veya şablon
Her girdi bu üçünden birini alır. Şablon, kendi yazdığın metni eklenen değişkenlerle karıştırır.
Değişken seçici türleri bilir
Uymayan değerleri gizler, nesne özelliklerinin içine iner, boş olabilecek değerler için uyarır ve senin için dönüştürme adımı ekleyebilir.
Bağlı değerler çip olarak görünür
Bu satırlardaki çipler soru kataloğu ve kanaldır; böylece bir değerin nereden geldiğini görürsün.
Her adımın bir maliyeti var
Ücretsizden Çok ağıra kadar, ve flow etkinleştirmeden önce sana en kötü senaryosunu gösterir.
Boş bir flow'dan başlamak zorunda değilsin. Pano, açıp değiştirebileceğin şablonlarla gelir: selamlama yanıtlayıcısı, yeni üyeleri karşılama, bir /warn komutu, bir /remind komutu, XP sistemi, öneriler ve etkinlik kaydı.
Günün sorusu
AktifKaydetTetikleyici
DeğiştirZamanlama, her gün 09:00
Depolama değerini al(get-storage-value)
Soru kataloğunu şuradan oku:{questions}
Sıradaki kaydı seç(array-at)
Dünkünden sonraki
Mesaj gönder(send-message)
Girdi parametreleri
Kanal:#general
Mesaj:Günün sorusu
Konu aç(start-thread-from-message)
O mesajda bir konu aç
Depolama değerini artır(increment-storage-value)
Soruyu şurada sorulmuş olarak say:{asked}
Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir
Dallar ve döngüler
Otomasyonlar karar gerektirir. If, Switch, Random branch ve Branch on subcommand flow'u böler; For each item, For each map entry ve Repeat listeleri ve haritaları Break ve Continue ile dolaşır; Discord hayır dediğinde toparlanma mantığını koyabileceğin bir yer için de Try bloğu vardır.
Her dalın kendi değişkenleri vardır
Bir dal içinde ayarlanan değer o dala aittir.
Dene, Hata olursa dalıyla
Hata koduna göre dallanabilir: Missing permissions, Not found, Invalid input, Storage error, Timeout, Interaction expired.
Durmanın doğru cevap olduğu yerde dur
Bu flow'daki If, boş bir soru paylaşmak yerine yetkili kanalına bir hatırlatma gönderir ve durur.
Kontrolden çıkan bir döngü kendi kendine durur; yani bir hata sabaha kadar çalışmak yerine durur.
Günün sorusu
AktifKaydetTetikleyici
DeğiştirZamanlama, her gün 09:00
Depolama değerini al(get-storage-value)
Soru kataloğunu şuradan oku:{questions}
Eğer(if-condition)
Katalog boş: #staff'a hatırlatma gönder ve dur
Her öğe için(for-each)
Kullanılmamış bir soru çıkana kadar kataloğu dolaş
Mesaj gönder(send-message)
Soruyu embed olarak şuraya gönder:#general
Konu aç(start-thread-from-message)
O mesajda bir konu aç
Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir
Flow'lar başka flow'ları çağırabilir ve beklemek bir adımdır
Bir davranışı bir kez yaz, ihtiyacın olan her yerden çağır. Bir flow devam etmeden önce yanıt beklediğinde bu bekleme bellekte tutulmaz, yazıya geçirilir; bu yüzden bot yeniden başlasa da kaybolmaz.
Başka bir flow'u çağır
Değerleri ver, sonuçları geri oku. Birbirini döngüsel çağıracak flow'lar reddedilir.
Çağrılan flow, çağıranın çalıştırmasına aittir
Çalıştırma geçmişi bunu söyler ve çağırana geri bağlantı verir. Özel olaylar daha gevşek bir yöntemdir: bir flow gönderir, bir diğeri dinler.
Beklemeler yeniden başlatmayı atlatır
Onay iste, seçim iste, bir mesajı bekle, form göster ve gönderimi bekle. Arada yeniden başlatma beklemeyi kaybettirmez.
Zamanlanmış çalıştırmalar
Schedule flow run, bir flow'un içinden sonraki bir çalıştırmayı planlar; bekleyenleri iptal etme ve listeleme eylemleri de vardır.
Birinin yanıtını bekleyen bir flow'u düzenlersen, o bekleyen çalıştırma durur ve günlük bunu söyler. Aylarca kullanılabilir kalması gereken bir şey için flow başlatan bir buton daha iyi bir araçtır: kimse tıklamadığı sürece hiçbir şeye mal olmaz ve asla süresi dolmaz.
Bir öneriyi incele
AktifKaydetTetikleyici
DeğiştirForm gönderildi, Bir soru öner
Mesaj gönder(send-message)
Öneriyi bir Onayla butonuyla şuraya gönder:#staff
Butonu bekle(wait-for-interaction)
Bir moderatör tıklayana kadar duraklat
Depolama değeri ayarla(set-storage-value)
Soruyu şuraya ekle:{questions}
Başka bir flow'u çağır(call-flow)
Günün sorusu, yeni soru argüman olarak
Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir
Yayına almadan önce gör
Test çalıştırması, flow'u kendi sunucu verisine karşı simüle eder. Hiçbir şey gönderilmez, değiştirilmez veya silinmez. Kim adına çalışacağını, hangi kanalda çalışacağını ve tetikleyicinin ona ne vereceğini sen seçersin; sonuç her adımı, yapacağı şeyle birlikte gösterir. Test etmek sunucuna hiçbir şeye mal olmaz.
Bir flow etkinleşmeden önce ayrıca kontrol edilir; bu yüzden sorun sabah dokuzda değil editörde çıkar. Kontrolden çıkan bir döngü de botunu çökertemez: kendi kendine durur.
Taslak veya aktif
Taslaklar kaydedilir ve kontrol edilir, ama asla çalışmaz.
Aktif bir flow'u kaydetmek hemen etki eder
Botun yeni sürümü kaydeder kaydetmez alır. Bu olmazsa zaten çalışan sürüm flow'u yürütmeye devam eder ve tekrar deneyebilirsin.
Hiçbir şey kazara kaybolmaz
Sen açıkken flow'u başka biri kaydettiyse, onun çalışmasının üzerine yazmak yerine bir uyarı alırsın. Silinen flow'lar ve modüller 30 gün boyunca geri yüklenebilir.
Net olması gereken bir şey: her adımı yalnızca test çalıştırmaları gösterir. Canlı bir çalıştırma durumunu, zamanlamasını ve başarısız olduğu adımı kaydeder, geçtiği her şeyi değil.
Test çalıştırması
Simüle edilmiş çalıştırma, hiçbir şey gönderilmediDepolama değerini al
Kataloğu oku, 120 kayıt
Sıradaki kaydı seç
Soru 42
Mesaj gönder
#general kanalına gönderirdi
Konu aç
O mesajda bir konu açardı
Depolama değerini artır
Sorulan sayaç 41'den 42'ye çıkardı
Yalnızca görsel amaçlıdır, gerçek arayüz farklı olabilir
Flow'lar hakkında sorular
Birini bekleyen bir flow devam eder. Onay iste veya Mesajı bekle gibi beklemeler bellekte tutulmaz, yazıya geçirilir; bu yüzden yeniden başlatmayı atlatırlar. Bilmeye değer bir istisna: flow'u, bir çalıştırması beklerken düzenlersen o çalıştırma durur ve günlük bunu söyler.
Custom Commands V3 hakkında daha fazlası
Sunucunu betaya dahil etmek ister misin?
V3 büyük bir sistem ve hâlâ hızlı ilerliyor, o yüzden sunucular hepsi birden değil, tek tek giriyor. Her başvuruyu bir kişi okur ve birkaç gün içinde dönüş alırsın.
Betadaki sunucular, sıradaki yapacaklarımızın önemli bir kısmını belirliyor. Kurduğun şey senin: flow'lar ve modüller beta bittiğinde de kalır.