Custom Commands V3Flows และตัวแก้ไข
Custom Commands V3เบต้า

ตรรกะของบอท ไปทีละขั้น

Flow คือรายการของขั้นตอน Flow คำถามประจำวันมีห้าขั้น: อ่านแคตตาล็อก เลือกคำถามถัดไป โพสต์ เปิดเธรด และนับ เพิ่มขั้น ต่อค่าเข้าไป ทดสอบ แล้วค่อยเปิดใช้

คำถามประจำวัน

ใช้งานอยู่บันทึก

ทริกเกอร์

เปลี่ยน

ตารางเวลา ทุกวัน 09:00

#1

อ่านค่าจากที่เก็บข้อมูล(get-storage-value)

อ่านแคตตาล็อกคำถามจาก{questions}

#2

เลือกรายการถัดไป(array-at)

รายการถัดจากของเมื่อวาน

#3

ส่งข้อความ(send-message)

พารามิเตอร์อินพุต

ช่อง:#general

ข้อความ:คำถามประจำวัน

#4

สร้างเธรด(start-thread-from-message)

เปิดเธรดใต้ข้อความนั้น

#5

เพิ่มค่าในที่เก็บข้อมูล(increment-storage-value)

นับคำถามว่าถามแล้วใน{asked}

เป็นภาพประกอบเท่านั้น อินเทอร์เฟซจริงอาจแตกต่างออกไป

ผลลัพธ์ของห้าขั้นนั้นเมื่อเวลา 09:00

ห้าขั้นนี้สร้างหนึ่งข้อความ เธรดใต้ข้อความคือที่ที่คำตอบมาลง และตัวนับทำให้พรุ่งนี้ได้คำถามถัดไป

general
ออนไลน์
บอทของคุณบอท09:00

คำถามประจำวัน

เกมที่คุณกลับไปเล่นซ้ำอยู่เรื่อย ๆ ไม่ว่ามันจะเก่าแค่ไหนคือเกมอะไร

คำถามที่ 42 จาก 120

Mira09:04

Terraria เลย ลงใหม่ทุกหน้าหนาว

ส่งข้อความถึง #general

เป็นภาพประกอบเท่านั้น อินเทอร์เฟซและการทำงานจริงอาจแตกต่างออกไป

เป็นขั้นตอน ไม่ใช่สคริปต์

แต่ละขั้นคือหนึ่งแอ็กชันจากแคตตาล็อกพร้อมอินพุตของตัวเอง และค่าที่ขั้นหนึ่งสร้างขึ้นต่อเข้ากับขั้นถัดไปได้ทุกขั้น ตัวแก้ไขจะเสนอเฉพาะค่าที่เข้ากันเท่านั้น เบื้องหลังตัวเลือกนี้มี 691 แอ็กชันและ 181 ชนิดพารามิเตอร์

ค่าคงที่ ตัวแปรที่ต่อเข้า หรือเทมเพลต

ทุกอินพุตรับได้หนึ่งในสามแบบ เทมเพลตผสมข้อความที่คุณเขียนเองกับตัวแปรที่แทรกเข้าไป

ตัวเลือกตัวแปรรู้จักชนิดข้อมูล

ซ่อนค่าที่ไม่เข้ากัน เจาะลงไปถึงคุณสมบัติของออบเจกต์ เตือนเมื่อค่าอาจว่าง และเพิ่มขั้นแปลงค่าให้คุณได้

ค่าที่ต่อเข้าจะแสดงเป็นชิป

ชิปในแถวเหล่านี้คือแคตตาล็อกคำถามและช่อง คุณจึงเห็นว่าค่ามาจากไหน

ทุกขั้นมีต้นทุน

ตั้งแต่ Free ถึง Very heavy และ Flow จะแสดงกรณีเลวร้ายที่สุดให้คุณดูก่อนเปิดใช้

ไม่จำเป็นต้องเริ่มจาก Flow เปล่า แดชบอร์ดมีเทมเพลตให้เปิดและแก้ไขได้: ตัวตอบรับคำทักทาย ต้อนรับสมาชิกใหม่ คำสั่ง /warn คำสั่ง /remind ระบบ XP ข้อเสนอแนะ และการลงชื่อเข้าร่วมกิจกรรม

คำถามประจำวัน

ใช้งานอยู่บันทึก

ทริกเกอร์

เปลี่ยน

ตารางเวลา ทุกวัน 09:00

#1

อ่านค่าจากที่เก็บข้อมูล(get-storage-value)

อ่านแคตตาล็อกคำถามจาก{questions}

#2

เลือกรายการถัดไป(array-at)

รายการถัดจากของเมื่อวาน

#3

ส่งข้อความ(send-message)

พารามิเตอร์อินพุต

ช่อง:#general

ข้อความ:คำถามประจำวัน

#4

สร้างเธรด(start-thread-from-message)

เปิดเธรดใต้ข้อความนั้น

#5

เพิ่มค่าในที่เก็บข้อมูล(increment-storage-value)

นับคำถามว่าถามแล้วใน{asked}

เป็นภาพประกอบเท่านั้น อินเทอร์เฟซจริงอาจแตกต่างออกไป

การแตกแขนงและลูป

ระบบอัตโนมัติต้องมีการตัดสินใจ If, Switch, Random branch และ Branch on subcommand แยก Flow ออกเป็นสาย For each item, For each map entry และ Repeat เดินไล่ลิสต์และแมปพร้อม Break และ Continue และบล็อก Try ให้ที่สำหรับใส่การกู้คืนเมื่อ Discord ปฏิเสธ

ทุกแขนงมีตัวแปรของตัวเอง

ค่าที่ตั้งภายในสาขาเป็นของสาขานั้น

Try พร้อมแขนง On error

แยกตามรหัสข้อผิดพลาดได้: Missing permissions, Not found, Invalid input, Storage error, Timeout, Interaction expired

หยุดตรงที่การหยุดคือคำตอบที่ถูก

If ใน Flow นี้โพสต์เตือนในช่องทีมงานแล้วหยุด แทนที่จะโพสต์คำถามว่างเปล่า

ลูปที่หลุดจะหยุดเอง ข้อผิดพลาดจึงหยุดลง แทนที่จะวิ่งไปทั้งเช้า

คำถามประจำวัน

ใช้งานอยู่บันทึก

ทริกเกอร์

เปลี่ยน

ตารางเวลา ทุกวัน 09:00

#1

อ่านค่าจากที่เก็บข้อมูล(get-storage-value)

อ่านแคตตาล็อกคำถามจาก{questions}

#2

If(if-condition)

แคตตาล็อกว่าง: โพสต์เตือนใน #staff แล้วหยุด

#3

For each item(for-each)

ไล่ดูแคตตาล็อกจนเจอคำถามที่ยังไม่เคยใช้

#4

ส่งข้อความ(send-message)

โพสต์คำถามเป็น Embed ใน#general

#5

สร้างเธรด(start-thread-from-message)

เปิดเธรดใต้ข้อความนั้น

เป็นภาพประกอบเท่านั้น อินเทอร์เฟซจริงอาจแตกต่างออกไป

Flows เรียก Flows อื่นได้ และการรอก็เป็นหนึ่งขั้น

เขียนพฤติกรรมครั้งเดียวแล้วเรียกจากที่ไหนก็ได้ และเมื่อ Flow ต้องรอคำตอบก่อนไปต่อ การรอนั้นถูกบันทึกไว้แทนการเก็บในหน่วยความจำ บอทรีสตาร์ตจึงไม่ทำให้หายไป

เรียก Flow อื่น

ส่งค่าเข้าไปและอ่านผลลัพธ์กลับมา Flows ที่จะเรียกกันเป็นวงกลมจะถูกปฏิเสธ

Flow ที่ถูกเรียกเป็นส่วนหนึ่งของการรันของผู้เรียก

ประวัติการรันระบุไว้ชัดและลิงก์กลับไปหาผู้เรียก ส่วนอีเวนต์แบบกำหนดเองเป็นแบบหลวมกว่า: Flow หนึ่งส่ง อีก Flow หนึ่งรับฟัง

การรอไม่หายแม้บอทรีสตาร์ต

ขอการยืนยัน ขอให้เลือก รอข้อความ แสดงฟอร์มป๊อปอัปแล้วรอการส่ง การรีสตาร์ตระหว่างนั้นไม่ทำให้การรอหาย

การรันตามเวลา

Schedule flow run จองการรันครั้งหลังจากภายใน Flow และมีแอ็กชันสำหรับยกเลิกและดูรายการที่รออยู่

หากคุณแก้ไข Flow ขณะที่มีการรันรอใครบางคนอยู่ การรันที่รออยู่นั้นจะหยุด และบันทึกจะบอกไว้ สำหรับสิ่งที่ควรใช้ได้นานหลายเดือน ปุ่มที่เริ่ม Flow เป็นเครื่องมือที่ดีกว่า: ไม่เสียอะไรตอนที่ไม่มีใครกด และไม่มีวันหมดอายุ

ตรวจข้อเสนอแนะ

ใช้งานอยู่บันทึก

ทริกเกอร์

เปลี่ยน

ส่งฟอร์มป๊อปอัป, เสนอคำถาม

#1

ส่งข้อความ(send-message)

โพสต์ข้อเสนอพร้อมปุ่มอนุมัติใน#staff

#2

รอปุ่ม(wait-for-interaction)

หยุดรอจนกว่าผู้ดูแลจะกด

#3

ตั้งค่าที่เก็บข้อมูล(set-storage-value)

เพิ่มคำถามเข้าไปใน{questions}

#4

เรียก Flow อื่น(call-flow)

คำถามประจำวัน โดยส่งคำถามใหม่เป็นอาร์กิวเมนต์

เป็นภาพประกอบเท่านั้น อินเทอร์เฟซจริงอาจแตกต่างออกไป

เห็นก่อนปล่อยจริง

การรันทดสอบจำลอง Flow กับข้อมูลเซิร์ฟเวอร์ของคุณเอง ไม่มีอะไรถูกส่ง เปลี่ยน หรือลบ คุณเลือกได้ว่าจะรันในนามใคร รันในช่องไหน และตัวกระตุ้นส่งอะไรให้ ผลลัพธ์แสดงทุกขั้นพร้อมสิ่งที่มันจะทำ การทดสอบไม่เสียอะไรกับเซิร์ฟเวอร์ของคุณ

Flow ยังถูกตรวจก่อนจะเปิดใช้งานได้ด้วย ปัญหาจึงโผล่ในตัวแก้ไข ไม่ใช่ตอนเก้าโมงเช้า และลูปที่หลุดก็ทำให้บอทของคุณล่มไม่ได้ เพราะมันหยุดตัวเอง

ฉบับร่างหรือใช้งานอยู่

ฉบับร่างถูกบันทึกและตรวจสอบ แต่ไม่เคยรัน

บันทึก Flow ที่ใช้งานอยู่มีผลทันที

บอทของคุณรับเวอร์ชันใหม่ทันทีที่คุณบันทึก หากไม่สำเร็จ เวอร์ชันที่รันอยู่เดิมจะทำงานต่อ และคุณลองใหม่ได้

ไม่มีอะไรหายโดยบังเอิญ

หากคนอื่นบันทึก Flow ขณะที่คุณเปิดค้างไว้ คุณจะได้รับคำเตือน แทนที่จะเขียนทับงานของเขา Flows และโมดูลที่ลบไปกู้คืนได้ภายใน 30 วัน

ขอบอกให้ชัด: มีแค่การรันทดสอบที่แสดงทุกขั้น การรันจริงบันทึกสถานะ เวลา และขั้นที่ล้มเหลว ไม่ใช่ทุกอย่างที่มันผ่านมา

รันทดสอบ

รันจำลอง ไม่มีการส่งอะไรออกไป

อ่านค่าจากที่เก็บข้อมูล

อ่านแคตตาล็อก 120 รายการ

เลือกรายการถัดไป

คำถามที่ 42

ส่งข้อความ

จะโพสต์ใน #general

สร้างเธรด

จะเปิดเธรดใต้ข้อความนั้น

เพิ่มค่าในที่เก็บข้อมูล

ตัวนับคำถามที่ถามแล้วจะเพิ่มจาก 41 เป็น 42

เป็นภาพประกอบเท่านั้น อินเทอร์เฟซจริงอาจแตกต่างออกไป

คำถามเกี่ยวกับ Flows

Flow ที่กำลังรอใครอยู่ทำงานต่อ การรออย่าง Ask for confirmation หรือ Wait for a message ถูกบันทึกไว้แทนการเก็บในหน่วยความจำ จึงรอดจากการรีสตาร์ต ข้อยกเว้นหนึ่งที่ควรรู้: หากคุณแก้ไข Flow ขณะที่มีการรันรออยู่ การรันนั้นจะหยุด และบันทึกจะบอกไว้

อยากให้เซิร์ฟเวอร์ของคุณอยู่ในเบต้าไหม

V3 เป็นระบบใหญ่และยังเปลี่ยนแปลงเร็ว เราจึงรับเซิร์ฟเวอร์ทีละเซิร์ฟเวอร์แทนที่จะรับทั้งหมดพร้อมกัน ทุกใบสมัครมีคนอ่านจริง และคุณจะได้รับคำตอบภายในไม่กี่วัน

เซิร์ฟเวอร์ที่อยู่ในเบต้าอยู่แล้วมีส่วนกำหนดว่าเราจะสร้างอะไรต่อ สิ่งที่คุณสร้างเป็นของคุณ Flows และโมดูลจะอยู่ต่อเมื่อเบต้าจบลง