ฉันมีบอต IRC เขียนใน Python ที่ทำงานได้ค่อนข้างดี ฉันคิดว่าปัญหานี้เกิดจากความรู้ที่ จำกัด ของโปรโตคอล IRC ดังนั้นฉันยินดีต้อนรับผู้เชี่ยวชาญด้าน IRC โดยเฉพาะที่นี่: D
เมื่อคุณเชื่อมต่อกับเครือข่าย IRC เป็นครั้งแรก MOTD มักจะปรากฏขึ้น เครือข่ายจะไม่ยอมรับคำสั่งใด ๆ จนกว่า MOTD จะเสร็จสิ้น ดังนั้นด้วยบอทของฉันฉันต้องมีลูปที่ตรวจสอบจุดสิ้นสุดของ MOTD นี่ไม่ใช่มอดูลาร์โดยเฉพาะอย่างยิ่งเนื่องจากในประสบการณ์ของฉันเซิร์ฟเวอร์ไม่ทั้งหมดจบ MOTD ของพวกเขาในลักษณะเดียวกัน มีวิธีบอกเซิร์ฟเวอร์ไม่ให้ส่ง MOTD หรือเป็นวิธีที่ดีกว่าในการรอให้ MOTD สิ้นสุดเพื่อบอกเซิร์ฟเวอร์ว่าฉันต้องการเชื่อมต่อกับช่องใด
รหัสปัจจุบันของฉันที่รอการสิ้นสุดของ MOTD ประกอบด้วยการวนรอบในขณะที่อ่านบัฟเฟอร์อินพุตและแยกแต่ละคำสั่งทั้งหมดลงในรายการ ใช้รายการนี้และค้นหาแต่ละวัตถุสตริงเพื่อหาสตริงที่ปรากฏในตอนท้ายของ MOTD ของ FreeNode หากพบลูปจะสิ้นสุดลงและคำสั่งเพื่อเข้าร่วมแชนเนลจะถูกส่งก่อนเข้าสู่ลูปหลัก
มีวิธีที่ดีกว่าในการจัดการ MOTD หรือไม่? ฉันอดไม่ได้ที่จะรู้สึกว่าวิธีนี้ค่อนข้างซุ่มซ่าม